You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2015/01/20 17:25:28 UTC

svn commit: r1653285 - in /qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources: ./ accesscontrolprovider/aclfile/ js/qpid/management/ js/qpid/management/accesscontrolprovider/aclfile/ js/qpid/management/store/ js/qpid/management...

Author: kwall
Date: Tue Jan 20 16:25:28 2015
New Revision: 1653285

URL: http://svn.apache.org/r1653285
Log:
QPID-6318: [Java Broker] Make UI support the upload of JKS files

Work completed by Andrew MacBean <ma...@apache.org>

Added:
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addStore.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/add.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/show.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/add.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/show.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showStore.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/add.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/show.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/add.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/show.html
Removed:
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showKeyStore.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showTrustStore.html
Modified:
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/accesscontrolprovider/aclfile/add.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/accesscontrolprovider/aclfile/add.js

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/accesscontrolprovider/aclfile/add.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/accesscontrolprovider/aclfile/add.html?rev=1653285&r1=1653284&r2=1653285&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/accesscontrolprovider/aclfile/add.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/accesscontrolprovider/aclfile/add.html Tue Jan 20 16:25:28 2015
@@ -18,6 +18,7 @@
   -->
 
 <div>
+    <div id="addAccessControlProvider.oldBrowserWarning" class="infoMessage hidden clear"></div>
     <div class="clear">
         <div id="addAccessControlProvider.serverPathLabel" class="formLabel-labelCell tableContainer-labelCell">Server path or upload*:</div>
         <div class="formLabel-controlCell tableContainer-valueCell">
@@ -54,7 +55,8 @@
                 <button id="addAccessControlProvider.fileClearButton"
                         data-dojo-type="dijit/form/Button"
                         data-dojo-props="label: 'Clear',
