You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2013/10/01 17:26:24 UTC

svn commit: r1528117 - in /qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources: ./ authenticationprovider/preferences/filesystempreferences/ js/qpid/management/ js/qpid/management/authenticationprovider/preferences/filesystempre...

Author: orudyy
Date: Tue Oct  1 15:26:24 2013
New Revision: 1528117

URL: http://svn.apache.org/r1528117
Log:
QPID-5138: Embed the UI to create preferences provider into authentication provider create UI

Added:
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProviderFields.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProviderFields.html
Modified:
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/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/addAuthenticationProvider.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html?rev=1528117&r1=1528116&r2=1528117&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html Tue Oct  1 15:26:24 2013
@@ -17,7 +17,7 @@
 <div class="dijitHidden">
     <div data-dojo-type="dijit.Dialog" data-dojo-props="title:'Authentication Provider'" id="addAuthenticationProvider">
         <form id="formAddAuthenticationProvider" method="post" dojoType="dijit.form.Form">
-            <div style="height:100px; width:420px; overflow: auto">
+            <div style="width:420px; overflow: auto">
                 <table class="tableContainer-table tableContainer-table-horiz" width="100%" cellspacing="1">
                 <tr>
                     <td class="tableContainer-labelCell" style="width: 200px;">Type*:</td>
@@ -32,6 +32,10 @@
                 </table>
                 <input type="hidden" id="formAddAuthenticationProvider.id" name="id"/>
                 <div id="addAuthenticationProvider.fieldSets"></div>
+                <br/>
+                <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Preferences Provider',  open: true" id="addAuthenticationProvider.preferencesProviderPanel">
+                  <div id="addAuthenticationProvider.preferencesProvider"></div>
+                </div>
             </div>
             <div class="dijitDialogPaneActionBar">
                 <!-- submit buttons -->

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html?rev=1528117&r1=1528116&r2=1528117&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html Tue Oct  1 15:26:24 2013
@@ -18,24 +18,8 @@
     <div data-dojo-type="dijit.Dialog" data-dojo-props="title:'Preferences Provider'" id="addPreferencesProvider">
         <form id="formAddPreferencesProvider" method="post" data-dojo-type="dijit.form.Form">
             <input type="hidden" id="preferencesProvider.id" name="id"/>
-            <div style="height:100px; width:420px; overflow: auto">
-                <table class="tableContainer-table tableContainer-table-horiz" width="100%" cellspacing="1">
-                <tr>
-                    <td class="tableContainer-labelCell" style="width: 200px;"><strong>Type*:</strong></td>
-                    <td class="tableContainer-valueCell"><div id="addPreferencesProvider.selectPreferencesProviderDiv"></div></td>
-                </tr>
-                <tr>
-                    <td class="tableContainer-labelCell" style="width: 200px;"><strong>Name*:</strong></td>
-                    <td class="tableContainer-valueCell"><input type="text" name="name"
-                        id="preferencesProvider.name" data-dojo-type="dijit.form.ValidationTextBox"
-                        data-dojo-props="placeHolder: 'Name',
-                                    required: true,
-                                    missingMessage: 'A name must be supplied',
-                                    title: 'Enter name',
-                                    pattern: '^[\x20-\x2e\x30-\x7F]{1,255}$'" /></td>
-                </tr>
-                </table>
-                <div id="preferencesProvider.fieldsContainer"></div>
+            <div style="width:420px; overflow: auto">
+                <div id="addPreferencesProvider.preferencesProvider"></div>
             </div>
             <div class="dijitDialogPaneActionBar">
                 <!-- submit buttons -->

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html?rev=1528117&r1=1528116&r2=1528117&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html Tue Oct  1 15:26:24 2013
@@ -18,7 +18,7 @@
   <tr>
       <td class="tableContainer-labelCell" style="width: 200px;"><strong>Path*: </strong></td>
       <td class="tableContainer-valueCell" >
