<!--
 -
 - Licensed to the Apache Software Foundation (ASF) under one
 - or more contributor license agreements.  See the NOTICE file
 - distributed with this work for additional information
 - regarding copyright ownership.  The ASF licenses this file
 - to you under the Apache License, Version 2.0 (the
 - "License"); you may not use this file except in compliance
 - with the License.  You may obtain a copy of the License at
 -
 -   http://www.apache.org/licenses/LICENSE-2.0
 -
 - Unless required by applicable law or agreed to in writing,
 - software distributed under the License is distributed on an
 - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 - KIND, either express or implied.  See the License for the
 - specific language governing permissions and limitations
 - under the License.
 -
 -->
<div class="dijitHidden">
    <div data-dojo-type="dijit.Dialog" data-dojo-props="title:'Queue'" id="addQueue">
        <form id="formAddQueue" method="post" dojoType="dijit.form.Form">

            <div class="editNoteBanner" id="addQueue.editNoteBanner">NOTE: All changes will only take effect after Virtual Host restart.</div>
            <div class="clear">
                <div class="formLabel-labelCell">Queue Name*:</div>
                <div class="formLabel-controlCell">
                    <input type="text" id="formAddQueue.name"
                           data-dojo-type="dijit/form/ValidationTextBox"
                           data-dojo-props="
                                  name: 'name',
                                  placeHolder: 'queue name',
                                  required: true,
                                  promptMessage: 'Name of queue',
                                  title: 'Enter a queue name',
                                  regExp:'^[\x20-\x7F]{1,255}$'"/>
                </div>
            </div>
            <div class="clear">
                <div class="formLabel-labelCell">Queue Type:</div>
                <div class="formLabel-controlCell">
                    <select id="formAddQueue.type"
                            dojoType="dijit.form.FilteringSelect"
                            data-dojo-props="
                              name: 'type',
                              value: 'standard',
                              searchAttr: 'name',
                              required: true,
                              promptMessage: 'Type of Queue',
                              title: 'Enter the queue type'">
                        <option value="standard">Standard</option>
                        <option value="priority">Priority</option>
                        <option value="lvq">LVQ</option>
                        <option value="sorted">Sorted</option>
                    </select>
                </div>
            </div>
            <div class="clear"></div>

            <div id="formAddQueueType:priority" class="hidden typeSpecificDiv">
                <div class="clear">
                    <div class="formLabel-labelCell">Priorities:</div>
                    <div class="formLabel-controlCell">
                        <input type="text" id="formAddQueue.priorities"
                               data-dojo-type="dijit/form/ValidationTextBox"
                               data-dojo-props="
                                  name: 'priorities',
                                  placeHolder: 'number of priorities',
                                  promptMessage: 'Number of priorities supported by the queue',
                                  title: 'Enter the number of priorities supported by the queue',
                                  trim: true"/>
                    </div>
                </div>
                <div class="clear"></div>
            </div>

            <div id="formAddQueueType:lvq" class="hidden typeSpecificDiv">
                <div class="clear">
                    <div class="formLabel-labelCell">LVQ Message Property:</div>
                    <div class="formLabel-controlCell">
                        <input type="text" id="formAddQueue.lvqKey"
                               data-dojo-type="dijit/form/ValidationTextBox"
                               data-dojo-props="
                                  name: 'lvqKey',
                                  placeHolder: 'lvq key',
                                  promptMessage: 'Name of the message property used to perform the conflation',
                                  title: 'Enter the name of the message property used to perform the conflation',
                                  trim: true"/>
                    </div>
                </div>
                <div class="clear"></div>
            </div>

            <div id="formAddQueueType:sorted" class="hidden typeSpecificDiv">
                <div class="clear">
                    <div class="formLabel-labelCell">Sort Message Property*:</div>
                    <div class="formLabel-controlCell">
                        <input type="text" id="formAddQueue.sortKey"
                               data-dojo-type="dijit/form/ValidationTextBox"
                               data-dojo-props="
                                  name: 'sortKey',
                                  placeHolder: 'sort key',
                                  promptMessage: 'Name of the message property used for sorting the messages on the queue',
                                  title: 'Enter the name of the message property used for sorting the messages on the queue',
                                  trim: true"/>
                    </div>
                </div>
                <div class="clear"></div>
            </div>

            <div class="clear">
                <div class="formLabel-labelCell">Durable?</div>
                <div class="formLabel-controlCell">
                    <input type="checkbox" id="formAddQueue.durable"
                           dojoType="dijit.form.CheckBox"
                           data-dojo-props="
                              name: 'durable',
                              value: 'durable',
                              checked: true"/>
                </div>
            </div>
            <div class="clear">
                <div class="formLabel-labelCell">Persist Messages?</div>
                <div class="formLabel-controlCell">
                    <select id="formAddQueue.messageDurability"
                            dojoType="dijit.form.FilteringSelect"
                            data-dojo-props="
                              name: 'messageDurability',
                              value: '',
                              searchAttr: 'name',
                              required: false,
                              promptMessage: 'Message persistence override. If not default, messages arriving will have persistence setting overridden',
                              title: 'Enter message persistence override'">
                        <option value="ALWAYS">Always</option>
                        <option value="DEFAULT">Default</option>
                        <option value="NEVER">Never</option>
                    </select>
                </div>
            </div>
            <div class="clear">
                <div class="formLabel-labelCell">Maximum Ttl:</div>
                <div class="formLabel-controlCell">
                    <input type="text" id="formAddQueue.maximumMessageTtl"
                           data-dojo-type="dijit/form/ValidationTextBox"
                           data-dojo-props="
                                  name: 'maximumMessageTtl',
                                  placeHolder: 'ttl in ms',
                                  promptMessage: 'Maximum message time to live (ttl) in ms. Messages arriving with larger ttl values will be overridden by this value',
                                  title: 'Enter the maximum message time to live in milliseconds',
                                  trim: true"/>
                </div>
            </div>
            <div class="clear">
                <div class="formLabel-labelCell">Minimum Ttl:</div>
                <div class="formLabel-controlCell">
                    <input type="text" id="formAddQueue.minimumMessageTtl"
                           data-dojo-type="dijit/form/ValidationTextBox"
                           data-dojo-props="
                                  name: 'minimumMessageTtl',
                                  placeHolder: 'ttl in ms',
                                  promptMessage: 'Minimum message time to live (ttl) in ms. Messages arriving with smaller ttl values will be overridden by this value',
                                  title: 'Enter the minimum message time to live in milliseconds',
                                  trim: true"/>
                </div>
            </div>

            <div class="clear formBox">
                <fieldset>
                    <legend>Overflow Settings</legend>
                    <div class="clear">
                        <div class="formLabel-labelCell">Overflow policy:</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.overflowPolicy"
                                   data-dojo-type="dijit/form/FilteringSelect"
                                   data-dojo-props="
                              name: 'overflowPolicy',
                              required: false,
                              promptMessage: 'Select overflow policy to use',
                              title: 'Select overflow policy override'"/>
                        </div>
                    </div>
                    <div class="clear">
                        <div class="formLabel-labelCell">Maximum Queue Depth (Messages):</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.maximumQueueDepthMessages"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'maximumQueueDepthMessages',
                                      placeHolder: 'maximum number of messages',
                                      promptMessage: 'Maximum number of messages in the queue',
                                      title: 'Enter the maximum number of messages in the queue',
                                      trim: true"/>
                        </div>
                    </div>
                    <div class="clear">
                        <div class="formLabel-labelCell">Maximum Queue Depth (Bytes):</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.maximumQueueDepthBytes"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'maximumQueueDepthBytes',
                                      placeHolder: 'maximum number of bytes including headers',
                                      promptMessage: 'Maximum number of bytes (including headers) in the queue',
                                      title: 'Enter the maximum number of bytes (including headers) in the queue',
                                      trim: true"/>
                        </div>
                    </div>
                </fieldset>
                <div class="clear"></div>
            </div>

            <div class="clear formBox">
                <fieldset>
                    <legend>Alerting Settings</legend>
                    <div class="clear">
                        <div class="formLabel-labelCell">Queue Depth (Messages):</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.alertThresholdQueueDepthMessages"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'alertThresholdQueueDepthMessages',
                                      placeHolder: 'number of messages',
                                      promptMessage: 'Ceiling value for number of messages on queue before alerts will be generated',
                                      title: 'Enter the ceiling value for number of messages on queue before alerts will be generated',
                                      trim: true"/>
                        </div>
                    </div>
                    <div class="clear">
                        <div class="formLabel-labelCell">Queue Depth (Bytes):</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.alertThresholdQueueDepthBytes"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'alertThresholdQueueDepthBytes',
                                      placeHolder: 'total message size in bytes',
                                      promptMessage: 'Ceiling value (in bytes) for total size of all messages on the queue before alerts will be generated',
                                      title: 'Enter the ceiling value (in bytes) for total size of all messages on the queue before alerts will be generated',
                                      trim: true"/>
                        </div>
                    </div>
                    <div class="clear">
                        <div class="formLabel-labelCell">Message Age:</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.alertThresholdMessageAge"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'alertThresholdMessageAge',
                                      placeHolder: 'time in ms',
                                      promptMessage: 'Message age (in milliseconds) above which alerts will be generated',
                                      title: 'Enter the message age (in milliseconds) above which alerts will be generated',
                                      trim: true"/>
                        </div>
                    </div>
                    <div class="clear">
                        <div class="formLabel-labelCell">Message Size:</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.alertThresholdMessageSize"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'alertThresholdMessageSize',
                                      placeHolder: 'message size in bytes',
                                      promptMessage: 'Message size (in bytes) above which alerts will be generated',
                                      title: 'Enter the message size (in bytes) above which alerts will be generated',
                                      trim: true"/>
                        </div>
                    </div>
                    <div class="clear">
                        <div class="formLabel-labelCell">Gap between alerts:</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.alertRepeatGap"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'alertRepeatGap',
                                      placeHolder: 'time in ms',
                                      promptMessage: 'Minimum time (in milliseconds) between each alert',
                                      title: 'Enter the minimum time (in milliseconds) between each alert.',
                                      trim: true"/>
                        </div>
                    </div>
                </fieldset>
                <div class="clear"></div>
            </div>

            <div class="clear formBox">
                <fieldset>
                    <legend>Dead Lettering</legend>
                    <div class="clear">
                        <div class="formLabel-labelCell">Maximum Delivery Retries:</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.maximumDeliveryAttempts"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'maximumDeliveryAttempts',
                                      placeHolder: 'number of retries',
                                      promptMessage: 'Maximum number of delivery attempts before the message will be sent to the alternate binding',
                                      title: 'Enter the maximum number of delivery attempts before the message will be sent to the alternate binding',
                                      trim: true"/>
                        </div>
                    </div>
                    <div class="clear">
                        <div class="formLabel-labelCell">Alternate Binding:</div>
                        <div class="formLabel-controlCell">
                            <input type="select" id="formAddQueue.alternateBinding"
                                   data-dojo-type="qpid/common/DestinationChooser"
                                   data-dojo-props="
                                      name: 'alternateBinding',
                                      value: ' ',
                                      placeHolder: 'alternate binding',
                                      promptMessage: 'Alternate binding to redirect messages to',
                                      title: 'Select an alternate binding to redirect messages on queue deletion or exceeding of maximum delivery retries'"/>
                        </div>
                    </div>

                    <div class="clear"></div>
                    <div class="infoMessage">Configuring maximum delivery retries on a queue which has no alternate binding (DLQ or exchange) will result in messages being discarded after the limit is reached.</div>
                </fieldset>
            </div>
            <div class="clear formBox">
                <fieldset>
                    <legend>Message Grouping</legend>
                    <div class="clear">
                        <div class="formLabel-labelCell">Message Group Type:</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.messageGroupType"
                                   data-dojo-type="dijit/form/FilteringSelect"
                                   data-dojo-props="
                          name: 'messageGroupType',
                          required: false,
                          promptMessage: 'Select message grouping type',
                          title: 'Select message grouping type'"/>
                        </div>

                    </div>
                    <div class="clear">
                        <div class="formLabel-labelCell">Message Group Key Override:</div>
                        <div class="formLabel-controlCell">
                            <input type="text" id="formAddQueue.messageGroupKeyOverride"
                                   data-dojo-type="dijit/form/ValidationTextBox"
                                   data-dojo-props="
                                      name: 'messageGroupKeyOverride',
                                      placeHolder: 'message group key override',
                                      promptMessage: 'Specifies the name of the message header that provides the value for message grouping purposes. If not set, for AMQP 1.0 the value of the group-id field within the message properties is used. For AMQP 0-8..0-10, the value of the message header JMSXGroupId is used.',
                                      title: 'Enter the name of the message property used for message grouping',
                                      trim: true"/>
                        </div>
                    </div>
                </fieldset>
            </div>
            <div class="clear formBox">
                <fieldset>
                    <legend>Other Settings</legend>

                    <div class="clear">
                        <div class="formLabel-labelCell">Exclusivity:</div>
                        <div class="formLabel-controlCell">
                            <input id="formAddQueue.exclusive"
                                    data-dojo-type="dijit/form/FilteringSelect"
                                    data-dojo-props="
                              name: 'exclusive',
                              required: false,
                              promptMessage: 'Exclusivity of Queue',
                              title: 'Select the queue exclusivity'"/>
                        </div>
                    </div>
                    <div class="clear"></div>

                    <div class="clear">
                        <div class="formLabel-labelCell">Hold on Publish Enabled?</div>
                        <div class="formLabel-controlCell">
                            <input type="checkbox" id="formAddQueue.holdOnPublishEnabled"
                                   dojoType="dijit.form.CheckBox"
                                   data-dojo-props="
                              name: 'holdOnPublishEnabled',
                              value: 'holdOnPublishEnabled',
                              checked: false,
                              title: 'If enabled the messages on the queue will be inspected for the x-qpid-not-valid-before header/annotation'"/>
                        </div>
                    </div>
                </fieldset>
                <div class="clear"></div>
            </div>

            <div class="editorPanel clear"
                 data-dojo-type="dijit/TitlePane"
                 data-dojo-props="title: 'Context variables',  open: false">
                <div id="formAddQueue.context"
                     data-dojo-type="qpid.common.ContextVariablesEditor"
                     data-dojo-props="name: 'context', title: 'Context variables'"></div>
            </div>

            <div class="dijitDialogPaneActionBar qpidDialogPaneActionBar">
                  <input type="submit" data-dojo-type="dijit/form/Button" id="formAddQueue.saveButton" data-dojo-props="label: 'Save'"/>
                  <button data-dojo-type="dijit/form/Button" id="formAddQueue.cancelButton" data-dojo-props="label: 'Cancel'" ></button>
            </div>

        </form>
    </div>
</div>
