Author: kwall
Date: Sun May 24 09:21:56 2015
New Revision: 1681427

URL: http://svn.apache.org/r1681427
Log:
QPID-6555: [Java Broker] Restore the ability to create non-durable queues and 
exchanges from the web management console

Also fixed:

* context variable(s) set within queue creation dialogue were ignored
* inability to set a numeric attribute (e.g. an alerting threshold) in terms of 
a context variable within queue creation dialogue

Eliminated some redundant code

Modified:
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addQueue.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addQueue.html
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addQueue.html?rev=1681427&r1=1681426&r2=1681427&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addQueue.html
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addQueue.html
 Sun May 24 09:21:56 2015
@@ -170,7 +170,7 @@
                 <div class="clear">
                     <div class="formLabel-labelCell">Capacity:</div>
                     <div class="formLabel-controlCell">
-                        <input type="text" id="formAddQueue.capacity"
+                        <input type="text" 
id="formAddQueue.queueFlowControlSizeBytes"
                                data-dojo-type="dijit/form/ValidationTextBox"
                                data-dojo-props="
                                   name: 'queueFlowControlSizeBytes',
@@ -183,7 +183,7 @@
                 <div class="clear">
                     <div class="formLabel-labelCell">Resume Capacity:</div>
                     <div class="formLabel-controlCell">
-                        <input type="text" id="formAddQueue.flowResumeCapacity"
+                        <input type="text" 
id="formAddQueue.queueFlowResumeSizeBytes"
                                data-dojo-type="dijit/form/ValidationTextBox"
                                data-dojo-props="
                                   name: 'queueFlowResumeSizeBytes',
@@ -203,7 +203,7 @@
                 <div class="clear">
                     <div class="formLabel-labelCell">Queue Depth:</div>
                     <div class="formLabel-controlCell">
-                        <input type="text" 
id="formAddQueue.maximumMessageCount"
+                        <input type="text" 
id="formAddQueue.alertThresholdQueueDepthMessages"
                                data-dojo-type="dijit/form/ValidationTextBox"
                                data-dojo-props="
                                   name: 'alertThresholdQueueDepthMessages',
@@ -216,7 +216,7 @@
                 <div class="clear">
                     <div class="formLabel-labelCell">Queue Depth:</div>
                     <div class="formLabel-controlCell">
-                        <input type="text" id="formAddQueue.maximumQueueDepth"
+                        <input type="text" 
id="formAddQueue.alertThresholdQueueDepthBytes"
                                data-dojo-type="dijit/form/ValidationTextBox"
                                data-dojo-props="
                                   name: 'alertThresholdQueueDepthBytes',
@@ -229,7 +229,7 @@
                 <div class="clear">
                     <div class="formLabel-labelCell">Message Age:</div>
                     <div class="formLabel-controlCell">
-                        <input type="text" id="formAddQueue.maximumMessageAge"
+                        <input type="text" 
id="formAddQueue.alertThresholdMessageAge"
                                data-dojo-type="dijit/form/ValidationTextBox"
                                data-dojo-props="
                                   name: 'alertThresholdMessageAge',
@@ -242,7 +242,7 @@
                 <div class="clear">
                     <div class="formLabel-labelCell">Message Size:</div>
                     <div class="formLabel-controlCell">
-                        <input type="text" id="formAddQueue.maximumMessageSize"
+                        <input type="text" 
id="formAddQueue.alertThresholdMessageSize"
                                data-dojo-type="dijit/form/ValidationTextBox"
                                data-dojo-props="
                                   name: 'alertThresholdMessageSize',
@@ -291,7 +291,7 @@
                         <input type="checkbox" id="formAddQueue.dlqEnabled"
                                dojoType="dijit.form.CheckBox"
                                data-dojo-props="
-                              name: 'dlqEnabled',
+                              name: 'x-qpid-dlq-enabled',
                               value: 'dlqEnabled',
                               title: 'Controls where a dead letter queue is 
automatically created',
                               checked: false"/>

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js?rev=1681427&r1=1681426&r2=1681427&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
 Sun May 24 09:21:56 2015
