You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2016/04/29 13:04:44 UTC

svn commit: r1741609 [16/31] - in /qpid/java/trunk: bdbstore/src/main/java/resources/js/qpid/management/virtualhost/bdb/ bdbstore/src/main/java/resources/js/qpid/management/virtualhost/bdb_ha/ bdbstore/src/main/java/resources/js/qpid/management/virtual...

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js Fri Apr 29 11:04:40 2016
@@ -30,395 +30,490 @@ define(["dojo/_base/connect",
         "qpid/common/util",
         "dojo/text!addBinding.html",
         "dijit/form/NumberSpinner", // required by the form
-        /* dojox/ validate resources */
-        "dojox/validate/us", "dojox/validate/web",
-        /* basic dijit classes */
+           /* dojox/ validate resources */
+        "dojox/validate/us",
+        "dojox/validate/web",
+           /* basic dijit classes */
         "dijit/Dialog",
-        "dijit/form/CheckBox", "dijit/form/Textarea",
-        "dijit/form/FilteringSelect", "dijit/form/TextBox",
-        "dijit/form/ValidationTextBox", "dijit/form/DateTextBox",
-        "dijit/form/TimeTextBox", "dijit/form/Button",
-        "dijit/form/RadioButton", "dijit/form/Form",
+        "dijit/form/CheckBox",
+        "dijit/form/Textarea",
+        "dijit/form/FilteringSelect",
+        "dijit/form/TextBox",
+        "dijit/form/ValidationTextBox",
         "dijit/form/DateTextBox",
-        /* basic dojox classes */
-        "dojox/form/BusyButton", "dojox/form/CheckedMultiSelect",
+        "dijit/form/TimeTextBox",
+        "dijit/form/Button",
+        "dijit/form/RadioButton",
+        "dijit/form/Form",
+        "dijit/form/DateTextBox",
+           /* basic dojox classes */
+        "dojox/form/BusyButton",
+        "dojox/form/CheckedMultiSelect",
         "dojox/grid/EnhancedGrid",
         "dojo/data/ObjectStore",
         "dojo/domReady!"],
-    function (connect, dom, construct, win, registry, parser, array, event, json, lang, declare, Memory, FilteringSelect, util, template) {
+       function (connect, dom, construct, win, registry, parser, array, event, json, lang, declare, Memory, FilteringSelect, util, template)
+       {
 
-        var noLocalValues = new Memory({
-            data: [
-                {name:"true", id:true},
-                {name:"false", id:false}
-            ]
-        });
-
-        var xMatchValues  = new Memory({
-             data: [
-                 {name:"all", id:"all"},
-                 {name:"any", id:"any"}
-             ]
-        });
-
-        var defaultBindingArguments = [
-                                          {id: 0, name:"x-filter-jms-selector", value: null},
-                                          {id: 1, name:"x-qpid-no-local", value: null}
-                                      ];
-
-        var GridWidgetProxy = declare("qpid.dojox.grid.cells.GridWidgetProxy", dojox.grid.cells._Widget, {
-            createWidget: function(inNode, inDatum, inRowIndex)
-            {
-                var WidgetClass = this.widgetClass;
-                var widgetProperties = this.getWidgetProps(inDatum);
-                var getWidgetProperties = widgetProperties.getWidgetProperties;
-                if (typeof getWidgetProperties == "function")
-                {
-                    var item = this.grid.getItem(inRowIndex);
-                    if (item)
-                    {
-                        var additionalWidgetProperties = getWidgetProperties(inDatum, inRowIndex, item);
-                        if (additionalWidgetProperties)
-                        {
-                            WidgetClass = additionalWidgetProperties.widgetClass;
-                            for(var prop in additionalWidgetProperties)
-                            {
-                                if(additionalWidgetProperties.hasOwnProperty(prop) && !widgetProperties[prop])
-                                {
-                                    widgetProperties[prop] = additionalWidgetProperties[ prop ];
-                                }
-                            }
-                        }
-                    }
-                }
-                var widget = new WidgetClass(widgetProperties, inNode);
-                return widget;
-            },
-            getValue: function(inRowIndex)
-            {
-                if (this.widget)
-                {
-                    return this.widget.get('value');
-                }
-                return null;
-            },
-            _finish: function(inRowIndex)
-            {
-                if (this.widget)
-                {
-                    this.inherited(arguments);
-                    this.widget.destroyRecursive();
-                    this.widget = null;
-                }
-            }
-        });
-
-        var addBinding = {};
-
-        var node = construct.create("div", null, win.body(), "last");
-
-        var convertToBinding = function convertToBinding(formValues)
-            {
-                var newBinding = {};
-
-                newBinding.name = formValues.name;
-                for(var propName in formValues)
-                {
-                    if(formValues.hasOwnProperty(propName))
-                    {
-                        if(propName === "durable")
-                        {
-                            if (formValues.durable[0] && formValues.durable[0] == "durable") {
-                                newBinding.durable = true;
-                            }
-                        } else {
-                            if(formValues[ propName ] !== "") {
-                                newBinding[ propName ] = formValues[propName];
-                            }
-                        }
-
-                    }
-                }
-                if(addBinding.queue) {
-                    newBinding.queue = addBinding.queue;
-                }
-                if(addBinding.exchange) {
-                    newBinding.exchange = addBinding.exchange;
-                }
-
-                addBinding.bindingArgumentsGrid.store.fetch({
-                      onComplete:function(items,request)
-                      {
-                          if(items.length)
-                          {
-                              array.forEach(items, function(item)
-                              {
-                                 if (item && item.name && item.value)
-                                 {
-                                    var bindingArguments = newBinding.arguments;
-                                    if (!bindingArguments)
+           var noLocalValues = new Memory({
+               data: [{
+                   name: "true",
+                   id: true
+               },
+                   {
+                       name: "false",
+                       id: false
+                   }]
+           });
+
+           var xMatchValues = new Memory({
+               data: [{
+                   name: "all",
+                   id: "all"
+               },
+                   {
+                       name: "any",
+                       id: "any"
+                   }]
+           });
+
+           var defaultBindingArguments = [{
+               id: 0,
+               name: "x-filter-jms-selector",
+               value: null
+           },
+               {
+                   id: 1,
+                   name: "x-qpid-no-local",
+                   value: null
+               }];
+
+           var GridWidgetProxy = declare("qpid.dojox.grid.cells.GridWidgetProxy", dojox.grid.cells._Widget, {
+               createWidget: function (inNode, inDatum, inRowIndex)
+               {
+                   var WidgetClass = this.widgetClass;
+                   var widgetProperties = this.getWidgetProps(inDatum);
+                   var getWidgetProperties = widgetProperties.getWidgetProperties;
+                   if (typeof getWidgetProperties == "function")
+                   {
+                       var item = this.grid.getItem(inRowIndex);
+                       if (item)
+                       {
+                           var additionalWidgetProperties = getWidgetProperties(inDatum, inRowIndex, item);
+                           if (additionalWidgetProperties)
+                           {
+                               WidgetClass = additionalWidgetProperties.widgetClass;
+                               for (var prop in additionalWidgetProperties)
+                               {
+                                   if (additionalWidgetProperties.hasOwnProperty(prop) && !widgetProperties[prop])
+                                   {
+                                       widgetProperties[prop] = additionalWidgetProperties[prop];
+                                   }
+                               }
+                           }
+                       }
+                   }
+                   var widget = new WidgetClass(widgetProperties, inNode);
+                   return widget;
+               },
+               getValue: function (inRowIndex)
+               {
+                   if (this.widget)
+                   {
+                       return this.widget.get('value');
+                   }
+                   return null;
+               },
+               _finish: function (inRowIndex)
+               {
+                   if (this.widget)
+                   {
+                       this.inherited(arguments);
+                       this.widget.destroyRecursive();
+                       this.widget = null;
+                   }
+               }
+           });
+
+           var addBinding = {};
+
+           var node = construct.create("div", null, win.body(), "last");
+
+           var convertToBinding = function convertToBinding(formValues)
+           {
+               var newBinding = {};
+
+               newBinding.name = formValues.name;
+               for (var propName in formValues)
+               {
+                   if (formValues.hasOwnProperty(propName))
+                   {
+                       if (propName === "durable")
+                       {
+                           if (formValues.durable[0] && formValues.durable[0] == "durable")
+                           {
+                               newBinding.durable = true;
+                           }
+                       }
+                       else
+                       {
+                           if (formValues[propName] !== "")
+                           {
+                               newBinding[propName] = formValues[propName];
+                           }
+                       }
+
+                   }
+               }
+               if (addBinding.queue)
+               {
+                   newBinding.queue = addBinding.queue;
+               }
+               if (addBinding.exchange)
+               {
+                   newBinding.exchange = addBinding.exchange;
+               }
+
+               addBinding.bindingArgumentsGrid.store.fetch({
+                                                               onComplete: function (items, request)
+                                                               {
+                                                                   if (items.length)
+                                                                   {
+                                                                       array.forEach(items, function (item)
+                                                                       {
+                                                                           if (item && item.name && item.value)
+                                                                           {
+                                                                               var bindingArguments = newBinding.arguments;
+                                                                               if (!bindingArguments)
+                                                                               {
+                                                                                   bindingArguments = {};
+                                                                                   newBinding.arguments =
+                                                                                       bindingArguments;
+                                                                               }
+                                                                               bindingArguments[item.name] = item.value;
+                                                                           }
+                                                                       });
+                                                                   }
+                                                               }
+                                                           });
+               return newBinding;
+           };
+
+           var theForm;
+           node.innerHTML = template;
+           addBinding.dialogNode = dom.byId("addBinding");
+           parser.instantiate([addBinding.dialogNode]);
+
+           theForm = registry.byId("formAddBinding");
+           array.forEach(theForm.getDescendants(), function (widget)
+           {
+               if (widget.name === "type")
+               {
+                   widget.on("change", function (isChecked)
+                   {
+
+                       var obj = registry.byId(widget.id + ":fields");
+                       if (obj)
+                       {
+                           if (isChecked)
+                           {
+                               obj.domNode.style.display = "block";
+                               obj.resize();
+                           }
+                           else
+                           {
+                               obj.domNode.style.display = "none";
+                               obj.resize();
+                           }
+                       }
+                   })
+               }
+
+           });
+
+           var argumentsGridNode = dom.byId("formAddbinding.bindingArguments");
+           var objectStore = new dojo.data.ObjectStore({
+               objectStore: new Memory({
+                   data: lang.clone(defaultBindingArguments),
+                   idProperty: "id"
+               })
+           });
+
+           var layout = [[{
+               name: "Argument Name",
+               field: "name",
+               width: "50%",
+               editable: true
+           }, {
+               name: 'Argument Value',
+               field: 'value',
+               width: '50%',
+               editable: true,
+               type: GridWidgetProxy,
+               widgetProps: {
+                   getWidgetProperties: function (inDatum, inRowIndex, item)
+                   {
+                       if (item.name == "x-qpid-no-local")
+                       {
+                           return {
+                               labelAttr: "name",
+                               searchAttr: "id",
+                               selectOnClick: false,
+                               query: {id: "*"},
+                               required: false,
+                               store: noLocalValues,
+                               widgetClass: dijit.form.FilteringSelect
+                           };
+                       }
+                       else if (item.name && item.name.toLowerCase() == "x-match")
+                       {
+                           return {
+                               labelAttr: "name",
+                               searchAttr: "id",
+                               selectOnClick: false,
+                               query: {id: "*"},
+                               required: false,
+                               store: xMatchValues,
+                               widgetClass: dijit.form.FilteringSelect
+                           };
+                       }
+                       return {widgetClass: dijit.form.TextBox};
+                   }
+               }
+           }]];
+
+           var grid = new dojox.grid.EnhancedGrid({
+               selectionMode: "multiple",
+               store: objectStore,
+               singleClickEdit: true,
+               structure: layout,
+               autoHeight: true,
+               plugins: {indirectSelection: true}
+           }, argumentsGridNode);
+           grid.startup();
+
+           addBinding.bindingArgumentsGrid = grid;
+           addBinding.idGenerator = 1;
+           var addArgumentButton = registry.byId("formAddbinding.addArgumentButton");
+           var deleteArgumentButton = registry.byId("formAddbinding.deleteArgumentButton");
+
+           var toggleGridButtons = function (index)
+           {
+               var data = grid.selection.getSelected();
+               deleteArgumentButton.set("disabled", !data || data.length == 0);
+           };
+           connect.connect(grid.selection, 'onSelected', toggleGridButtons);
+           connect.connect(grid.selection, 'onDeselected', toggleGridButtons);
+           deleteArgumentButton.set("disabled", true);
+
+           addArgumentButton.on("click", function (event)
+           {
+               addBinding.idGenerator = addBinding.idGenerator + 1;
+               var newItem = {
+                   id: addBinding.idGenerator,
+                   name: "",
+                   value: ""
+               };
+               grid.store.newItem(newItem);
+               grid.store.save();
+               grid.store.fetch({
+                                    onComplete: function (items, request)
                                     {
-                                        bindingArguments = {};
-                                        newBinding.arguments = bindingArguments;
-                                    }
-                                    bindingArguments[item.name]=item.value;
-                                 }
-                              });
-                          }
-                      }
-                });
-                return newBinding;
-            };
-
-
-                            var theForm;
-                            node.innerHTML = template;
-                            addBinding.dialogNode = dom.byId("addBinding");
-                            parser.instantiate([addBinding.dialogNode]);
-
-                            theForm = registry.byId("formAddBinding");
-                            array.forEach(theForm.getDescendants(), function(widget)
-                                {
-                                    if(widget.name === "type") {
-                                        widget.on("change", function(isChecked) {
-
-                                            var obj = registry.byId(widget.id + ":fields");
-                                            if(obj) {
-                                                if(isChecked) {
-                                                    obj.domNode.style.display = "block";
-                                                    obj.resize();
-                                                } else {
-                                                    obj.domNode.style.display = "none";
-                                                    obj.resize();
-                                                }
-                                            }
-                                        })
+                                        var rowIndex = items.length - 1;
+                                        window.setTimeout(function ()
+                                                          {
+                                                              grid.focus.setFocusIndex(rowIndex, 1);
+                                                          }, 10);
                                     }
-
                                 });
+           });
 
-                            var argumentsGridNode = dom.byId("formAddbinding.bindingArguments");
-                            var objectStore = new dojo.data.ObjectStore({objectStore: new Memory({data:lang.clone(defaultBindingArguments), idProperty: "id"})});
-
-                            var layout = [[
-                                  { name: "Argument Name", field: "name", width: "50%", editable: true },
-                                  { name: 'Argument Value', field: 'value', width: '50%', editable: true, type: GridWidgetProxy,
-                                    widgetProps: {
-                                       getWidgetProperties: function(inDatum, inRowIndex, item)
-                                       {
-                                            if (item.name == "x-qpid-no-local")
-                                            {
-                                                return {
-                                                   labelAttr: "name",
-                                                   searchAttr: "id",
-                                                   selectOnClick: false,
-                                                   query: { id: "*"},
-                                                   required: false,
-                                                   store: noLocalValues,
-                                                   widgetClass: dijit.form.FilteringSelect
-                                                };
-                                            }
-                                            else if (item.name && item.name.toLowerCase() == "x-match")
-                                            {
-                                                 return {
-                                                    labelAttr: "name",
-                                                    searchAttr: "id",
-                                                    selectOnClick: false,
-                                                    query: { id: "*"},
-                                                    required: false,
-                                                    store: xMatchValues,
-                                                    widgetClass: dijit.form.FilteringSelect
-                                                 };
-                                            }
-                                            return {widgetClass: dijit.form.TextBox };
-                                       }
-                                    }
-                                  }
-                                ]];
-
-                            var grid = new dojox.grid.EnhancedGrid({
-                                    selectionMode: "multiple",
-                                    store: objectStore,
-                                    singleClickEdit: true,
-                                    structure: layout,
-                                    autoHeight: true,
-                                    plugins: {indirectSelection: true}
-                                    }, argumentsGridNode);
-                            grid.startup();
-
-                            addBinding.bindingArgumentsGrid = grid;
-                            addBinding.idGenerator = 1;
-                            var addArgumentButton = registry.byId("formAddbinding.addArgumentButton");
-                            var deleteArgumentButton = registry.byId("formAddbinding.deleteArgumentButton");
-
-                            var toggleGridButtons =  function(index)
-                            {
-                                var data = grid.selection.getSelected();
-                                deleteArgumentButton.set("disabled", !data || data.length==0);
-                            };
-                            connect.connect(grid.selection, 'onSelected', toggleGridButtons);
-                            connect.connect(grid.selection, 'onDeselected', toggleGridButtons);
-                            deleteArgumentButton.set("disabled", true);
-
-                            addArgumentButton.on("click",
-                                function(event)
-                                {
-                                    addBinding.idGenerator = addBinding.idGenerator + 1;
-                                    var newItem = {id:addBinding.idGenerator, name: "", value: ""};
-                                    grid.store.newItem(newItem);
-                                    grid.store.save();
-                                    grid.store.fetch(
+           deleteArgumentButton.on("click", function (event)
+           {
+               var data = grid.selection.getSelected();
+               if (data.length)
+               {
+                   array.forEach(data, function (selectedItem)
+                   {
+                       if (selectedItem !== null)
+                       {
+                           grid.store.deleteItem(selectedItem);
+                       }
+                   });
+                   grid.store.save();
+               }
+           });
+
+           theForm.on("submit", function (e)
+           {
+
+               event.stop(e);
+               if (theForm.validate())
+               {
+
+                   var newBinding = convertToBinding(util.getFormWidgetValues(registry.byId("formAddBinding")));
+                   var that = this;
+                   var model = null;
+                   if (addBinding.modelObj.type == "exchange")
+                   {
+                       model = {
+                           name: newBinding.queue,
+                           type: "queue",
+                           parent: addBinding.modelObj
+                       };
+                   }
+                   else
+                   {
+                       model = {
+                           name: newBinding.queue,
+                           type: "queue",
+                           parent: {
+                               name: newBinding.exchange,
+                               type: "exchange",
+                               parent: addBinding.modelObj.parent
+                           }
+                       };
+                   }
+                   addBinding.management.create("binding", model, newBinding).then(function (x)
+                                                                                   {
+                                                                                       registry.byId("addBinding")
+                                                                                               .hide();
+                                                                                   });
+                   return false;
+               }
+               else
+               {
+                   alert('Form contains invalid data.  Please correct first');
+                   return false;
+               }
+
+           });
+
+           addBinding.show = function (management, obj)
+           {
+               var that = this;
+               addBinding.management = management;
+               addBinding.modelObj = obj;
+               registry.byId("formAddBinding").reset();
+
+               var grid = addBinding.bindingArgumentsGrid;
+               grid.store.fetch({
+                                    onComplete: function (items, request)
                                     {
-                                          onComplete:function(items,request)
-                                          {
-                                              var rowIndex = items.length - 1;
-                                              window.setTimeout(function()
-                                              {
-                                                  grid.focus.setFocusIndex(rowIndex, 1 );
-                                              },10);
-                                          }
-                                    });
-                                }
-                            );
-
-                            deleteArgumentButton.on("click",
-                                function(event)
-                                {
-                                    var data = grid.selection.getSelected();
-                                    if(data.length)
-                                    {
-                                        array.forEach(data, function(selectedItem) {
-                                            if (selectedItem !== null)
+                                        if (items.length)
+                                        {
+                                            array.forEach(items, function (item)
                                             {
-                                                grid.store.deleteItem(selectedItem);
-                                            }
-                                        });
-                                        grid.store.save();
-                                    }
-                                }
-                            );
-
-                            theForm.on("submit", function(e) {
-
-                                event.stop(e);
-                                if(theForm.validate()){
-
-                                    var newBinding = convertToBinding(util.getFormWidgetValues(registry.byId("formAddBinding")));
-                                    var that = this;
-                                    var model = null;
-                                    if (addBinding.modelObj.type == "exchange")
-                                    {
-                                        model = {name: newBinding.queue, type: "queue", parent: addBinding.modelObj};
-                                    }
-                                    else
-                                    {
-                                       model = {name: newBinding.queue,
-                                                type: "queue",
-                                                parent: { name: newBinding.exchange,
-                                                          type: "exchange",
-                                                          parent: addBinding.modelObj.parent
-                                                        }
-                                                };
+                                                if (item !== null)
+                                                {
+                                                    grid.store.deleteItem(item);
+                                                }
+                                            });
+                                        }
                                     }
-                                    addBinding.management.create("binding", model, newBinding).then(function(x){registry.byId("addBinding").hide();});
-                                    return false;
-                                }else{
-                                    alert('Form contains invalid data.  Please correct first');
-                                    return false;
-                                }
-
-                            });
-
-        addBinding.show = function(management, obj) {
-            var that = this;
-            addBinding.management = management;
-            addBinding.modelObj = obj;
-            registry.byId("formAddBinding").reset();
-
-            var grid = addBinding.bindingArgumentsGrid;
-            grid.store.fetch({
-                  onComplete:function(items,request)
-                  {
-                      if(items.length)
-                      {
-                          array.forEach(items, function(item)
-                          {
-                             if (item !== null)
-                             {
-                                 grid.store.deleteItem(item);
-                             }
-                          });
-                      }
-                  }
-            });
-            array.forEach(lang.clone(defaultBindingArguments), function(item) {grid.store.newItem(item); });
-            grid.store.save();
-
-            management.load({type: "queue", parent: obj.parent }, {depth: 0}).then(
-                function(data) {
-                    var queues =  [];
-                    for(var i=0; i < data.length; i++) {
-                      queues[i] = {id: data[i].name, name: data[i].name};
-                    }
-                    var queueStore = new Memory({ data: queues });
-
-
-                    if(that.queueChooser) {
-                        that.queueChooser.destroy( false );
-                    }
-                    var queueDiv = dom.byId("addBinding.selectQueueDiv");
-                    var input = construct.create("input", {id: "addBindingSelectQueue"}, queueDiv);
-
-                    that.queueChooser = new FilteringSelect({ id: "addBindingSelectQueue",
-                                                              name: "queue",
-                                                              store: queueStore,
-                                                              searchAttr: "name",
-                                                              promptMessage: "Name of the queue",
-                                                              title: "Select the name of the queue"}, input);
-
-                    if(obj.type == "queue")
-                    {
-                        that.queueChooser.set("value", obj.name);
-                        that.queueChooser.set("disabled", true);
-                    }
-                    management.load({type: "exchange", parent: obj.parent }, {depth: 0}).then(
-                        function(data) {
-
-                            var exchanges =  [];
-                            for(var i=0; i < data.length; i++) {
-                              exchanges[i] = {id: data[i].name, name: data[i].name};
-                            }
-                            var exchangeStore = new Memory({ data: exchanges });
-
-
-                            if(that.exchangeChooser) {
-                                that.exchangeChooser.destroy( false );
-                            }
-                            var exchangeDiv = dom.byId("addBinding.selectExchangeDiv");
-                            var input = construct.create("input", {id: "addBindingSelectExchange"}, exchangeDiv);
-
-                            that.exchangeChooser = new FilteringSelect({ id: "addBindingSelectExchange",
-                                                                      name: "exchange",
-                                                                      store: exchangeStore,
-                                                                      searchAttr: "name",
-                                                                      promptMessage: "Name of the exchange",
-                                                                      title: "Select the name of the exchange"}, input);
-
-                            if(obj.type == "exchange")
-                            {
-                                that.exchangeChooser.set("value", obj.name);
-                                that.exchangeChooser.set("disabled", true);
-                            }
-
-
-                            registry.byId("addBinding").show();
-                        }, util.xhrErrorHandler);
-
-
-                }, util.xhrErrorHandler);
+                                });
+               array.forEach(lang.clone(defaultBindingArguments), function (item)
+               {
+                   grid.store.newItem(item);
+               });
+               grid.store.save();
+
+               management.load({
+                                   type: "queue",
+                                   parent: obj.parent
+                               }, {depth: 0}).then(function (data)
+                                                   {
+                                                       var queues = [];
+                                                       for (var i = 0; i < data.length; i++)
+                                                       {
+                                                           queues[i] = {
+                                                               id: data[i].name,
+                                                               name: data[i].name
+                                                           };
+                                                       }
+                                                       var queueStore = new Memory({data: queues});
+
+                                                       if (that.queueChooser)
+                                                       {
+                                                           that.queueChooser.destroy(false);
+                                                       }
+                                                       var queueDiv = dom.byId("addBinding.selectQueueDiv");
+                                                       var input = construct.create("input",
+                                                                                    {id: "addBindingSelectQueue"},
+                                                                                    queueDiv);
+
+                                                       that.queueChooser = new FilteringSelect({
+                                                           id: "addBindingSelectQueue",
+                                                           name: "queue",
+                                                           store: queueStore,
+                                                           searchAttr: "name",
+                                                           promptMessage: "Name of the queue",
+                                                           title: "Select the name of the queue"
+                                                       }, input);
+
+                                                       if (obj.type == "queue")
+                                                       {
+                                                           that.queueChooser.set("value", obj.name);
+                                                           that.queueChooser.set("disabled", true);
+                                                       }
+                                                       management.load({
+                                                                           type: "exchange",
+                                                                           parent: obj.parent
+                                                                       }, {depth: 0}).then(function (data)
+                                                                                           {
+
+                                                                                               var exchanges = [];
+                                                                                               for (var i = 0;
+                                                                                                    i < data.length;
+                                                                                                    i++)
+                                                                                               {
+                                                                                                   exchanges[i] = {
+                                                                                                       id: data[i].name,
+                                                                                                       name: data[i].name
+                                                                                                   };
+                                                                                               }
+                                                                                               var exchangeStore = new Memory({data: exchanges});
+
+                                                                                               if (that.exchangeChooser)
+                                                                                               {
+                                                                                                   that.exchangeChooser.destroy(
+                                                                                                       false);
+                                                                                               }
+                                                                                               var exchangeDiv = dom.byId(
+                                                                                                   "addBinding.selectExchangeDiv");
+                                                                                               var input = construct.create(
+                                                                                                   "input",
+                                                                                                   {id: "addBindingSelectExchange"},
+                                                                                                   exchangeDiv);
+
+                                                                                               that.exchangeChooser =
+                                                                                                   new FilteringSelect({
+                                                                                                       id: "addBindingSelectExchange",
+                                                                                                       name: "exchange",
+                                                                                                       store: exchangeStore,
+                                                                                                       searchAttr: "name",
+                                                                                                       promptMessage: "Name of the exchange",
+                                                                                                       title: "Select the name of the exchange"
+                                                                                                   }, input);
+
+                                                                                               if (obj.type
+                                                                                                   == "exchange")
+                                                                                               {
+                                                                                                   that.exchangeChooser.set(
+                                                                                                       "value",
+                                                                                                       obj.name);
+                                                                                                   that.exchangeChooser.set(
+                                                                                                       "disabled",
+                                                                                                       true);
+                                                                                               }
+
+                                                                                               registry.byId(
+                                                                                                   "addBinding").show();
+                                                                                           }, util.xhrErrorHandler);
 
+                                                   }, util.xhrErrorHandler);
 
-        };
+           };
 
-        return addBinding;
-    });
+           return addBinding;
+       });

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js Fri Apr 29 11:04:40 2016
@@ -29,76 +29,96 @@ define(["dojo/dom",
         "qpid/common/util",
         "dojo/text!addExchange.html",
         "dijit/form/NumberSpinner", // required by the form
-        /* dojox/ validate resources */
-        "dojox/validate/us", "dojox/validate/web",
-        /* basic dijit classes */
+           /* dojox/ validate resources */
+        "dojox/validate/us",
+        "dojox/validate/web",
+           /* basic dijit classes */
         "dijit/Dialog",
-        "dijit/form/CheckBox", "dijit/form/Textarea",
-        "dijit/form/FilteringSelect", "dijit/form/TextBox",
-        "dijit/form/ValidationTextBox", "dijit/form/DateTextBox",
-        "dijit/form/TimeTextBox", "dijit/form/Button",
-        "dijit/form/RadioButton", "dijit/form/Form",
+        "dijit/form/CheckBox",
+        "dijit/form/Textarea",
+        "dijit/form/FilteringSelect",
+        "dijit/form/TextBox",
+        "dijit/form/ValidationTextBox",
         "dijit/form/DateTextBox",
-        /* basic dojox classes */
-        "dojox/form/BusyButton", "dojox/form/CheckedMultiSelect",
-        "dojo/domReady!"],
-    function (dom, construct, win, registry, parser, array, event, json, util, template) {
-
-        var addExchange = {};
-
-        var node = construct.create("div", null, win.body(), "last");
-
-        var theForm;
-        node.innerHTML = template;
-        addExchange.dialogNode = dom.byId("addExchange");
-        parser.instantiate([addExchange.dialogNode]);
-
-        theForm = registry.byId("formAddExchange");
-        array.forEach(theForm.getDescendants(), function(widget)
-            {
-                if(widget.name === "type") {
-                    widget.on("change", function(isChecked) {
-
-                        var obj = registry.byId(widget.id + ":fields");
-                        if(obj) {
-                            if(isChecked) {
-                                obj.domNode.style.display = "block";
-                                obj.resize();
-                            } else {
-                                obj.domNode.style.display = "none";
-                                obj.resize();
-                            }
-                        }
-                    })
-                }
-
-            });
-
-        theForm.on("submit", function(e) {
-
-            event.stop(e);
-            if(theForm.validate())
-            {
-                var newExchange = util.getFormWidgetValues(theForm, null);
-                var that = this;
-                addExchange.management.create("exchange", addExchange.modelObj,
-                        newExchange).then(function(x){ registry.byId("addExchange").hide(); });
-                return false;
-
-
-            }else{
-                alert('Form contains invalid data.  Please correct first');
-                return false;
-            }
-
-        });
-
-        addExchange.show = function(management, modelObj) {
-                            addExchange.management = management
-                            addExchange.modelObj = modelObj;
-                            registry.byId("formAddExchange").reset();
-                            registry.byId("addExchange").show();
-                        };
+        "dijit/form/TimeTextBox",
+        "dijit/form/Button",
+        "dijit/form/RadioButton",
+        "dijit/form/Form",
+        "dijit/form/DateTextBox",
+           /* basic dojox classes */
+        "dojox/form/BusyButton",
+        "dojox/form/CheckedMultiSelect",
+        "dojo/domReady!"], function (dom, construct, win, registry, parser, array, event, json, util, template)
+       {
+
+           var addExchange = {};
+
+           var node = construct.create("div", null, win.body(), "last");
+
+           var theForm;
+           node.innerHTML = template;
+           addExchange.dialogNode = dom.byId("addExchange");
+           parser.instantiate([addExchange.dialogNode]);
+
+           theForm = registry.byId("formAddExchange");
+           array.forEach(theForm.getDescendants(), function (widget)
+           {
+               if (widget.name === "type")
+               {
+                   widget.on("change", function (isChecked)
+                   {
+
+                       var obj = registry.byId(widget.id + ":fields");
+                       if (obj)
+                       {
+                           if (isChecked)
+                           {
+                               obj.domNode.style.display = "block";
+                               obj.resize();
+                           }
+                           else
+                           {
+                               obj.domNode.style.display = "none";
+                               obj.resize();
+                           }
+                       }
+                   })
+               }
+
+           });
+
+           theForm.on("submit", function (e)
+           {
+
+               event.stop(e);
+               if (theForm.validate())
+               {
+                   var newExchange = util.getFormWidgetValues(theForm, null);
+                   var that = this;
+                   addExchange.management.create("exchange", addExchange.modelObj, newExchange).then(function (x)
+                                                                                                     {
+                                                                                                         registry.byId(
+                                                                                                             "addExchange")
+                                                                                                                 .hide();
+                                                                                                     });
+                   return false;
+
+               }
+               else
+               {
+                   alert('Form contains invalid data.  Please correct first');
+                   return false;
+               }
+
+           });
+
+           addExchange.show = function (management, modelObj)
+           {
+               addExchange.management = management
+               addExchange.modelObj = modelObj;
+               registry.byId("formAddExchange").reset();
+               registry.byId("addExchange").show();
+           };
 
-        return addExchange;
-    });
\ No newline at end of file
+           return addExchange;
+       });
\ No newline at end of file

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js Fri Apr 29 11:04:40 2016
@@ -18,8 +18,7 @@
  * under the License.
  *
  */
