<!--
  ~ 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:'Edit Virtual Host'" id="editVirtualHostDialog">
      <form id="editVirtualHostForm" method="post" data-dojo-type="dijit/form/Form">
          <div id="editVirtualHost.allFields">
            <div id="editVirtualHost.contentPane">
              <div class="editNoteBanner">NOTE: All changes will only take effect after Virtual Host restart.</div>
              <div class="clear">
                  <div class="formLabel-labelCell tableContainer-labelCell">Name*:</div>
                  <div class="formLabel-controlCell tableContainer-valueCell">
                      <input type="text" id="editVirtualHost.name"
                             data-dojo-type="dijit/form/ValidationTextBox"
                             data-dojo-props="
                              name: 'name',
                              placeHolder: 'name',
                              required: true,
                              disabled: true,
                              title: 'Enter virtual host name'" />
                  </div>
              </div>

              <div id="editVirtualHost.typeFields"></div>

              <div class="clear formBox">
                  <fieldset>
                      <legend>Store transaction settings</legend>
                      <div class="clear">
                          <div class="formLabel-labelCell tableContainer-labelCell">Idle Timeout Warn:</div>
                          <div class="tableContainer-valueCell formLabel-controlCell">
                              <input data-dojo-type="dijit/form/ValidationTextBox"
                                     id="editVirtualHost.storeTransactionIdleTimeoutWarn"
                                     name="storeTransactionIdleTimeoutWarn"
                                     placeHolder="idle timeout warn time in ms"
                                     promptMessage="Length of time a transaction must be idle before warnings produced"/>
                          </div>
                      </div>
                      <div class="clear">
                          <div class="formLabel-labelCell tableContainer-labelCell">Idle Timeout Close:</div>
                          <div class="tableContainer-valueCell formLabel-controlCell">
                              <input data-dojo-type="dijit/form/ValidationTextBox"
                                     id="editVirtualHost.storeTransactionIdleTimeoutClose"
                                     name="storeTransactionIdleTimeoutClose"
                                     placeHolder="idle timeout close time in ms"
                                     promptMessage="Length of time a transaction must be idle before the connection is closed"/>
                          </div>
                      </div>
                      <div class="clear">
                          <div class="formLabel-labelCell tableContainer-labelCell">Open Timeout Warn:</div>
                          <div class="tableContainer-valueCell formLabel-controlCell">
                              <input data-dojo-type="dijit/form/ValidationTextBox"
                                     id="editVirtualHost.storeTransactionOpenTimeoutWarn"
                                     name="storeTransactionOpenTimeoutWarn"
                                     placeHolder="open timeout warn time in ms"
                                     promptMessage="Length of time a transaction must be open before warnings produced"/>
                          </div>
                      </div>
                      <div class="clear">
                          <div class="formLabel-labelCell tableContainer-labelCell">Open Timeout Close:</div>
                          <div class="tableContainer-valueCell formLabel-controlCell">
                              <input data-dojo-type="dijit/form/ValidationTextBox"
                                     id="editVirtualHost.storeTransactionOpenTimeoutClose"
                                     name="storeTransactionOpenTimeoutClose"
                                     placeHolder="open timeout close time in ms"
                                     promptMessage="Length of time a transaction must be open before the connection is closed"/>
                          </div>
                      </div>
                  </fieldset>
              </div>

              <div class="clear formBox">
                  <fieldset>
                      <legend>House keeping settings</legend>
                      <div class="clear">
                          <div class="formLabel-labelCell tableContainer-labelCell">Check period (ms):</div>
                          <div class="tableContainer-valueCell formLabel-controlCell">
                              <input data-dojo-type="dijit/form/ValidationTextBox"
                                     id="editVirtualHost.housekeepingCheckPeriod"
                                     name="housekeepingCheckPeriod"
                                     placeHolder="house keeping check period in ms"
                                     promptMessage="Frequency with which the housekeeper runs"/>
                          </div>
                      </div>
                      <div class="clear">
                          <div class="formLabel-labelCell tableContainer-labelCell">Thread count:</div>
                          <div class="tableContainer-valueCell formLabel-controlCell">
                              <input data-dojo-type="dijit/form/ValidationTextBox"
                                     id="editVirtualHost.housekeepingThreadCount"
                                     name="housekeepingThreadCount"
                                     placeHolder="house keeping thread count"
                                     promptMessage="Number of threads used to perform housekeeping"/>
                          </div>
                      </div>
                <div class="clear">
                    <div class="formLabel-labelCell tableContainer-labelCell">Number of connection threads:</div>
                    <div class="tableContainer-valueCell formLabel-controlCell">
                        <input data-dojo-type="dijit/form/ValidationTextBox"
                               name="connectionThreadPoolSize"
                               placeHolder="number of connection threads"
                               promptMessage="Enter number of threads used by connections"
                               id="editVirtualHost.connectionThreadPoolSize">
                        </input>
                    </div>
                </div>
                <div class="clear">
                    <div class="formLabel-labelCell tableContainer-labelCell">Statistics reporting period (s):</div>
                    <div class="tableContainer-valueCell formLabel-controlCell">
                        <input type="text"
                               data-dojo-type="dijit/form/ValidationTextBox"
                               id="editVirtualHost.statisticsReportingPeriod"
                               data-dojo-props="
                              name: 'statisticsReportingPeriod',
                              trim: true,
                              placeHolder: 'Time in seconds',
                              label: 'Statistics reporting period (s):',
                              promptMessage: 'Period with which statistics are reported to the log.'" />
                    </div>
                </div>
                  </fieldset>
              </div>
              <div class="clear"></div>
              <div data-dojo-type="dijit/TitlePane"
                 data-dojo-props="title: 'Node Auto-Creation Policies',  open: false"
                 class="sequentialPanel">
                <div id="editVirtualHost.policies"></div>
                <button data-dojo-type="dijit.form.Button"
                        data-dojo-props="promptMessage:'Add Node Auto Creation Policy'"
                        id="editVirtualHost.addAutoCreationPolicy">+
                </button>
                <button data-dojo-type="dijit.form.Button"
                        data-dojo-props="promptMessage:'Delete Node Auto Creation Policy', disabled: true"
                        id="editVirtualHost.deleteAutoCreationPolicy">-
                </button>
              </div>
              <div class="clear"></div>

              <div data-dojo-type="dijit/TitlePane" data-dojo-props="title: 'Context variables',  open: false">
                    <div id="editVirtualHost.context" ></div>
              </div>
            </div>
            <div class="dijitDialogPaneActionBar qpidDialogPaneActionBar">
                  <button data-dojo-type="dijit/form/Button" id="editVirtualHost.saveButton" data-dojo-props="label: 'Save'">Save</button>
                  <button data-dojo-type="dijit/form/Button" id="editVirtualHost.cancelButton" data-dojo-props="label: 'Cancel'" ></button>
            </div>
          </div>
      </form>
  </div>
</div>