@@ -544,17 +544,7 @@ define(["dojo/_base/xhr",
                        {
                           continue;
                        }
-                       if (widget.contextvar)
-                       {
-                         var context = values["context"];
-                         if (!context)
-                         {
-                            context = {};
-                            values["context"] = context;
-                         }
-                         context[propName]=String(value);
-                       }
-                       else if (widget instanceof dijit.form.RadioButton)
+                       if (widget instanceof dijit.form.RadioButton)
                        {
                            if (widget.checked)
                            {

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=1681427&r1=1681426&r2=1681427&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
 Sun May 24 09:21:56 2015
@@ -48,77 +48,50 @@ define(["dojo/dom",
 
         var node = construct.create("div", null, win.body(), "last");
 
-        var convertToExchange = function convertToExchange(formValues)
+        var theForm;
+        node.innerHTML = template;
+        addExchange.dialogNode = dom.byId("addExchange");
+        parser.instantiate([addExchange.dialogNode]);
+
+        theForm = registry.byId("formAddExchange");
+        array.forEach(theForm.getDescendants(), function(widget)
             {
-                var newExchange = {};
-                newExchange.name = formValues.name;
-                for(var propName in formValues)
-                {
-                    if(formValues.hasOwnProperty(propName))
-                    {
-                        if(propName === "durable")
-                        {
-                            if (formValues.durable[0] && formValues.durable[0] 
== "durable") {
-                                newExchange.durable = true;
-                            }
-                        } else {
-                            if(formValues[ propName ] !== "") {
-                                newExchange[ propName ] = formValues[propName];
+                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();
                             }
                         }
-
-                    }
+                    })
                 }
 
-                return newExchange;
-            };
+            });
+
+        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, function(x){ 
registry.byId("addExchange").hide(); });
+                return false;
 
 
-                            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 = 
convertToExchange(theForm.getValues());
-                                    var that = this;
-                                    addExchange.management.create("exchange", 
addExchange.modelObj,
-                                            newExchange, function(x){ 
registry.byId("addExchange").hide(); });
-                                    return false;
-
-
-                                }else{
-                                    alert('Form contains invalid data.  Please 
correct first');
-                                    return false;
-                                }
+            }else{
+                alert('Form contains invalid data.  Please correct first');
+                return false;
+            }
 
-                            });
+        });
 
         addExchange.show = function(management, modelObj) {
                             addExchange.management = management

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js?rev=1681427&r1=1681426&r2=1681427&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
 Sun May 24 09:21:56 2015
@@ -50,125 +50,91 @@ define(["dojo/dom",
 
         var node = construct.create("div", null, win.body(), "last");
 
-        var typeSpecificFields = { priorities: "priority", lvqKey: "lvq", 
sortKey: "sorted" };
         var requiredFields = { sorted: "sortKey"};
 
-        var fieldConverters = {
-                queueFlowControlSizeBytes:        parseInt,
-                queueFlowResumeSizeBytes:         parseInt,
-                alertThresholdMessageSize:        parseInt,
-                alertThresholdQueueDepthMessages: parseInt,
-                alertThresholdQueueDepthBytes:    parseInt,
-                maximumDeliveryAttempts:          parseInt,
-                alertThresholdMessageAge:         parseInt,
-                alertRepeatGap:                   parseInt
-            }
-
-        var convertToQueue = function convertToQueue(formValues)
+        var numericFieldNames = ["maximumMessageTtl",
+        "minimumMessageTtl",
+        "queueFlowControlSizeBytes",
+        "queueFlowResumeSizeBytes",
+        "alertThresholdQueueDepthMessages",
+        "alertThresholdQueueDepthBytes",
+        "alertThresholdMessageAge",
+        "alertThresholdMessageSize",
+        "alertRepeatGap",
+        "maximumDeliveryAttempts"];
+
+        var theForm;
+        node.innerHTML = template;
+        addQueue.dialogNode = dom.byId("addQueue");
+        parser.instantiate([addQueue.dialogNode]);
+
+        // for children which have name type, add a function to make all the 
associated atrributes
+        // visible / invisible as the select is changed
+        theForm = registry.byId("formAddQueue");
+        var typeSelector = registry.byId("formAddQueue.type");
+        typeSelector.on("change", function(value)
+        {
+            query(".typeSpecificDiv").forEach(function(node, index, arr)
             {
-                var newQueue = {};
-                newQueue.name = formValues.name;
-                for(var propName in formValues)
+                if (node.id === "formAddQueueType:" + value)
                 {
-                    if(formValues.hasOwnProperty(propName))
+                    node.style.display = "block";
+                    if (addQueue.management)
                     {
-                        if(propName === "durable")
-                        {
-                            if (formValues.durable[0] && formValues.durable[0] 
== "durable") {
-                                newQueue.durable = true;
-                            }
-                        }
-                        else if(propName === "dlqEnabled")
-                        {
-                            if (formValues.dlqEnabled[0] && 
formValues.dlqEnabled[0] == "dlqEnabled") {
-                                newQueue["x-qpid-dlq-enabled"] = true;
-                            }
-                        }
-                        else if(propName === "messageGroupSharedGroups")
-                        {
-                            if (formValues.messageGroupSharedGroups[0] && 
formValues.messageGroupSharedGroups[0] == "messageGroupSharedGroups") {
-                                newQueue["messageGroupSharedGroups"] = true;
-                            }
-                        }
-                        else if (!typeSpecificFields.hasOwnProperty(propName) 
|| formValues[ "type" ] === typeSpecificFields[ propName ])
-                        {
-                            if(formValues[ propName ] !== "") {
-                                if (fieldConverters.hasOwnProperty(propName))
-                                {
-                                    newQueue[ propName ] = 
fieldConverters[propName](formValues[propName]);
-                                }
-                                else
-                                {
-                                    newQueue[ propName ] = 
formValues[propName];
-                                }
-                            }
-                        }
-
+                        util.applyMetadataToWidgets(node, "Queue", value, 
addQueue.management.metadata);
                     }
                 }
+                else
+                {
+                    node.style.display = "none";
+                }
+            });
+            for(var requiredField in requiredFields)
+            {
+                dijit.byId('formAddQueue.' + 
requiredFields[requiredField]).required = (requiredField == value);
+            }
+        });
 
-                return newQueue;
-            };
+        theForm.on("submit", function(e) {
 
+            event.stop(e);
+            if(theForm.validate())
+            {
 
-                            var theForm;
-                            node.innerHTML = template;
-                            addQueue.dialogNode = dom.byId("addQueue");
-                            parser.instantiate([addQueue.dialogNode]);
-
-                            // for children which have name type, add a 
function to make all the associated atrributes
-                            // visible / invisible as the select is changed
-                            theForm = registry.byId("formAddQueue");
-                            var typeSelector = 
registry.byId("formAddQueue.type");
-                            typeSelector.on("change", function(value)
-                            {
-                                
query(".typeSpecificDiv").forEach(function(node, index, arr)
-                                {
-                                    if (node.id === "formAddQueueType:" + 
value)
-                                    {
-                                        node.style.display = "block";
-                                        if (addQueue.management)
-                                        {
-                                            util.applyMetadataToWidgets(node, 
"Queue", value, addQueue.management.metadata);
-                                        }
-                                    }
-                                    else
-                                    {
-                                        node.style.display = "none";
-                                    }
-                                });
-                                for(var requiredField in requiredFields)
-                                {
-                                    dijit.byId('formAddQueue.' + 
requiredFields[requiredField]).required = (requiredField == value);
-                                }
-                            });
-
-                            theForm.on("submit", function(e) {
-
-                                event.stop(e);
-                                if(theForm.validate()){
-
-                                    var newQueue = 
convertToQueue(theForm.getValues());
-                                    addQueue.management.create("queue", 
addQueue.modelObj,
-                                            newQueue, 
function(x){registry.byId("addQueue").hide();});
-                                    return false;
-
-
-                                }else{
-                                    alert('Form contains invalid data.  Please 
correct first');
-                                    return false;
-                                }
+                var newQueue = util.getFormWidgetValues(theForm);
+                var context = addQueue.context.get("value");
+                if (context)
+                {
+                  newQueue["context"] = context;
+                }
 
-                            });
+              addQueue.management.create("queue", addQueue.modelObj,
+                        newQueue, 
function(x){registry.byId("addQueue").hide();});
+                return false;
+
+
+            }else{
+                alert('Form contains invalid data.  Please correct first');
+                return false;
+            }
+
+        });
 
         addQueue.show = function(management, modelObj) {
                             addQueue.management = management;
                             addQueue.modelObj = modelObj;
+
                             var form = registry.byId("formAddQueue");
                             form.reset();
                             registry.byId("addQueue").show();
                             util.applyMetadataToWidgets(form.domNode, "Queue", 
"standard", addQueue.management.metadata);
 
+                            // Add regexp to the numeric fields
+                            for(var i = 0; i < numericFieldNames.length; i++)
+                            {
+                              registry.byId("formAddQueue." + 
numericFieldNames[i]).set("regExpGen", util.numericOrContextVarRegexp);
+                            }
+
                             if (!this.context)
                             {
                              this.context = new 
qpid.common.ContextVariablesEditor({name: 'context', title: 'Context 
variables'});

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js?rev=1681427&r1=1681426&r2=1681427&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js
 Sun May 24 09:21:56 2015
@@ -43,23 +43,6 @@ define(["dojox/html/entities",
         "dojo/domReady!"],
   function (entities, array, event, lang, win, dom, domConstruct, registry, 
parser, json, query, util, template)
   {
-    var fields = ["name",
-                  "type",
-                  "durable",
-                  "messageDurability",
-                  "maximumMessageTtl",
-                  "minimumMessageTtl",
-                  "queueFlowControlSizeBytes",
-                  "queueFlowResumeSizeBytes",
-                  "alertThresholdQueueDepthMessages",
-                  "alertThresholdQueueDepthBytes",
-                  "alertThresholdMessageAge",
-                  "alertThresholdMessageSize",
-                  "alertRepeatGap",
-                  "maximumDeliveryAttempts",
-                  "priorities",
-                  "lvqKey",
-                  "sortKey"];
 
     var numericFieldNames = ["maximumMessageTtl",
                   "minimumMessageTtl",
@@ -89,11 +72,6 @@ define(["dojox/html/entities",
         this.cancelButton = registry.byId("formEditQueue.cancelButton");
         this.cancelButton.on("click", function(e){that._cancel(e);});
         this.saveButton.on("click", function(e){that._save(e);});
-        for(var i = 0; i < fields.length; i++)
-        {
-            var fieldName = fields[i];
-            this[fieldName] = registry.byId("formEditQueue." + fieldName);
-        }
         this.form = registry.byId("formEditQueue");
         this.form.on("submit", function(){return false;});
         this.typeSelector = registry.byId("formEditQueue.type");
@@ -162,31 +140,17 @@ define(["dojox/html/entities",
       {
 
           this.initialData = actualData;
-          for(var i = 0; i < fields.length; i++)
-          {
-            var fieldName = fields[i];
-            var widget = this[fieldName];
-            widget.reset();
-
-            if (widget instanceof dijit.form.CheckBox)
-            {
-              widget.set("checked", actualData[fieldName]);
-            }
-            else
-            {
-              widget.set("value", actualData[fieldName]);
-            }
-          }
+          this.form.reset();
 
           var that = this;
-          util.applyMetadataToWidgets(that.allFieldsContainer, "Queue", 
actualData.type, this.management.metadata);
+          util.applyToWidgets(that.allFieldsContainer, "Queue", 
actualData.type, actualData, this.management.metadata);
 
           util.setContextData(this.context, this.management, this.modelObj, 
actualData, effectiveData);
 
           // Add regexp to the numeric fields
           for(var i = 0; i < numericFieldNames.length; i++)
           {
-            this[numericFieldNames[i]].set("regExpGen", 
util.numericOrContextVarRegexp);
+            registry.byId("formEditQueue." 
+numericFieldNames[i]).set("regExpGen", util.numericOrContextVarRegexp);
           }
 
           var queueType = this.typeSelector.get("value");



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to