-define([
-        "dojo/dom",
+define(["dojo/dom",
         "dojo/dom-construct",
         "dijit/registry",
         "dojo/parser",
@@ -42,169 +41,202 @@ define([
         "dijit/form/Form",
         "dijit/layout/ContentPane",
         "dojox/layout/TableContainer",
-        "dojo/domReady!"],
-    function (dom, construct, registry, parser, array, event, lang, json, util, template)
-    {
-
-        var addGroupProvider =
-        {
-            init: function()
-            {
-                var that=this;
-                this.containerNode = construct.create("div", {innerHTML: template});
-                parser.parse(this.containerNode).then(function(instances) { that._postParse(); });
-            },
-            _postParse: function()
-            {
-                var that=this;
-                this.groupProviderName = registry.byId("addGroupProvider.name");
-                this.groupProviderName.set("regExpGen", util.nameOrContextVarRegexp);
-
-                this.dialog = registry.byId("addGroupProvider");
-                this.addButton = registry.byId("addGroupProvider.addButton");
-                this.cancelButton = registry.byId("addGroupProvider.cancelButton");
-                this.cancelButton.on("click", function(e){that._cancel(e);});
-                this.addButton.on("click", function(e){that._add(e);});
-
-                this.groupProviderTypeFieldsContainer = dom.byId("addGroupProvider.typeFields");
-                this.groupProviderForm = registry.byId("addGroupProvider.form");
-
-                this.groupProviderType = registry.byId("addGroupProvider.type");
-                this.groupProviderType.on("change", function(type){that._groupProviderTypeChanged(type);});
-                this.context = registry.byId("addGroupProvider.context");
-            },
-            show: function(management, modelObj, effectiveData)
-            {
-                this.management = management;
-                this.modelObj = modelObj;
-                this.groupProviderForm.reset();
-
-                var supportedTypes = management.metadata.getTypesForCategory("GroupProvider");
-                supportedTypes.sort();
-                var supportedTypesStore = util.makeTypeStore(supportedTypes);
-                this.groupProviderType.set("store", supportedTypesStore);
-
-                if (effectiveData)
-                {
-                    this._destroyTypeFields(this.containerNode);
-                    var that = this;
-                    management.load(modelObj,
-                                    {actuals: true, depth:0}).then(function(data)
-                                                                   {
-                                                                     var actualData = data[0];
-                                                                     that.initialData = lang.clone(actualData);
-                                                                     that._initFields(actualData);
-
-                                                                     that.groupProviderName.set("disabled", true);
-                                                                     that.groupProviderType.set("disabled", true);
-                                                                     that.dialog.set("title", "Edit Group Provider - " + effectiveData.name);
-
-                                                                     util.setContextData(that.context,
-                                                                                         management,
-                                                                                         modelObj,
-                                                                                         actualData,
-                                                                                         effectiveData,
-                                                                                         function(){that.dialog.show();});
-                                                                   });
-                }
-                else
-                {
-                    this.initialData = null;
-                    this.groupProviderName.set("disabled", false );
-                    this.groupProviderType.set("disabled", false );
-                    this.dialog.set("title", "Add Group Provider" );
-                    util.setToBrokerEffectiveContext(this.context,
-                                                     management,
-                                                     lang.hitch(this.dialog, this.dialog.show));
-                }
-
-            },
-            _initFields:function(data)
-            {
-                var type = data["type"];
-                var attributes = this.management.metadata.getMetaData("GroupProvider", type).attributes;
-                for(var name in attributes)
-                {
-                    var widget = registry.byId("addGroupProvider."+name);
-                    if (widget)
-                    {
-                        widget.set("value", data[name]);
-                    }
-                }
-            },
-            _cancel: function(e)
-            {
-                event.stop(e);
-                this.dialog.hide();
-            },
-            _add: function(e)
-            {
-                event.stop(e);
-                this._submit();
-            },
-            _submit: function()
-            {
-                if (this.groupProviderForm.validate())
-                {
-                    var groupProviderData = util.getFormWidgetValues(this.groupProviderForm, this.initialData);
-                    var context = this.context.get("value");
-                    if (context && (!this.initialData || !util.equals(context, this.initialData.context)))
-                    {
-                      groupProviderData["context"] = context;
-                    }
-                    var that = this;
-
-                    if (this.initialData)
-                    {
-                        // update request
-                        this.management.update(this.modelObj, groupProviderData).then(function(x){that.dialog.hide();});
-                    }
-                    else
-                    {
-                        this.management.create("groupprovider", this.modelObj, groupProviderData).then( function(x){that.dialog.hide();});
-                    }
-                }
-                else
-                {
-                    alert('Form contains invalid data. Please correct first');
-                }
-            },
-            _groupProviderTypeChanged: function(type)
-            {
-                 this._destroyTypeFields(this.groupProviderTypeFieldsContainer);
-                 if (type)
-                 {
-                     var that = this;
-                     require([ "qpid/management/groupprovider/" + type.toLowerCase() + "/add"], function(typeUI)
-                     {
-                         try
-                         {
-                             typeUI.show({containerNode: that.groupProviderTypeFieldsContainer, parent: that, data: that.initialData});
-                             util.applyMetadataToWidgets(that.groupProviderTypeFieldsContainer, "GroupProvider", type, that.management.metadata);
-                         }
-                         catch(e)
-                         {
-                             console.warn(e);
-                         }
-                     });
-                 }
-            },
-            _destroyTypeFields: function(typeFieldsContainer)
-            {
-                var widgets = registry.findWidgets(typeFieldsContainer);
-                array.forEach(widgets, function(item) { item.destroyRecursive();});
-                construct.empty(typeFieldsContainer);
-            }
-        };
-
-        try
-        {
-            addGroupProvider.init();
-        }
-        catch(e)
-        {
-            console.warn(e);
-        }
-        return addGroupProvider;
+        "dojo/domReady!"], function (dom, construct, registry, parser, array, event, lang, json, util, template)
+       {
 
-    });
\ No newline at end of file
+           var addGroupProvider = {
+               init: function ()
+               {
+                   var that = this;
+                   this.containerNode = construct.create("div", {innerHTML: template});
+                   parser.parse(this.containerNode).then(function (instances)
+                                                         {
+                                                             that._postParse();
+                                                         });
+               },
+               _postParse: function ()
+               {
+                   var that = this;
+                   this.groupProviderName = registry.byId("addGroupProvider.name");
+                   this.groupProviderName.set("regExpGen", util.nameOrContextVarRegexp);
+
+                   this.dialog = registry.byId("addGroupProvider");
+                   this.addButton = registry.byId("addGroupProvider.addButton");
+                   this.cancelButton = registry.byId("addGroupProvider.cancelButton");
+                   this.cancelButton.on("click", function (e)
+                   {
+                       that._cancel(e);
+                   });
+                   this.addButton.on("click", function (e)
+                   {
+                       that._add(e);
+                   });
+
+                   this.groupProviderTypeFieldsContainer = dom.byId("addGroupProvider.typeFields");
+                   this.groupProviderForm = registry.byId("addGroupProvider.form");
+
+                   this.groupProviderType = registry.byId("addGroupProvider.type");
+                   this.groupProviderType.on("change", function (type)
+                   {
+                       that._groupProviderTypeChanged(type);
+                   });
+                   this.context = registry.byId("addGroupProvider.context");
+               },
+               show: function (management, modelObj, effectiveData)
+               {
+                   this.management = management;
+                   this.modelObj = modelObj;
+                   this.groupProviderForm.reset();
+
+                   var supportedTypes = management.metadata.getTypesForCategory("GroupProvider");
+                   supportedTypes.sort();
+                   var supportedTypesStore = util.makeTypeStore(supportedTypes);
+                   this.groupProviderType.set("store", supportedTypesStore);
+
+                   if (effectiveData)
+                   {
+                       this._destroyTypeFields(this.containerNode);
+                       var that = this;
+                       management.load(modelObj,
+                                       {
+                                           actuals: true,
+                                           depth: 0
+                                       }).then(function (data)
+                                               {
+                                                   var actualData = data[0];
+                                                   that.initialData = lang.clone(actualData);
+                                                   that._initFields(actualData);
+
+                                                   that.groupProviderName.set("disabled", true);
+                                                   that.groupProviderType.set("disabled", true);
+                                                   that.dialog.set("title",
+                                                                   "Edit Group Provider - " + effectiveData.name);
+
+                                                   util.setContextData(that.context,
+                                                                       management,
+                                                                       modelObj,
+                                                                       actualData,
+                                                                       effectiveData,
+                                                                       function ()
+                                                                       {
+                                                                           that.dialog.show();
+                                                                       });
+                                               });
+                   }
+                   else
+                   {
+                       this.initialData = null;
+                       this.groupProviderName.set("disabled", false);
+                       this.groupProviderType.set("disabled", false);
+                       this.dialog.set("title", "Add Group Provider");
+                       util.setToBrokerEffectiveContext(this.context,
+                                                        management,
+                                                        lang.hitch(this.dialog, this.dialog.show));
+                   }
+
+               },
+               _initFields: function (data)
+               {
+                   var type = data["type"];
+                   var attributes = this.management.metadata.getMetaData("GroupProvider", type).attributes;
+                   for (var name in attributes)
+                   {
+                       var widget = registry.byId("addGroupProvider." + name);
+                       if (widget)
+                       {
+                           widget.set("value", data[name]);
+                       }
+                   }
+               },
+               _cancel: function (e)
+               {
+                   event.stop(e);
+                   this.dialog.hide();
+               },
+               _add: function (e)
+               {
+                   event.stop(e);
+                   this._submit();
+               },
+               _submit: function ()
+               {
+                   if (this.groupProviderForm.validate())
+                   {
+                       var groupProviderData = util.getFormWidgetValues(this.groupProviderForm, this.initialData);
+                       var context = this.context.get("value");
+                       if (context && (!this.initialData || !util.equals(context, this.initialData.context)))
+                       {
+                           groupProviderData["context"] = context;
+                       }
+                       var that = this;
+
+                       if (this.initialData)
+                       {
+                           // update request
+                           this.management.update(this.modelObj, groupProviderData).then(function (x)
+                                                                                         {
+                                                                                             that.dialog.hide();
+                                                                                         });
+                       }
+                       else
+                       {
+                           this.management.create("groupprovider", this.modelObj, groupProviderData).then(function (x)
+                                                                                                          {
+                                                                                                              that.dialog.hide();
+                                                                                                          });
+                       }
+                   }
+                   else
+                   {
+                       alert('Form contains invalid data. Please correct first');
+                   }
+               },
+               _groupProviderTypeChanged: function (type)
+               {
+                   this._destroyTypeFields(this.groupProviderTypeFieldsContainer);
+                   if (type)
+                   {
+                       var that = this;
+                       require(["qpid/management/groupprovider/" + type.toLowerCase() + "/add"], function (typeUI)
+                       {
+                           try
+                           {
+                               typeUI.show({
+                                               containerNode: that.groupProviderTypeFieldsContainer,
+                                               parent: that,
+                                               data: that.initialData
+                                           });
+                               util.applyMetadataToWidgets(that.groupProviderTypeFieldsContainer,
+                                                           "GroupProvider",
+                                                           type,
+                                                           that.management.metadata);
+                           }
+                           catch (e)
+                           {
+                               console.warn(e);
+                           }
+                       });
+                   }
+               },
+               _destroyTypeFields: function (typeFieldsContainer)
+               {
+                   var widgets = registry.findWidgets(typeFieldsContainer);
+                   array.forEach(widgets, function (item)
+                   {
+                       item.destroyRecursive();
+                   });
+                   construct.empty(typeFieldsContainer);
+               }
+           };
+
+           try
+           {
+               addGroupProvider.init();
+           }
+           catch (e)
+           {
+               console.warn(e);
+           }
+           return addGroupProvider;
+
+       });
\ No newline at end of file

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogInclusionRule.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogInclusionRule.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogInclusionRule.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogInclusionRule.js Fri Apr 29 11:04:40 2016
@@ -42,155 +42,194 @@ define(["dojo/_base/lang",
         "dijit/form/Form",
         "dijit/layout/ContentPane",
         "dojox/layout/TableContainer",
-        "dojo/domReady!"],
-    function (lang, dom, construct, registry, parser, memory, array, event, json, util, template)
-    {
-        var addLogInclusionRule =
-        {
-            init: function()
-            {
-                var that=this;
-                this.containerNode = construct.create("div", {innerHTML: template});
-                parser.parse(this.containerNode).then(function(instances) { that._postParse(); });
-            },
-            _postParse: function()
-            {
-                var that=this;
-                this.name = registry.byId("addLogInclusionRule.name");
-                this.name.set("regExpGen", util.nameOrContextVarRegexp);
-
-                this.dialog = registry.byId("addLogInclusionRule");
-                this.addButton = registry.byId("addLogInclusionRule.addButton");
-                this.cancelButton = registry.byId("addLogInclusionRule.cancelButton");
-                this.cancelButton.on("click", function(e){that._cancel(e);});
-                this.addButton.on("click", function(e){that._add(e);});
-
-                this.typeFieldsContainer = dom.byId("addLogInclusionRule.typeFields");
-                this.form = registry.byId("addLogInclusionRule.form");
-                this.form.on("submit", function(){return false;});
-
-                this.logInclusionRuleType = registry.byId("addLogInclusionRule.type");
-                this.logInclusionRuleType.on("change", function(type){that._typeChanged(type);});
-
-                this.durable = registry.byId("addLogInclusionRule.durable");
-                this.allFieldsContainer = dom.byId("addLogInclusionRule.contentPane");
-            },
-            show: function(management, modelObj, category, actualData)
-            {
-                this.management = management;
-                this.modelObj = modelObj;
-                var metadata = management.metadata;
-                this.category = category;
-                this.configured = false;
-                this._destroyTypeFields(this.typeFieldsContainer);
-                this.logInclusionRuleType.set("store", util.makeTypeStoreFromMetadataByCategory(management.metadata, category));
-                this.form.reset();
-
-                this.initialData = actualData;
-                this.isNew = !actualData;
-
-                this.name.set("disabled", !this.isNew);
-                this.logInclusionRuleType.set("disabled", !this.isNew);
-                this.durable.set("disabled", !this.isNew);
-                this.dialog.set("title", this.isNew ? "Add Log Inclusion Rule" : "Edit Log Inclusion Rule - " + actualData.name);
-
-                if (actualData)
-                {
-                  this._configure(actualData.type);
-                }
-
-                this.dialog.show();
-            },
-            _cancel: function(e)
-            {
-                event.stop(e);
-                this._destroyTypeFields(this.typeFieldsContainer);
-                this.dialog.hide();
-            },
-            _add: function(e)
-            {
-                event.stop(e);
-                this._submit();
-            },
-            _submit: function()
-            {
-                if (this.form.validate())
-                {
-                    var that = this;
-                    var formData = util.getFormWidgetValues(this.form, this.initialData);
-
-                    if (this.isNew)
-                    {
-                      this.management.create(this.category, this.modelObj, formData).then(function(x){that.dialog.hide();});
-                    }
-                    else
-                    {
-                      this.management.update(this.modelObj, formData).then(function(x){that.dialog.hide();});
-                    }
-                }
-                else
-                {
-                    alert('Form contains invalid data. Please correct first');
-                }
-            },
-            _destroyTypeFields: function(typeFieldsContainer)
-            {
-                var widgets = registry.findWidgets(typeFieldsContainer);
-                array.forEach(widgets, function(item) { item.destroyRecursive();});
-                construct.empty(typeFieldsContainer);
-            },
-            _typeChanged: function(type)
-            {
-                 this._destroyTypeFields(this.typeFieldsContainer);
-
-                 if (type)
-                 {
-                     this._configure(type);
-                     var that = this;
-                     require(["qpid/management/loginclusionrule/" + this.category.toLowerCase() + "/" + type.toLowerCase() + "/add"], function(typeUI)
-                     {
-                         try
-                         {
-                             var metadata = that.management.metadata;
-                             var promise = typeUI.show({containerNode:that.typeFieldsContainer, data: that.initialData, metadata: metadata, category: that.category, type: type});
-                             if (promise)
-                             {
-                               promise.then(
-                                 function(instances)
-                                 {
-                                    util.applyToWidgets(that.typeFieldsContainer, that.category, type, that.initialData, metadata);
-                                    if (!that.isNew)
-                                    {
-                                      util.disableWidgetsForImmutableFields(that.allFieldsContainer, that.category, type, metadata);
-                                    }
-                                 });
-                             }
-                         }
-                         catch(e)
-                         {
-                             console.warn(e);
-                         }
-                     });
-                 }
-            },
-            _configure: function(type)
-            {
-                if (!this.configured)
-                {
-                    var metadata = this.management.metadata;
-                    util.applyToWidgets(this.allFieldsContainer, this.category, type, this.initialData, metadata);
-                    this.configured = true;
-                }
-            }
-        };
-
-        try
-        {
-            addLogInclusionRule.init();
-        }
-        catch(e)
-        {
-            console.warn(e);
-        }
-        return addLogInclusionRule;
-    });
+        "dojo/domReady!"], function (lang, dom, construct, registry, parser, memory, array, event, json, util, template)
+       {
+           var addLogInclusionRule = {
+               init: function ()
+               {
+                   var that = this;
+                   this.containerNode = construct.create("div", {innerHTML: template});
+                   parser.parse(this.containerNode).then(function (instances)
+                                                         {
+                                                             that._postParse();
+                                                         });
+               },
+               _postParse: function ()
+               {
+                   var that = this;
+                   this.name = registry.byId("addLogInclusionRule.name");
+                   this.name.set("regExpGen", util.nameOrContextVarRegexp);
+
+                   this.dialog = registry.byId("addLogInclusionRule");
+                   this.addButton = registry.byId("addLogInclusionRule.addButton");
+                   this.cancelButton = registry.byId("addLogInclusionRule.cancelButton");
+                   this.cancelButton.on("click", function (e)
+                   {
+                       that._cancel(e);
+                   });
+                   this.addButton.on("click", function (e)
+                   {
+                       that._add(e);
+                   });
+
+                   this.typeFieldsContainer = dom.byId("addLogInclusionRule.typeFields");
+                   this.form = registry.byId("addLogInclusionRule.form");
+                   this.form.on("submit", function ()
+                   {
+                       return false;
+                   });
+
+                   this.logInclusionRuleType = registry.byId("addLogInclusionRule.type");
+                   this.logInclusionRuleType.on("change", function (type)
+                   {
+                       that._typeChanged(type);
+                   });
+
+                   this.durable = registry.byId("addLogInclusionRule.durable");
+                   this.allFieldsContainer = dom.byId("addLogInclusionRule.contentPane");
+               },
+               show: function (management, modelObj, category, actualData)
+               {
+                   this.management = management;
+                   this.modelObj = modelObj;
+                   var metadata = management.metadata;
+                   this.category = category;
+                   this.configured = false;
+                   this._destroyTypeFields(this.typeFieldsContainer);
+                   this.logInclusionRuleType.set("store",
+                                                 util.makeTypeStoreFromMetadataByCategory(management.metadata,
+                                                                                          category));
+                   this.form.reset();
+
+                   this.initialData = actualData;
+                   this.isNew = !actualData;
+
+                   this.name.set("disabled", !this.isNew);
+                   this.logInclusionRuleType.set("disabled", !this.isNew);
+                   this.durable.set("disabled", !this.isNew);
+                   this.dialog.set("title",
+                                   this.isNew ? "Add Log Inclusion Rule" : "Edit Log Inclusion Rule - "
+                                                                           + actualData.name);
+
+                   if (actualData)
+                   {
+                       this._configure(actualData.type);
+                   }
+
+                   this.dialog.show();
+               },
+               _cancel: function (e)
+               {
+                   event.stop(e);
+                   this._destroyTypeFields(this.typeFieldsContainer);
+                   this.dialog.hide();
+               },
+               _add: function (e)
+               {
+                   event.stop(e);
+                   this._submit();
+               },
+               _submit: function ()
+               {
+                   if (this.form.validate())
+                   {
+                       var that = this;
+                       var formData = util.getFormWidgetValues(this.form, this.initialData);
+
+                       if (this.isNew)
+                       {
+                           this.management.create(this.category, this.modelObj, formData).then(function (x)
+                                                                                               {
+                                                                                                   that.dialog.hide();
+                                                                                               });
+                       }
+                       else
+                       {
+                           this.management.update(this.modelObj, formData).then(function (x)
+                                                                                {
+                                                                                    that.dialog.hide();
+                                                                                });
+                       }
+                   }
+                   else
+                   {
+                       alert('Form contains invalid data. Please correct first');
+                   }
+               },
+               _destroyTypeFields: function (typeFieldsContainer)
+               {
+                   var widgets = registry.findWidgets(typeFieldsContainer);
+                   array.forEach(widgets, function (item)
+                   {
+                       item.destroyRecursive();
+                   });
+                   construct.empty(typeFieldsContainer);
+               },
+               _typeChanged: function (type)
+               {
+                   this._destroyTypeFields(this.typeFieldsContainer);
+
+                   if (type)
+                   {
+                       this._configure(type);
+                       var that = this;
+                       require(["qpid/management/loginclusionrule/" + this.category.toLowerCase() + "/"
+                                + type.toLowerCase() + "/add"], function (typeUI)
+                               {
+                                   try
+                                   {
+                                       var metadata = that.management.metadata;
+                                       var promise = typeUI.show({
+                                                                     containerNode: that.typeFieldsContainer,
+                                                                     data: that.initialData,
+                                                                     metadata: metadata,
+                                                                     category: that.category,
+                                                                     type: type
+                                                                 });
+                                       if (promise)
+                                       {
+                                           promise.then(function (instances)
+                                                        {
+                                                            util.applyToWidgets(that.typeFieldsContainer,
+                                                                                that.category,
+                                                                                type,
+                                                                                that.initialData,
+                                                                                metadata);
+                                                            if (!that.isNew)
+                                                            {
+                                                                util.disableWidgetsForImmutableFields(that.allFieldsContainer,
+                                                                                                      that.category,
+                                                                                                      type,
+                                                                                                      metadata);
+                                                            }
+                                                        });
+                                       }
+                                   }
+                                   catch (e)
+                                   {
+                                       console.warn(e);
+                                   }
+                               });
+                   }
+               },
+               _configure: function (type)
+               {
+                   if (!this.configured)
+                   {
+                       var metadata = this.management.metadata;
+                       util.applyToWidgets(this.allFieldsContainer, this.category, type, this.initialData, metadata);
+                       this.configured = true;
+                   }
+               }
+           };
+
+           try
+           {
+               addLogInclusionRule.init();
+           }
+           catch (e)
+           {
+               console.warn(e);
+           }
+           return addLogInclusionRule;
+       });



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