-        <input type="text" name="path"
+        <input type="text" name="preferencesProviderPath"
                         id="preferencesProvider.path"
                         data-dojo-type="dijit.form.ValidationTextBox"
                         data-dojo-props="placeHolder: 'Path/to/file',

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=1528117&r1=1528116&r2=1528117&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 Oct  1 15:26:24 2013
@@ -237,18 +237,15 @@ define(["dojo/_base/xhr",
                        }
                      }
                      var preferencesProviderData = that.authProviderData.preferencesproviders? that.authProviderData.preferencesproviders[0]: null;
-                     if (preferencesProviderData)
+                     try
                      {
-                       try
-                       {
-                         that.updatePreferencesProvider(preferencesProviderData);
-                       }
-                       catch(e)
+                       that.updatePreferencesProvider(preferencesProviderData);
+                     }
+                     catch(e)
+                     {
+                       if (console)
                        {
-                         if (console)
-                           {
-                             console.error(e);
-                           }
+                         console.error(e);
                        }
                      }
                  });

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProviderFields.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProviderFields.js?rev=1528117&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProviderFields.js (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProviderFields.js Tue Oct  1 15:26:24 2013
@@ -0,0 +1,189 @@
+/*
+ *
+ * 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/xhr",
+        "dojo/dom",
+        "dojo/query",
+        "dojo/parser",
+        "dojo/string",
+        "dojo/json",
+        "dojo/store/Memory",
+        "dijit/registry",
+        "dijit/form/FilteringSelect",
+        "dijit/form/ValidationTextBox",
+        "dojox/html/entities",
+        "dojo/text!../../showPreferencesProviderFields.html",
+        "dojo/text!rest/helper?action=ListPreferencesProvidersTypes",
+        "dojox/validate/us",
+        "dojox/validate/web",
+        "dojo/domReady!"], function (xhr, dom, query, parser, string, json, Memory, registry, FilteringSelect, ValidationTextBox, entities, template, preferencesProvidersTypes) {
+
+  var PreferencesProviderFields = {};
+
+  var types = [{id: "", name: "None"}];
+  var typesArray = json.parse(preferencesProvidersTypes);
+  for (var i =0 ; i < typesArray.length; i++)
+  {
+    types.push({id: typesArray[i], name: typesArray[i]});
+  }
+
+  var selectPreferencesProviderType = function(type)
+  {
+    if(type && string.trim(type) != "")
+    {
+      if (PreferencesProviderFields.currentType != type)
+      {
+        require(["qpid/management/authenticationprovider/preferences/" + type.toLowerCase() + "/add"],
+        function(typeFields)
+        {
+          PreferencesProviderFields.currentType = null;
+          if (PreferencesProviderFields.details )
+          {
+            PreferencesProviderFields.details.destroy();
+          }
+          var disableOnEditing = PreferencesProviderFields.data? true: false;
+          PreferencesProviderFields.name.set("disabled", disableOnEditing);
+          PreferencesProviderFields.type.set("disabled", disableOnEditing);
+          PreferencesProviderFields.details = typeFields;
+          typeFields.show(PreferencesProviderFields.fieldsContainer, PreferencesProviderFields.data);
+          PreferencesProviderFields.currentType = type;
+         });
+      }
+      else
+      {
+        PreferencesProviderFields.disable(false);
+      }
+    }
+    else
+    {
+      PreferencesProviderFields.disable(true);
+    }
+  };
+
+  PreferencesProviderFields.init = function(data)
+  {
+    this.data = data;
+    this.id.value = data.id;
+    this.name.set("value", data.name);
+    this.type.set("value", data.type);
+    selectPreferencesProviderType(data.type);
+  };
+
+  PreferencesProviderFields.show = function(node, provider, authenticationProviderName)
+  {
+    this.currentType = null;
+    this.data = null;
+    node.innerHTML = template;
+    try
+    {
+      parser.parse(node);
+    }
+    catch(e)
+    {
+      console.error(e);
+      return;
+    }
+
+    if (this.container)
+    {
+      this.container.destroyRecursive();
+    }
+    if (this.details )
+    {
+      this.details.destroy();
+      delete this["details"];
+    }
+    this.container = registry.byNode(query(".preferencesProviderContainer", node)[0]);
+    this.fieldsContainer = query(".preferencesProviderFieldsContainer", node)[0];
+    this.type = registry.byNode(query(".preferencesProviderType", node)[0]);
+    this.name = registry.byNode(query(".preferencesProviderName", node)[0]);
+    this.id = query("input[name='preferencesProviderId']", node)[0];
+    this.id.value = null;
+    this.type.set("store", new Memory({ data: types, idProperty: "id"}));
+    this.type.on("change", selectPreferencesProviderType );
+    this.type.startup();
+
+    if (provider)
+    {
+      if (typeof provider == "object")
+      {
+        this.init(provider);
+      }
+      else if (typeof provider == "string")
+      {
+        var that = this;
+        xhr.get({
+          url: "rest/preferencesprovider/"  +encodeURIComponent(authenticationProviderName) + "/" + encodeURIComponent(provider),
+          sync: true,
+          handleAs: "json"
+        }).then(function(data){if (data && data[0]) { that.init(data[0]);}});
+      }
+    }
+    else
+    {
+      this.disable(true);
+    }
+  };
+
+  PreferencesProviderFields.disable = function(val)
+  {
+    this.name.set("disabled", val);
+    if (this.details)
+    {
+      this.details.disable(val);
+    }
+  };
+
+  PreferencesProviderFields.getValues = function()
+  {
+    var values = {};
+    if (this.details)
+    {
+      values = this.details.getValues() || {};
+    }
+    values.name = this.name.get("value");
+    if (this.id.value)
+    {
+      values.id = this.id.value;
+    }
+    values.type = this.type.get("value");
+    return values;
+  };
+
+  PreferencesProviderFields.save = function(authenticationProviderName)
+  {
+    var success = true;
+    if (this.type.value)
+    {
+      var data = this.getValues();
+      xhr.put({url: "rest/preferencesprovider/"  +encodeURIComponent(authenticationProviderName) + "/" + encodeURIComponent(data.name),
+        sync: true,
+        handleAs: "json",
+        headers: { "Content-Type": "application/json"},
+        putData: json.stringify(data),
+        load: function(x) {success = true;},
+        error: function(error) {success = false; alert("Preferences Provider Error: " + error);}});
+    }
+    return success;
+  };
+
+  return PreferencesProviderFields;
+
+});
\ No newline at end of file

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js?rev=1528117&r1=1528116&r2=1528117&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js Tue Oct  1 15:26:24 2013
@@ -31,7 +31,7 @@ define(["dojo/_base/xhr",
         "dijit/form/FilteringSelect",
         "dojo/_base/connect",
         "dojo/dom-style",
-        "qpid/management/addPreferencesProvider",
+        "qpid/management/PreferencesProviderFields",
         /* dojox/ validate resources */
         "dojox/validate/us", "dojox/validate/web",
         /* basic dijit classes */
@@ -45,7 +45,7 @@ define(["dojo/_base/xhr",
         "dojox/form/BusyButton", "dojox/form/CheckedMultiSelect",
         "dojox/layout/TableContainer",
         "dojo/domReady!"],
-    function (xhr, dom, construct, win, registry, parser, array, event, json, Memory, FilteringSelect, connect, domStyle, addPreferencesProvider) {
+    function (xhr, dom, construct, win, registry, parser, array, event, json, Memory, FilteringSelect, connect, domStyle, PreferencesProviderFields) {
 
         var addAuthenticationProvider = {};
 
@@ -66,6 +66,10 @@ define(["dojo/_base/xhr",
             {
                 if(formValues.hasOwnProperty(propName))
                 {
+                    if (propName.indexOf("preferencesProvider") == 0)
+                    {
+                      continue;
+                    }
                     if(formValues[ propName ] !== "") {
                         newProvider[ propName ] = formValues[propName];
                     }
@@ -101,6 +105,21 @@ define(["dojo/_base/xhr",
             return "ap_" + providerType + "Field" + attribute;
         }
 
+        var showPreferencesProviderFields = function showPreferencesProviderFields(provider)
+        {
+          var preferencesProviderDiv = dojo.byId("addAuthenticationProvider.preferencesProvider");
+          var preferencesProviderPanel = dijit.byId("addAuthenticationProvider.preferencesProviderPanel");
+          if (provider && provider.type == "Anonymous")
+          {
+            preferencesProviderPanel.domNode.style.display = 'none';
+          }
+          else
+          {
+            preferencesProviderPanel.domNode.style.display = 'block';
+            PreferencesProviderFields.show(preferencesProviderDiv, provider && provider.preferencesproviders ? provider.preferencesproviders[0] : null);
+          }
+        }
+
         var loadProviderAndDisplayForm = function loadProviderAndDisplayForm(providerName, dialog)
         {
             if (providerName)
@@ -129,11 +148,13 @@ define(["dojo/_base/xhr",
                                }
                            }
                        }
+                       showPreferencesProviderFields(provider);
                        registry.byId("addAuthenticationProvider").show();
                });
             }
             else
             {
+                showPreferencesProviderFields();
                 registry.byId("addAuthenticationProvider").show();
             }
         }
@@ -163,15 +184,14 @@ define(["dojo/_base/xhr",
 
                                     if(this.success === true)
                                     {
+                                      if (PreferencesProviderFields.save(newAuthenticationManager.name))
+                                      {
                                         registry.byId("addAuthenticationProvider").hide();
-                                        if (newAuthenticationManager.type != "Anonymous" && dojo.byId("formAddAuthenticationProvider.id").value == "")
-                                        {
-                                          addPreferencesProvider.show(newAuthenticationManager.name);
-                                        }
+                                      }
                                     }
                                     else
                                     {
-                                        alert("Error:" + this.failureReason);
+                                        alert("Authentication Provider Error:" + this.failureReason);
                                     }
                                     return false;
                                 }else{
@@ -251,9 +271,10 @@ define(["dojo/_base/xhr",
                                                                  name: "type",
                                                                  store: providersStore,
                                                                  searchAttr: "name"}, input);
-                       connect.connect(that.providerChooser, "onChange",
-                           function(event)
+                       that.providerChooser.on("change",
+                           function(value)
                            {
+                               dijit.byId("addAuthenticationProvider.preferencesProviderPanel").domNode.style.display = (value == "Anonymous" ? "none" : "block");
                                showFieldSets(that.providerChooser.value, that.providerFieldSets);
                            }
                        );

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js?rev=1528117&r1=1528116&r2=1528117&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js Tue Oct  1 15:26:24 2013
@@ -34,6 +34,7 @@ define(["dojo/_base/xhr",
         "dojo/dom-style",
         "dojo/string",
         "dojox/html/entities",
+        "qpid/management/PreferencesProviderFields",
         "dojox/validate/us",
         "dojox/validate/web",
         "dijit/Dialog",
@@ -47,47 +48,12 @@ define(["dojo/_base/xhr",
         "dojox/form/CheckedMultiSelect",
         "dojox/layout/TableContainer",
         "dojo/domReady!"],
-    function (xhr, dom, construct, query, win, registry, parser, array, event, json, Memory, FilteringSelect, connect, domStyle, string, entities) {
+    function (xhr, dom, construct, query, win, registry, parser, array, event, json, Memory, FilteringSelect, connect, domStyle, string, entities, PreferencesProviderFields) {
 
         var addPreferencesProvider = {};
 
         var node = construct.create("div", null, win.body(), "last");
 
-        var convertToPreferencesProvider = function convertToPreferencesProvider(formValues)
-        {
-            var newProvider = {};
-
-            newProvider.name = dijit.byId("preferencesProvider.name").value;
-            newProvider.type = dijit.byId("preferencesProvider.type").value;
-            var id = dojo.byId("preferencesProvider.id").value;
-            if (id)
-            {
-                newProvider.id = id;
-            }
-            for(var propName in formValues)
-            {
-                if(formValues.hasOwnProperty(propName))
-                {
-                    if(formValues[ propName ] !== "") {
-                        newProvider[ propName ] = formValues[propName];
-                    }
-
-                }
-            }
-            return newProvider;
-        }
-
-        var selectPreferencesProviderType = function(type) {
-            if(type && string.trim(type) != "")
-            {
-                require(["qpid/management/authenticationprovider/preferences/" + type.toLowerCase() + "/add"],
-                function(addType)
-                {
-                  addType.show(dom.byId("preferencesProvider.fieldsContainer"), addPreferencesProvider.data)
-                });
-            }
-        }
-
         xhr.get({url: "addPreferencesProvider.html",
                  sync: true,
                  load:  function(data) {
@@ -104,94 +70,24 @@ define(["dojo/_base/xhr",
 
                                 event.stop(e);
                                 if(theForm.validate()){
-                                    var newProvider = convertToPreferencesProvider(theForm.getValues());
-                                    var that = this;
-                                    var nameWidget = registry.byId("preferencesProvider.name")
-                                    xhr.put({url: "rest/preferencesprovider/" +encodeURIComponent(addPreferencesProvider.authenticationProviderName) + "/" + encodeURIComponent(nameWidget.value),
-                                             sync: true, handleAs: "json",
-                                             headers: { "Content-Type": "application/json"},
-                                             putData: json.toJson(newProvider),
-                                             load: function(x) {that.success = true; },
-                                             error: function(error) {that.success = false; that.failureReason = error;}});
-                                    if(this.success === true)
+                                    if(PreferencesProviderFields.save(addPreferencesProvider.authenticationProviderName))
                                     {
                                         registry.byId("addPreferencesProvider").hide();
                                     }
-                                    else
-                                    {
-                                        alert("Error:" + this.failureReason);
-                                    }
                                     return false;
                                 }else{
                                     alert('Form contains invalid data.  Please correct first');
                                     return false;
                                 }
                             });
-                            xhr.get({
-                                sync: true,
-                                url: "rest/helper?action=ListPreferencesProvidersTypes",
-                                handleAs: "json"
-                            }).then(
-                                function(data) {
-                                    var preferencesProvidersTypes =  data;
-                                    var storeData = [];
-                                    for (var i =0 ; i < preferencesProvidersTypes.length; i++)
-                                    {
-                                        storeData[i]= {id: preferencesProvidersTypes[i], name: preferencesProvidersTypes[i]};
-                                    }
-                                    var store = new Memory({ data: storeData });
-                                    var preferencesProviderTypesDiv = dom.byId("addPreferencesProvider.selectPreferencesProviderDiv");
-                                    var input = construct.create("input", {id: "preferencesProviderType", required: true}, preferencesProviderTypesDiv);
-                                    addPreferencesProvider.preferencesProviderTypeChooser = new FilteringSelect({ id: "preferencesProvider.type",
-                                                                              name: "type",
-                                                                              store: store,
-                                                                              searchAttr: "name",
-                                                                              required: true,
-                                                                              onChange: selectPreferencesProviderType }, input);
-                                    addPreferencesProvider.preferencesProviderTypeChooser.startup();
-                            });
                         }});
 
         addPreferencesProvider.show = function(authenticationProviderName, providerName) {
             this.authenticationProviderName = authenticationProviderName;
-            this.data = null;
-            var that = this;
-            var theForm = registry.byId("formAddPreferencesProvider");
-            theForm.reset();
-            dojo.byId("preferencesProvider.id").value="";
-            var nameWidget = registry.byId("preferencesProvider.name");
-            nameWidget.set("disabled", false);
-            registry.byId("preferencesProvider.type").set("disabled", false);
-            if (this.preferencesProviderTypeChooser)
-            {
-                this.preferencesProviderTypeChooser.set("disabled", false);
-                this.preferencesProviderTypeChooser.set("value", null);
-            }
+            PreferencesProviderFields.show(dom.byId("addPreferencesProvider.preferencesProvider"), providerName, authenticationProviderName)
             var dialog = registry.byId("addPreferencesProvider");
-            dialog.set("title", (providerName ? "Edit preference provider '" + entities.encode(String(providerName)) + "' " : "Add preferences provider ") + " for authentication provider '" + entities.encode(String(authenticationProviderName)) + "' ")
-            if (providerName)
-            {
-                xhr.get({
-                    url: "rest/preferencesprovider/"  +encodeURIComponent(authenticationProviderName) + "/" + encodeURIComponent(providerName),
-                    sync: false,
-                    handleAs: "json"
-                }).then(
-                   function(data) {
-                       var provider = data[0];
-                       var providerType = provider.type;
-                       that.data = provider;
-                       nameWidget.set("value",  entities.encode(String(provider.name)));
-                       nameWidget.set("disabled", true);
-                       that.preferencesProviderTypeChooser.set("value", providerType);
-                       that.preferencesProviderTypeChooser.set("disabled", true);
-                       dojo.byId("preferencesProvider.id").value=provider.id;
-                       dialog.show();
-               });
-            }
-            else
-            {
-              dialog.show();
-            }
+            dialog.set("title", (providerName ? "Edit preferences provider '" + entities.encode(String(providerName)) + "' " : "Add preferences provider ") + " for '" + entities.encode(String(authenticationProviderName)) + "' ")
+            dialog.show();
         }
 
         return addPreferencesProvider;

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js?rev=1528117&r1=1528116&r2=1528117&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js Tue Oct  1 15:26:24 2013
@@ -33,10 +33,10 @@ define(["dojo/_base/xhr",
         "dojo/domReady!"],
     function (xhr, dom, domConstruct, win, registry, parser, array, event, json, string, entities, template) {
         return {
-            show: function(node, data) {
-                dojo.forEach(dijit.findWidgets(node), function(w) {
-                    w.destroyRecursive();
-                });
+            show: function(node, data)
+            {
+                this.destroy();
+                this.node = node;
                 node.innerHTML = template;
                 parser.parse(node);
                 var pathWidget = registry.byId("preferencesProvider.path")
@@ -44,6 +44,23 @@ define(["dojo/_base/xhr",
                 {
                   pathWidget.set("value", entities.encode(String(data["path"])));
                 }
+            },
+            destroy: function()
+            {
+              if (this.node)
+              {
+                dojo.forEach(dijit.findWidgets(this.node), function(w) {w.destroyRecursive();});
+                this.node = null;
+              }
+            },
+            disable: function(val)
+            {
+                var pathWidget = registry.byId("preferencesProvider.path");
+                pathWidget.set("disabled", val);
+            },
+            getValues: function()
+            {
+              return {path: registry.byId("preferencesProvider.path").value};
             }
         };
     });

Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProviderFields.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProviderFields.html?rev=1528117&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProviderFields.html (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProviderFields.html Tue Oct  1 15:26:24 2013
@@ -0,0 +1,41 @@
+<!--
+ -
+ - 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 data-dojo-type="dijit/layout/ContentPane" class="preferencesProviderContainer">
+  <table class="tableContainer-table tableContainer-table-horiz" width="100%" cellspacing="1">
+    <tr>
+      <td class="tableContainer-labelCell" style="width: 200px;"><strong>Type*:</strong></td>
+      <td class="tableContainer-valueCell">
+        <select class="preferencesProviderType" data-dojo-type="dijit/form/FilteringSelect"
+            data-dojo-props="name:'preferencesProviderType',label:'Type:', searchAttr: 'name', placeHolder: 'Select Provider Type', required: true">
+            <option value="">None</option>
+        </select>
+      </td>
+    </tr>
+    <tr>
+      <td class="tableContainer-labelCell" style="width: 200px;"><strong>Name*:</strong></td>
+      <td class="tableContainer-valueCell"><input type="text" name="preferencesProviderName"
+          class="preferencesProviderName" data-dojo-type="dijit/form/ValidationTextBox"
+          data-dojo-props="placeHolder: 'Name', required: true, missingMessage: 'A name must be supplied', title: 'Enter name', pattern: '^[\x20-\x2e\x30-\x7F]{1,255}$'" /></td>
+    </tr>
+  </table>
+  <div class="preferencesProviderFieldsContainer"></div>
+  <input type="hidden" name="preferencesProviderId"/>
+</div>
\ No newline at end of file



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