-                                        disabled: true" />
+                                        disabled: true">
+                </button>
             </div>
         </div>
 

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addStore.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addStore.html?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addStore.html (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addStore.html Tue Jan 20 16:25:28 2015
@@ -0,0 +1,66 @@
+<!--
+  ~ 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:'Add Store'" id="addStore">
+        <div id="addStore.contentPane">
+            <form id="addStore.form" method="post" data-dojo-type="dijit/form/Form">
+                <div class="formBox">
+                    <div class="clear">
+                        <div class="formLabel-labelCell tableContainer-labelCell">Name*:</div>
+                        <div class="formLabel-controlCell tableContainer-valueCell">
+                            <input type="text" id="addStore.name"
+                                   data-dojo-type="dijit/form/ValidationTextBox"
+                                   data-dojo-props="
+                              name: 'name',
+                              placeHolder: 'store name',
+                              required: true,
+                              promptMessage: 'Name of store, must be unique',
+                              title: 'Enter a unique store name per broker'" />
+                        </div>
+                    </div>
+                    <div class="clear">
+                        <div class="formLabel-labelCell tableContainer-labelCell">Type*:</div>
+                        <div class="tableContainer-valueCell formLabel-controlCell">
+                            <select id="addStore.type" data-dojo-type="dijit/form/FilteringSelect"
+                                    data-dojo-props="
+                                    name: 'type',
+                                    required: true,
+                                    placeHolder: 'store type',
+                                    promptMessage: 'Type of store',
+                                    title: 'Select type',
+                                    searchAttr: 'name'">
+                            </select>
+                        </div>
+                    </div>
+                    <div class="clear">
+                        <div id="addStore.typeFields"></div>
+                    </div>
+                </div>
+            </form>
+            <div class="clear">
+            </div>
+        </div>
+
+        <div class="dijitDialogPaneActionBar">
+            <button data-dojo-type="dijit/form/Button" id="addStore.addButton" data-dojo-props="label: 'Save'" type="submit"></button>
+            <button data-dojo-type="dijit/form/Button" id="addStore.cancelButton" data-dojo-props="label: 'Cancel'" ></button>
+        </div>
+    </div>
+</div>

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js?rev=1653285&r1=1653284&r2=1653285&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js Tue Jan 20 16:25:28 2015
@@ -159,8 +159,8 @@ define(["dojo/_base/xhr",
                this.deletePreferencesProviderButton = query(".deletePreferencesProviderButton", node)[0];
                this.preferencesProviderAttributes = dom.byId("preferencesProviderAttributes")
                this.preferencesNode = query(".preferencesProviderDetails", node)[0];
-               this.authenticationProviderDetailsContainer = query(".authenticationProviderDetails", node)[0];
 
+this.authenticationProviderDetailsContainer = query(".authenticationProviderDetails", node)[0];
                this.query = "api/latest/authenticationprovider/" + encodeURIComponent(authProviderObj.name);
 
            }

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js?rev=1653285&r1=1653284&r2=1653285&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js Tue Jan 20 16:25:28 2015
@@ -23,6 +23,7 @@ define(["dojo/_base/xhr",
         "dojo/query",
         "dojo/json",
         "dojo/_base/connect",
+        "dojo/store/Memory",
         "qpid/common/properties",
         "qpid/common/updater",
         "qpid/common/util",
@@ -33,7 +34,7 @@ define(["dojo/_base/xhr",
         "qpid/management/addAuthenticationProvider",
         "qpid/management/addVirtualHostNodeAndVirtualHost",
         "qpid/management/addPort",
-        "qpid/management/addKeystore",
+        "qpid/management/addStore",
         "qpid/management/addGroupProvider",
         "qpid/management/addAccessControlProvider",
         "qpid/management/editBroker",
@@ -50,8 +51,8 @@ define(["dojo/_base/xhr",
         "dijit/Menu",
         "dijit/MenuItem",
         "dojo/domReady!"],
-       function (xhr, parser, query, json, connect, properties, updater, util, UpdatableStore, EnhancedGrid, registry, entities,
-        addAuthenticationProvider, addVirtualHostNodeAndVirtualHost, addPort, addKeystore, addGroupProvider, addAccessControlProvider, editBroker) {
+       function (xhr, parser, query, json, connect, memory, properties, updater, util, UpdatableStore, EnhancedGrid, registry, entities,
+        addAuthenticationProvider, addVirtualHostNodeAndVirtualHost, addPort, addStore, addGroupProvider, addAccessControlProvider, editBroker) {
 
            var brokerAttributeNames = ["name", "operatingSystem", "platform", "productVersion", "modelVersion",
                                         "defaultVirtualHost", "statisticsReportingPeriod", "statisticsReportingResetEnabled",
@@ -153,7 +154,11 @@ define(["dojo/_base/xhr",
 
                             var addKeystoreButton = query(".addKeystore", contentPane.containerNode)[0];
                             connect.connect(registry.byNode(addKeystoreButton), "onClick",
-                                function(evt){ addKeystore.showKeystoreDialog() });
+                                function(evt)
+                                {
+                                    addStore.setupTypeStore("KeyStore");
+                                    addStore.show();
+                                });
 
                             var deleteKeystore = query(".deleteKeystore", contentPane.containerNode)[0];
                             connect.connect(registry.byNode(deleteKeystore), "onClick",
@@ -168,7 +173,11 @@ define(["dojo/_base/xhr",
 
                             var addTruststoreButton = query(".addTruststore", contentPane.containerNode)[0];
                             connect.connect(registry.byNode(addTruststoreButton), "onClick",
-                                function(evt){ addKeystore.showTruststoreDialog() });
+                                function(evt)
+                                {
+                                    addStore.setupTypeStore("TrustStore");
+                                    addStore.show();
+                                });
 
                             var deleteTruststore = query(".deleteTruststore", contentPane.containerNode)[0];
                             connect.connect(registry.byNode(deleteTruststore), "onClick",

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js?rev=1653285&r1=1653284&r2=1653285&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js Tue Jan 20 16:25:28 2015
@@ -29,16 +29,15 @@ define(["dojo/dom",
         "qpid/common/updater",
         "qpid/common/util",
         "qpid/common/formatter",
-        "qpid/management/addKeystore",
+        "qpid/management/addStore",
         "dojo/domReady!"],
-       function (dom, xhr, parser, query, connect, registry, entities, properties, updater, util, formatter, addKeystore) {
+       function (dom, xhr, parser, query, connect, registry, entities, properties, updater, util, formatter, addStore) {
 
-           function KeyStore(name, parent, controller, objectType) {
+           function KeyStore(name, parent, controller) {
                this.keyStoreName = name;
                this.controller = controller;
                this.modelObj = { type: "keystore", name: name, parent: parent};
                this.url = "api/latest/keystore/" + encodeURIComponent(name);
-               this.dialog =  addKeystore.showKeystoreDialog;
            }
 
            KeyStore.prototype.getTitle = function() {
@@ -48,7 +47,7 @@ define(["dojo/dom",
            KeyStore.prototype.open = function(contentPane) {
                var that = this;
                this.contentPane = contentPane;
-               xhr.get({url: "showKeyStore.html",
+               xhr.get({url: "showStore.html",
                         sync: true,
                         load:  function(data) {
                             contentPane.containerNode.innerHTML = data;
@@ -60,22 +59,22 @@ define(["dojo/dom",
 
                             that.keyStoreUpdater.update();
 
-                            var deleteKeyStoreButton = query(".deleteKeyStoreButton", contentPane.containerNode)[0];
+                            var deleteKeyStoreButton = query(".deleteStoreButton", contentPane.containerNode)[0];
                             var node = registry.byNode(deleteKeyStoreButton);
                             connect.connect(node, "onClick",
                                 function(evt){
                                     that.deleteKeyStore();
                                 });
 
-                            var editKeyStoreButton = query(".editKeyStoreButton", contentPane.containerNode)[0];
+                            var editKeyStoreButton = query(".editStoreButton", contentPane.containerNode)[0];
                             var node = registry.byNode(editKeyStoreButton);
                             connect.connect(node, "onClick",
                                 function(evt){
                                   xhr.get({url: that.url, sync: properties.useSyncGet, handleAs: "json", content: { actuals: true }})
                                     .then(function(data)
                                     {
-                                      // calls showKeystoreDialog
-                                      that.dialog(data[0], that.url);
+                                      addStore.setupTypeStore("KeyStore");
+                                      addStore.show(data[0], that.url);
                                     });
                                 });
                         }});
@@ -88,9 +87,10 @@ define(["dojo/dom",
            function KeyStoreUpdater(containerNode, keyStoreObj, controller, url)
            {
                var that = this;
+               this.keyStoreDetailsContainer = query(".typeFieldsContainer", containerNode)[0];
 
                function findNode(name) {
-                   return query("." + name + "Value", containerNode)[0];
+                   return query("." + name, containerNode)[0];
                }
 
                function storeNodes(names)
@@ -101,12 +101,8 @@ define(["dojo/dom",
                }
 
                storeNodes(["name",
-                           "path",
-                           "keyStoreType",
-                           "keyStoreState",
-                           "keyManagerFactoryAlgorithm",
-                           "certificateAlias",
-                           "peersOnly"
+                           "type",
+                           "state"
                            ]);
 
                this.query = url;
@@ -122,22 +118,27 @@ define(["dojo/dom",
            KeyStoreUpdater.prototype.updateHeader = function()
            {
               this.name.innerHTML = entities.encode(String(this.keyStoreData[ "name" ]));
-              this.path.innerHTML = entities.encode(String(this.keyStoreData[ "path" ]));
-              this.keyStoreType.innerHTML = entities.encode(String(this.keyStoreData[ "keyStoreType" ]));
-              this.keyStoreState.innerHTML = entities.encode(String(this.keyStoreData[ "state" ]));
-              this.keyManagerFactoryAlgorithm.innerHTML = entities.encode(String(this.keyStoreData[ "keyManagerFactoryAlgorithm" ]));
-              this.certificateAlias.innerHTML = this.keyStoreData[ "certificateAlias" ] ? entities.encode(String( this.keyStoreData[ "certificateAlias" ])) : "";
+              this.type.innerHTML = entities.encode(String(this.keyStoreData[ "type" ]));
+              this.state.innerHTML = entities.encode(String(this.keyStoreData[ "state" ]));
            };
 
            KeyStoreUpdater.prototype.update = function()
            {
 
-              var thisObj = this;
+              var that = this;
 
               xhr.get({url: this.query, sync: properties.useSyncGet, handleAs: "json"}).then(function(data)
                    {
-                      thisObj.keyStoreData = data[0];
-                      thisObj.updateHeader();
+                      that.keyStoreData = data[0];
+                      that.updateHeader();
+
+                      require(["qpid/management/store/" + encodeURIComponent(that.keyStoreData.type.toLowerCase()) + "/show"],
+                           function(DetailsUI)
+                           {
+                             that.details = new DetailsUI({containerNode:that.keyStoreDetailsContainer, parent: that});
+                             that.details.update(that.keyStoreData);
+                           }
+                         );
                    });
            };
 

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js?rev=1653285&r1=1653284&r2=1653285&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js Tue Jan 20 16:25:28 2015
@@ -29,16 +29,15 @@ define(["dojo/dom",
         "qpid/common/updater",
         "qpid/common/util",
         "qpid/common/formatter",
-        "qpid/management/addKeystore",
+        "qpid/management/addStore",
         "dojo/domReady!"],
-       function (dom, xhr, parser, query, connect, registry, entities, properties, updater, util, formatter, addKeystore) {
+       function (dom, xhr, parser, query, connect, registry, entities, properties, updater, util, formatter, addStore) {
 
            function TrustStore(name, parent, controller) {
                this.keyStoreName = name;
                this.controller = controller;
                this.modelObj = { type: "truststore", name: name, parent: parent};
                this.url = "api/latest/truststore/" + encodeURIComponent(name);
-               this.dialog =  addKeystore.showTruststoreDialog;
            }
 
            TrustStore.prototype.getTitle = function() {
@@ -48,7 +47,7 @@ define(["dojo/dom",
            TrustStore.prototype.open = function(contentPane) {
                var that = this;
                this.contentPane = contentPane;
-               xhr.get({url: "showTrustStore.html",
+               xhr.get({url: "showStore.html",
                         sync: true,
                         load:  function(data) {
                             contentPane.containerNode.innerHTML = data;
@@ -60,28 +59,27 @@ define(["dojo/dom",
 
                             that.keyStoreUpdater.update();
 
-                            var deleteTrustStoreButton = query(".deleteTrustStoreButton", contentPane.containerNode)[0];
+                            var deleteTrustStoreButton = query(".deleteStoreButton", contentPane.containerNode)[0];
                             var node = registry.byNode(deleteTrustStoreButton);
                             connect.connect(node, "onClick",
                                 function(evt){
                                     that.deleteKeyStore();
                                 });
 
-                            var editTrustStoreButton = query(".editTrustStoreButton", contentPane.containerNode)[0];
+                            var editTrustStoreButton = query(".editStoreButton", contentPane.containerNode)[0];
                             var node = registry.byNode(editTrustStoreButton);
                             connect.connect(node, "onClick",
                                 function(evt){
                                     xhr.get({url: that.url, sync: properties.useSyncGet, handleAs: "json", content: { actuals: true }})
                                     .then(function(data)
                                     {
-                                      that.dialog(data[0], that.url);
+                                      addStore.setupTypeStore("TrustStore");
+                                      addStore.show(data[0], that.url);
                                     });
                                 });
                         }});
            };
 
-
-
            TrustStore.prototype.close = function() {
                updater.remove( this.keyStoreUpdater );
            };
@@ -89,9 +87,10 @@ define(["dojo/dom",
            function KeyStoreUpdater(containerNode, keyStoreObj, controller, url)
            {
                var that = this;
+               this.keyStoreDetailsContainer = query(".typeFieldsContainer", containerNode)[0];
 
                function findNode(name) {
-                   return query("." + name + "Value", containerNode)[0];
+                   return query("." + name , containerNode)[0];
                }
 
                function storeNodes(names)
@@ -102,12 +101,8 @@ define(["dojo/dom",
                }
 
                storeNodes(["name",
-                           "path",
-                           "trustStoreType",
-                           "trustStoreState",
-                           "trustManagerFactoryAlgorithm",
-                           "certificateAlias",
-                           "peersOnly"
+                           "type",
+                           "state"
                            ]);
 
                this.query = url;
@@ -123,23 +118,26 @@ define(["dojo/dom",
            KeyStoreUpdater.prototype.updateHeader = function()
            {
               this.name.innerHTML = entities.encode(String(this.keyStoreData[ "name" ]));
-              this.path.innerHTML = entities.encode(String(this.keyStoreData[ "path" ]));
-              this.trustStoreType.innerHTML = entities.encode(String(this.keyStoreData[ "trustStoreType" ]));
-              this.trustStoreState.innerHTML = entities.encode(String(this.keyStoreData[ "state" ]));
-              this.trustManagerFactoryAlgorithm.innerHTML = entities.encode(String(this.keyStoreData[ "trustManagerFactoryAlgorithm" ]));
-              this.peersOnly.innerHTML = "<input type='checkbox' disabled='disabled' "+(this.keyStoreData[ "peersOnly" ] ? "checked='checked'": "")+" />" ;
+              this.type.innerHTML = entities.encode(String(this.keyStoreData[ "type" ]));
+              this.state.innerHTML = entities.encode(String(this.keyStoreData[ "state" ]));
            };
 
            KeyStoreUpdater.prototype.update = function()
            {
-
-              var thisObj = this;
-
+              var that = this;
               xhr.get({url: this.query, sync: properties.useSyncGet, handleAs: "json"}).then(function(data)
-                   {
-                      thisObj.keyStoreData = data[0];
-                      thisObj.updateHeader();
-                   });
+               {
+                  that.trustStoreData = data[0];
+                  that.updateHeader();
+
+                  require(["qpid/management/store/" + encodeURIComponent(that.trustStoreData.type.toLowerCase()) + "/show"],
+                       function(DetailsUI)
+                       {
+                         that.details = new DetailsUI({containerNode:that.keyStoreDetailsContainer, parent: that});
+                         that.details.update(that.trustStoreData);
+                       }
+                     );
+               });
            };
 
            TrustStore.prototype.deleteKeyStore = function() {

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/accesscontrolprovider/aclfile/add.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/accesscontrolprovider/aclfile/add.js?rev=1653285&r1=1653284&r2=1653285&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/accesscontrolprovider/aclfile/add.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/accesscontrolprovider/aclfile/add.js Tue Jan 20 16:25:28 2015
@@ -39,6 +39,7 @@ define(["dojo/dom","dojo/query","dijit/r
                 this.aclSelectedFileStatusContainer = dom.byId("addAccessControlProvider.selectedFileStatus");
                 this.aclFile = registry.byId("addAccessControlProvider.file");
                 this.aclFileClearButton = registry.byId("addAccessControlProvider.fileClearButton");
+                this.aclFileOldBrowserWarning = dom.byId("addAccessControlProvider.oldBrowserWarning");
 
                 //Only submitted field
                 this.aclPath = registry.byId("addAccessControlProvider.path");
@@ -56,6 +57,8 @@ define(["dojo/dom","dojo/query","dijit/r
                 {
                   // Fall back for IE8/9 which do not support FileReader
                   this.aclUploadFields.style.display = "none";
+                  this.aclFileOldBrowserWarning.innerHTML = "File upload requires a more recent browser with HTML5 support";
+                  this.aclFileOldBrowserWarning.className = this.aclFileOldBrowserWarning.className.replace("hidden", "");
                 }
 
                 this.aclServerPath.on("blur", function(){that._aclServerPathChanged()});

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js Tue Jan 20 16:25:28 2015
@@ -0,0 +1,211 @@
+/*
+ *
+ * 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.
+ *
+ */
+define(["dojo/_base/lang",
+        "dojo/_base/xhr",
+        "dojo/dom",
+        "dojo/dom-construct",
+        "dijit/registry",
+        "dojo/parser",
+        "dojo/store/Memory",
+        "dojo/_base/array",
+        "dojo/_base/event",
+        'dojo/json',
+        "qpid/common/util",
+        "qpid/common/metadata",
+        "dojo/text!addStore.html",
+        "dojo/store/Memory",
+        "dojox/validate/us",
+        "dojox/validate/web",
+        "dijit/Dialog",
+        "dijit/form/CheckBox",
+        "dijit/form/Textarea",
+        "dijit/form/ComboBox",
+        "dijit/form/TextBox",
+        "dijit/form/ValidationTextBox",
+        "dijit/form/Button",
+        "dijit/form/Form",
+        "dijit/layout/ContentPane",
+        "dojox/layout/TableContainer",
+        "dojo/domReady!"],
+    function (lang, xhr, dom, construct, registry, parser, memory, array, event, json, util, metadata, template)
+    {
+        var addStore =
+        {
+            init: function()
+            {
+                var that=this;
+                this.containerNode = construct.create("div", {innerHTML: template});
+                parser.parse(this.containerNode);
+
+                this.storeName = registry.byId("addStore.name");
+                this.storeName.set("regExpGen", util.nameOrContextVarRegexp);
+
+                this.dialog = registry.byId("addStore");
+                this.addButton = registry.byId("addStore.addButton");
+                this.cancelButton = registry.byId("addStore.cancelButton");
+                this.cancelButton.on("click", function(e){that._cancel(e);});
+                this.addButton.on("click", function(e){that._add(e);});
+
+                this.storeTypeFieldsContainer = dom.byId("addStore.typeFields");
+                this.storeForm = registry.byId("addStore.form");
+
+                this.storeType = registry.byId("addStore.type");
+                this.storeType.on("change", function(type){that._storeTypeChanged(type);});
+            },
+            setupTypeStore: function(category)
+            {
+                this.category = category;
+                var storeTypeSupportedTypes = metadata.getTypesForCategory(category);
+                storeTypeSupportedTypes.sort();
+                var storeTypeStore = util.makeTypeStore(storeTypeSupportedTypes);
+                this.storeType.set("store", storeTypeStore);
+            },
+            show: function(effectiveData)
+            {
+                this.storeForm.reset();
+
+                if (effectiveData)
+                {
+                    this.effectiveData = effectiveData;
+                    this._destroyTypeFields(this.containerNode);
+                    this._initFields(effectiveData);
+                }
+                this.storeName.set("disabled", effectiveData == null ? false : true);
+                this.storeType.set("disabled", effectiveData == null ? false : true);
+                this.dialog.show();
+            },
+            _initFields:function(data)
+            {
+                var type = data["type"];
+                var attributes = metadata.getMetaData(this.category, type).attributes;
+                for(var name in attributes)
+                {
+                    var widget = registry.byId("addStore."+name);
+                    if (widget)
+                    {
+                        widget.set("value", data[name]);
+                    }
+                }
+            },
+            _cancel: function(e)
+            {
+                event.stop(e);
+                if (this.reader)
+                {
+                    this.reader.abort();
+                }
+                this.dialog.hide();
+            },
+            _add: function(e)
+            {
+                event.stop(e);
+                this._submit();
+            },
+            _submit: function()
+            {
+                if (this.storeForm.validate())
+                {
+                    var success = false,failureReason=null;
+
+                    var storeData = util.getFormWidgetValues(this.storeForm, this.initialData);
+                    var encodedStoreName = encodeURIComponent(this.storeName.value);
+                    var encodedCategory = encodeURIComponent(this.category.toLowerCase());
+                    var jsonString = json.stringify(storeData);
+
+                    try {
+                    xhr.put(
+                    {
+                        url: "api/latest/" + encodedCategory + "/" + encodedStoreName,
+                        sync: true,
+                        handleAs: "json",
+                        headers: { "Content-Type": "application/json"},
+                        putData: jsonString,
+                        load: function(x) {success = true; },
+                        error: function(error) {success = false; failureReason = error;}
+                    });
+                    }
+                    catch (e)
+                    {
+                    console.warn(e);
+                    }
+
+                    if (success == true)
+                    {
+                        this.dialog.hide();
+                    }
+                    else
+                    {
+                        util.xhrErrorHandler(failureReason);
+                    }
+                }
+                else
+                {
+                    alert('Form contains invalid data. Please correct first');
+                }
+            },
+            _storeTypeChanged: function(type)
+            {
+                this._typeChanged(type, this.storeTypeFieldsContainer, "qpid/management/store/", this.category );
+            },
+            _destroyTypeFields: function(typeFieldsContainer)
+            {
+                var widgets = registry.findWidgets(typeFieldsContainer);
+                array.forEach(widgets, function(item) { item.destroyRecursive();});
+                construct.empty(typeFieldsContainer);
+            },
+            _typeChanged: function(type, typeFieldsContainer, baseUrl, category )
+            {
+                 this._destroyTypeFields(typeFieldsContainer);
+
+                 if (type)
+                 {
+                     var that = this;
+                     require([ baseUrl + type.toLowerCase() + "/add"], function(typeUI)
+                     {
+                         try
+                         {
+                             typeUI.show({containerNode:typeFieldsContainer, parent: that, data: that.initialData, effectiveData: that.effectiveData});
+                             util.applyMetadataToWidgets(typeFieldsContainer, category, type);
+                             if (that.effectiveData)
+                             {
+                                typeUI.update(that.effectiveData);
+                                that.effectiveData = undefined;
+                             }
+                         }
+                         catch(e)
+                         {
+                             console.warn(e);
+                         }
+                     });
+                 }
+            }
+        };
+
+        try
+        {
+            addStore.init();
+        }
+        catch(e)
+        {
+            console.warn(e);
+        }
+        return addStore;
+    });

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/add.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/add.js?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/add.js (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/add.js Tue Jan 20 16:25:28 2015
@@ -0,0 +1,152 @@
+/*
+ *
+ * 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.
+ *
+ */
+define(["dojo/dom","dojo/query", "dojo/_base/array", "dijit/registry","qpid/common/util", "qpid/common/metadata"],
+    function (dom, query, array, registry, util, metadata)
+    {
+        var addKeyStore =
+        {
+            init: function()
+            {
+                // Readers are HTML5
+                this.reader = window.FileReader ? new FileReader() : undefined;
+            },
+            show: function(data)
+            {
+                var that=this;
+                util.parseHtmlIntoDiv(data.containerNode, "store/filekeystore/add.html");
+
+                this.containerNode = data.containerNode;
+                this.keyStoreServerPath = registry.byId("addStore.serverPath");
+                this.keyStoreUploadFields = dom.byId("addStore.uploadFields");
+                this.keyStoreSelectedFileContainer = dom.byId("addStore.selectedFile");
+                this.keyStoreSelectedFileStatusContainer = dom.byId("addStore.selectedFileStatus");
+                this.keyStoreFile = registry.byId("addStore.file");
+                this.keyStoreFileClearButton = registry.byId("addStore.fileClearButton");
+                this.keyStoreOldBrowserWarning = dom.byId("addStore.oldBrowserWarning");
+
+                //Only submitted field
+                this.keyStorePath = registry.byId("addStore.path");
+
+                this.addButton = data.parent.addButton;
+
+                if (this.reader)
+                {
+                  this.reader.onload = function(evt) {that._keyStoreUploadFileComplete(evt);};
+                  this.reader.onerror = function(ex) {console.error("Failed to load key store file", ex);};
+                  this.keyStoreFile.on("change", function(selected){that._keyStoreFileChanged(selected)});
+                  this.keyStoreFileClearButton.on("click", function(event){that._keyStoreFileClearButtonClicked(event)});
+                }
+                else
+                {
+                  // Fall back for IE8/9 which do not support FileReader
+                  this.keyStoreUploadFields.style.display = "none";
+                  this.keyStoreOldBrowserWarning.innerHTML = "File upload requires a more recent browser with HTML5 support";
+                  this.keyStoreOldBrowserWarning.className = this.keyStoreOldBrowserWarning.className.replace("hidden", "");
+                }
+
+                this.keyStoreServerPath.on("blur", function(){that._keyStoreServerPathChanged()});
+            },
+            _keyStoreFileChanged: function (evt)
+            {
+                // We only ever expect a single file
+                var file = this.keyStoreFile.domNode.children[0].files[0];
+
+                this.addButton.setDisabled(true);
+                this.keyStoreSelectedFileContainer.innerHTML = file.name;
+                this.keyStoreSelectedFileStatusContainer.className = "loadingIcon";
+
+                console.log("Beginning to read key store file " + file.name);
+                this.reader.readAsDataURL(file);
+            },
+            _keyStoreUploadFileComplete: function(evt)
+            {
+                var reader = evt.target;
+                var result = reader.result;
+                console.log("Key store file read complete, contents " + result);
+                this.addButton.setDisabled(false);
+                this.keyStoreSelectedFileStatusContainer.className = "loadedIcon";
+
+                this.keyStoreServerPath.set("value", "");
+                this.keyStoreServerPath.setDisabled(true);
+                this.keyStoreServerPath.set("required", false);
+
+                this.keyStoreFileClearButton.setDisabled(false);
+
+                this.keyStorePath.set("value", result);
+            },
+             _keyStoreFileClearButtonClicked: function(event)
+            {
+                this.keyStoreFile.reset();
+                this.keyStoreSelectedFileStatusContainer.className = "";
+                this.keyStoreSelectedFileContainer.innerHTML = "";
+                this.keyStoreServerPath.set("required", true);
+                this.keyStoreServerPath.setDisabled(false);
+                this.keyStoreFileClearButton.setDisabled(true);
+
+                this.keyStorePath.set("value", "");
+            },
+            _keyStoreServerPathChanged: function()
+            {
+                var serverPathValue = this.keyStoreServerPath.get("value");
+                this.keyStorePath.set("value", serverPathValue);
+            },
+            update: function(effectiveData)
+            {
+                var attributes = metadata.getMetaData("KeyStore", "FileKeyStore").attributes;
+                var widgets = registry.findWidgets(this.containerNode);
+                array.forEach(widgets, function(item)
+                    {
+                        var name = item.id.replace("addStore.","");
+                        if (name in attributes && item.type != "password")
+                        {
+                            item.set("value", effectiveData[name]);
+                        }
+                    });
+
+                var keyStorePathValue = effectiveData["path"];
+                var isDataUrl = keyStorePathValue.indexOf("data:") == 0;
+
+                if (isDataUrl)
+                {
+                     this.keyStoreSelectedFileStatusContainer.className = "loadedIcon";
+                     this.keyStoreSelectedFileContainer.innerHTML = "uploaded.jks";
+                     this.keyStoreServerPath.setDisabled(true);
+                     this.keyStoreServerPath.set("required", false);
+                     this.keyStoreFileClearButton.setDisabled(false);
+                }
+                else
+                {
+                     this.keyStoreServerPath.set("value", keyStorePathValue);
+                }
+            }
+        };
+
+        try
+        {
+            addKeyStore.init();
+        }
+        catch(e)
+        {
+            console.warn(e);
+        }
+        return addKeyStore;
+    }
+);

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/show.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/show.js?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/show.js (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/show.js Tue Jan 20 16:25:28 2015
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+
+define(["qpid/common/util", "qpid/common/metadata", "dojo/domReady!"],
+  function (util, metadata)
+  {
+
+    function FileKeyStoreProvider(data)
+    {
+        this.fields = [];
+        var attributes = metadata.getMetaData("KeyStore", "FileKeyStore").attributes;
+        for(var name in attributes)
+        {
+            this.fields.push(name);
+        }
+        util.buildUI(data.containerNode, data.parent, "store/filekeystore/show.html", this.fields, this);
+    }
+
+    FileKeyStoreProvider.prototype.update = function(data)
+    {
+        util.updateUI(data, this.fields, this);
+    }
+
+    return FileKeyStoreProvider;
+  }
+);

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/add.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/add.js?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/add.js (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/add.js Tue Jan 20 16:25:28 2015
@@ -0,0 +1,152 @@
+/*
+ *
+ * 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.
+ *
+ */
+define(["dojo/dom","dojo/query", "dojo/_base/array", "dijit/registry","qpid/common/util", "qpid/common/metadata"],
+    function (dom, query, array, registry, util, metadata)
+    {
+        var addTrustStore =
+        {
+            init: function()
+            {
+                // Readers are HTML5
+                this.reader = window.FileReader ? new FileReader() : undefined;
+            },
+            show: function(data)
+            {
+                var that=this;
+                util.parseHtmlIntoDiv(data.containerNode, "store/filetruststore/add.html");
+
+                this.containerNode = data.containerNode;
+                this.keyStoreServerPath = registry.byId("addStore.serverPath");
+                this.keyStoreUploadFields = dom.byId("addStore.uploadFields");
+                this.keyStoreSelectedFileContainer = dom.byId("addStore.selectedFile");
+                this.keyStoreSelectedFileStatusContainer = dom.byId("addStore.selectedFileStatus");
+                this.keyStoreFile = registry.byId("addStore.file");
+                this.keyStoreFileClearButton = registry.byId("addStore.fileClearButton");
+                this.keyStoreOldBrowserWarning = dom.byId("addStore.oldBrowserWarning");
+
+                //Only submitted field
+                this.keyStorePath = registry.byId("addStore.path");
+
+                this.addButton = data.parent.addButton;
+
+                if (this.reader)
+                {
+                  this.reader.onload = function(evt) {that._keyStoreUploadFileComplete(evt);};
+                  this.reader.onerror = function(ex) {console.error("Failed to load trust store file", ex);};
+                  this.keyStoreFile.on("change", function(selected){that._keyStoreFileChanged(selected)});
+                  this.keyStoreFileClearButton.on("click", function(event){that._keyStoreFileClearButtonClicked(event)});
+                }
+                else
+                {
+                  // Fall back for IE8/9 which do not support FileReader
+                  this.keyStoreUploadFields.style.display = "none";
+                  this.keyStoreOldBrowserWarning.innerHTML = "File upload requires a more recent browser with HTML5 support";
+                  this.keyStoreOldBrowserWarning.className = this.keyStoreOldBrowserWarning.className.replace("hidden", "");
+                }
+
+                this.keyStoreServerPath.on("blur", function(){that._keyStoreServerPathChanged()});
+            },
+            _keyStoreFileChanged: function (evt)
+            {
+                // We only ever expect a single file
+                var file = this.keyStoreFile.domNode.children[0].files[0];
+
+                this.addButton.setDisabled(true);
+                this.keyStoreSelectedFileContainer.innerHTML = file.name;
+                this.keyStoreSelectedFileStatusContainer.className = "loadingIcon";
+
+                console.log("Beginning to read trust store file " + file.name);
+                this.reader.readAsDataURL(file);
+            },
+            _keyStoreUploadFileComplete: function(evt)
+            {
+                var reader = evt.target;
+                var result = reader.result;
+                console.log("Trust store file read complete, contents " + result);
+                this.addButton.setDisabled(false);
+                this.keyStoreSelectedFileStatusContainer.className = "loadedIcon";
+
+                this.keyStoreServerPath.set("value", "");
+                this.keyStoreServerPath.setDisabled(true);
+                this.keyStoreServerPath.set("required", false);
+
+                this.keyStoreFileClearButton.setDisabled(false);
+
+                this.keyStorePath.set("value", result);
+            },
+             _keyStoreFileClearButtonClicked: function(event)
+            {
+                this.keyStoreFile.reset();
+                this.keyStoreSelectedFileStatusContainer.className = "";
+                this.keyStoreSelectedFileContainer.innerHTML = "";
+                this.keyStoreServerPath.set("required", true);
+                this.keyStoreServerPath.setDisabled(false);
+                this.keyStoreFileClearButton.setDisabled(true);
+
+                this.keyStorePath.set("value", "");
+            },
+            _keyStoreServerPathChanged: function()
+            {
+                var serverPathValue = this.keyStoreServerPath.get("value");
+                this.keyStorePath.set("value", serverPathValue);
+            },
+            update: function(effectiveData)
+            {
+                var attributes = metadata.getMetaData("TrustStore", "FileTrustStore").attributes;
+                var widgets = registry.findWidgets(this.containerNode);
+                array.forEach(widgets, function(item)
+                    {
+                        var name = item.id.replace("addStore.","");
+                        if (name in attributes && item.type != "password")
+                        {
+                            item.set("value", effectiveData[name]);
+                        }
+                    });
+
+                var keyStorePathValue = effectiveData["path"];
+                var isDataUrl = keyStorePathValue.indexOf("data:") == 0;
+
+                if (isDataUrl)
+                {
+                     this.keyStoreSelectedFileStatusContainer.className = "loadedIcon";
+                     this.keyStoreSelectedFileContainer.innerHTML = "uploaded.jks";
+                     this.keyStoreServerPath.setDisabled(true);
+                     this.keyStoreServerPath.set("required", false);
+                     this.keyStoreFileClearButton.setDisabled(false);
+                }
+                else
+                {
+                     this.keyStoreServerPath.set("value", keyStorePathValue);
+                }
+            }
+        };
+
+        try
+        {
+            addTrustStore.init();
+        }
+        catch(e)
+        {
+            console.warn(e);
+        }
+        return addTrustStore;
+    }
+);

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/show.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/show.js?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/show.js (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/show.js Tue Jan 20 16:25:28 2015
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+
+define(["qpid/common/util", "qpid/common/metadata", "dojo/domReady!"],
+  function (util, metadata)
+  {
+
+    function FileTrustStoreProvider(data)
+    {
+        this.fields = [];
+        var attributes = metadata.getMetaData("TrustStore", "FileTrustStore").attributes;
+        for(var name in attributes)
+        {
+            this.fields.push(name);
+        }
+        util.buildUI(data.containerNode, data.parent, "store/filetruststore/show.html", this.fields, this);
+    }
+
+    FileTrustStoreProvider.prototype.update = function(data)
+    {
+        util.updateUI(data, this.fields, this);
+    }
+
+    return FileTrustStoreProvider;
+  }
+);

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showStore.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showStore.html?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showStore.html (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showStore.html Tue Jan 20 16:25:28 2015
@@ -0,0 +1,46 @@
+<!--
+  ~ 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>
+    <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Show Store',  open: true">
+        <div id="showStore.contentPane">
+            <div class="clear">
+                <div class="formLabel-labelCell">Name:</div>
+                <div class="name"></div>
+            </div>
+            <div class="clear">
+                <div class="formLabel-labelCell">Type:</div>
+                <div class="type"></div>
+            </div>
+            <div class="clear">
+                <div class="formLabel-labelCell">State:</div>
+                <div class="state"></div>
+            </div>
+            <div class="clear">
+                <div class="typeFieldsContainer"></div>
+            </div>
+            <div class="clear">
+            </div>
+        </div>
+
+        <div class="dijitDialogPaneActionBar">
+            <button data-dojo-type="dijit.form.Button" class="editStoreButton" type="button">Edit</button>
+            <button data-dojo-type="dijit.form.Button" class="deleteStoreButton" type="button">Delete</button>
+        </div>
+    </div>
+</div>

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/add.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/add.html?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/add.html (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/add.html Tue Jan 20 16:25:28 2015
@@ -0,0 +1,114 @@
+<!--
+  ~ 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>
+    <div id="addStore.oldBrowserWarning" class="infoMessage hidden clear"></div>
+    <div class="clear">
+        <div id="addStore.serverPathLabel" class="formLabel-labelCell tableContainer-labelCell">Server path or upload*:</div>
+        <div class="formLabel-controlCell tableContainer-valueCell">
+            <input type="text" id="addStore.serverPath"
+                   data-dojo-type="dijit/form/ValidationTextBox"
+                   data-dojo-props="
+                              name: 'serverPath',
+                              placeHolder: 'key store file server path',
+                              required: true,
+                              excluded: true,
+                              promptMessage: 'Location of the key store file on the server',
+                              title: 'Enter the key store file path'" />
+
+            <!-- Hidden and used purely for form submission -->
+            <input type="hidden" id="addStore.path"
+                   data-dojo-type="dijit/form/ValidationTextBox"
+                   data-dojo-props="
+                              name: 'path',
+                              required: true" />
+        </div>
+
+        <div id="addStore.uploadFields">
+            <div id="addStore.fileLabel" class="formLabel-labelCell tableContainer-labelCell"></div>
+            <div class="fileUpload clear">
+                <span id="addStore.selectedFile" class="infoMessage"></span>
+                <span id="addStore.selectedFileStatus"></span>
+            </div>
+
+            <div class="fileUpload clear">
+                <input type="file" id="addStore.file"
+                       multiple="false"
+                       data-dojo-type="dojox/form/Uploader"
+                       data-dojo-props="label: 'Upload'"/>
+                <button id="addStore.fileClearButton"
+                        data-dojo-type="dijit/form/Button"
+                        data-dojo-props="label: 'Clear',
+                                        disabled: true">
+                </button>
+            </div>
+        </div>
+
+        <div class="clear">
+            <div class="formLabel-labelCell tableContainer-labelCell">Password*:</div>
+            <div class="formLabel-controlCell tableContainer-valueCell">
+                <input type="password" id="addStore.password"
+                       data-dojo-type="dijit/form/ValidationTextBox"
+                       data-dojo-props="
+                                  name: 'password',
+                                  placeHolder: 'store password',
+                                  required: true,
+                                  promptMessage: 'password for store',
+                                  title: 'Enter a password for the store'" />
+            </div>
+        </div>
+        <div class="clear">
+            <div class="formLabel-labelCell tableContainer-labelCell">Certificate alias:</div>
+            <div class="formLabel-controlCell tableContainer-valueCell">
+                <input type="text" id="addStore.certificateAlias"
+                       data-dojo-type="dijit/form/ValidationTextBox"
+                       data-dojo-props="
+                              name: 'certificateAlias',
+                              placeHolder: 'certificate alias',
+                              promptMessage: 'Used to identify one certificate in a store that has many',
+                              title: 'Enter an alias to identify one certificate in a store with many'" />
+            </div>
+        </div>
+        <div class="clear">
+            <div class="formLabel-labelCell tableContainer-labelCell clear">Key manager factory algorithm:</div>
+            <div class="formLabel-controlCell tableContainer-valueCell">
+                <input type="text" id="addStore.keyManagerFactoryAlgorithm"
+                       data-dojo-type="dijit/form/ValidationTextBox"
+                       data-dojo-props="
+                              name: 'keyManagerFactoryAlgorithm',
+                              placeHolder: 'key manager factory algorithm',
+                              promptMessage: 'Name of the key manager algorithm known to Java',
+                              title: 'Enter the key manager algorithm known to Java'" />
+            </div>
+        </div>
+        <div class="clear">
+            <div class="formLabel-labelCell tableContainer-labelCell">Java key store type:</div>
+            <div class="formLabel-controlCell tableContainer-valueCell">
+                <input type="text" id="addStore.keyStoreType"
+                       data-dojo-type="dijit/form/ValidationTextBox"
+                       data-dojo-props="
+                              name: 'keyStoreType',
+                              placeHolder: 'java key store type',
+                              promptMessage: 'Name of the store type known to Java',
+                              title: 'Enter the store type known to Java'" />
+            </div>
+        </div>
+
+    </div>
+</div>

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/show.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/show.html?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/show.html (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/show.html Tue Jan 20 16:25:28 2015
@@ -0,0 +1,39 @@
+<!--
+  ~ 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>
+    <div class="clear">
+        <div class="formLabel-labelCell">Path:</div>
+        <div ><span class="path" ></span></div>
+    </div>
+    <div class="clear">
+        <div class="formLabel-labelCell">Certificate alias:</div>
+        <div><span class="certificateAlias" ></span></div>
+    </div>
+    <div class="clear">
+        <div class="formLabel-labelCell">Java key store type:</div>
+        <div><span class="keyStoreType" ></span></div>
+    </div>
+    <div class="clear">
+        <div class="formLabel-labelCell">Key manager factory algorithm:</div>
+        <div><span class="keyManagerFactoryAlgorithm" ></span></div>
+    </div>
+    <div class="clear"></div>
+</div>
+

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/add.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/add.html?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/add.html (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/add.html Tue Jan 20 16:25:28 2015
@@ -0,0 +1,109 @@
+<!--
+  ~ 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>
+    <div id="addStore.oldBrowserWarning" class="infoMessage hidden clear"></div>
+    <div class="clear">
+        <div id="addStore.serverPathLabel" class="formLabel-labelCell tableContainer-labelCell">Server path or upload*:</div>
+        <div class="formLabel-controlCell tableContainer-valueCell">
+            <input type="text" id="addStore.serverPath"
+                   data-dojo-type="dijit/form/ValidationTextBox"
+                   data-dojo-props="
+                              name: 'serverPath',
+                              placeHolder: 'trust store file server path',
+                              required: true,
+                              excluded: true,
+                              promptMessage: 'Location of the trust store file on the server',
+                              title: 'Enter the store file path'" />
+            <!-- Hidden and used purely for form submission -->
+            <input type="hidden" id="addStore.path"
+                   data-dojo-type="dijit/form/ValidationTextBox"
+                   data-dojo-props="
+                              name: 'path',
+                              required: true" />
+        </div>
+        <div id="addStore.uploadFields">
+            <div id="addStore.fileLabel" class="formLabel-labelCell tableContainer-labelCell"></div>
+            <div class="fileUpload clear">
+                <span id="addStore.selectedFile" class="infoMessage"></span>
+                <span id="addStore.selectedFileStatus"></span>
+            </div>
+            <div class="fileUpload clear">
+                <input type="file" id="addStore.file"
+                       multiple="false"
+                       data-dojo-type="dojox/form/Uploader"
+                       data-dojo-props="label: 'Upload'"/>
+                <button id="addStore.fileClearButton"
+                        data-dojo-type="dijit/form/Button"
+                        data-dojo-props="label: 'Clear',
+                                        disabled: true">
+                </button>
+            </div>
+        </div>
+        <div class="clear">
+            <div class="formLabel-labelCell tableContainer-labelCell">Password*:</div>
+            <div class="formLabel-controlCell tableContainer-valueCell">
+                <input type="password" id="addStore.password"
+                       data-dojo-type="dijit/form/ValidationTextBox"
+                       data-dojo-props="
+                                  name: 'password',
+                                  placeHolder: 'store password',
+                                  required: true,
+                                  promptMessage: 'password for store',
+                                  title: 'Enter a password for the store'" />
+            </div>
+        </div>
+        <div class="clear">
+            <div class="formLabel-labelCell tableContainer-labelCell">Peers only:</div>
+            <div class="formLabel-controlCell tableContainer-valueCell">
+                <input type="text" id="addStore.peersOnly"
+                       data-dojo-type="dijit/form/CheckBox"
+                       data-dojo-props="
+                              name: 'peersOnly',
+                              promptMessage: 'Peers only or not',
+                              title: 'Tick if peers only'" />
+            </div>
+        </div>
+        <div class="clear">
+            <div class="formLabel-labelCell tableContainer-labelCell">Trust manager factory algorithm:</div>
+            <div class="formLabel-controlCell tableContainer-valueCell">
+                <input type="text" id="addStore.keyManagerFactoryAlgorithm"
+                       data-dojo-type="dijit/form/ValidationTextBox"
+                       data-dojo-props="
+                              name: 'trustManagerFactoryAlgorithm',
+                              placeHolder: 'trust manager factory algorithm',
+                              promptMessage: 'Name of the trust manager algorithm known to Java',
+                              title: 'Enter the trust manager algorithm known to Java'" />
+            </div>
+        </div>
+        <div class="clear">
+            <div class="formLabel-labelCell tableContainer-labelCell">Java trust store type:</div>
+            <div class="formLabel-controlCell tableContainer-valueCell">
+                <input type="text" id="addStore.trustStoreType"
+                       data-dojo-type="dijit/form/ValidationTextBox"
+                       data-dojo-props="
+                              name: 'trustStoreType',
+                              placeHolder: 'java trust store type',
+                              promptMessage: 'Name of the store type known to Java',
+                              title: 'Enter the store type known to Java'" />
+            </div>
+        </div>
+
+    </div>
+</div>

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/show.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/show.html?rev=1653285&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/show.html (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/show.html Tue Jan 20 16:25:28 2015
@@ -0,0 +1,39 @@
+<!--
+  ~ 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>
+    <div class="clear">
+        <div class="formLabel-labelCell">Path:</div>
+        <div ><span class="path" ></span></div>
+    </div>
+    <div class="clear">
+        <div class="formLabel-labelCell">Peers only:</div>
+        <div><span class="peersOnly" ></span></div>
+    </div>
+    <div class="clear">
+        <div class="formLabel-labelCell">Java trust store type:</div>
+        <div><span class="trustStoreType" ></span></div>
+    </div>
+    <div class="clear">
+        <div class="formLabel-labelCell">Trust manager factory algorithm:</div>
+        <div><span class="trustManagerFactoryAlgorithm" ></span></div>
+    </div>
+    <div class="clear"></div>
+</div>
+



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org