From d75c51ce7acedcc14c4900583e6037ac540b3172 Mon Sep 17 00:00:00 2001 From: Andrew MacBean Date: Mon, 6 Oct 2014 15:35:07 +0000 Subject: QPID-6130: [Java Broker] Introduce edit queue dialog - further add/edit harmonisation git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1629680 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/resources/addQueue.html | 134 ++++++++++----------- .../src/main/java/resources/editQueue.html | 53 ++++++++ .../java/resources/js/qpid/management/addQueue.js | 64 ++++------ .../java/resources/js/qpid/management/editQueue.js | 18 ++- 4 files changed, 162 insertions(+), 107 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html index d74dd6ebee..042d6d7ad7 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html @@ -39,19 +39,75 @@
Queue Type:
- - -   - - -   - - -   - - + +
+
+
+ + + + + + +
Durable?
@@ -108,62 +164,6 @@
-
- - - - - - -
Flow Control Settings diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html index 5587bbbdab..aff2b5dfa5 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html @@ -49,6 +49,59 @@ disabled: 'true'"/>
+
+ + + + + + +
Durable?
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js index 2e18f27a40..236efb2efa 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js @@ -27,6 +27,7 @@ define(["dojo/_base/xhr", "dojo/_base/array", "dojo/_base/event", 'dojo/_base/json', + "dojo/query", 'qpid/common/util', "qpid/common/ContextVariablesEditor", "dijit/form/NumberSpinner", // required by the form @@ -43,22 +44,14 @@ define(["dojo/_base/xhr", /* basic dojox classes */ "dojox/form/BusyButton", "dojox/form/CheckedMultiSelect", "dojo/domReady!"], - function (xhr, dom, construct, win, registry, parser, array, event, json, util) { + function (xhr, dom, construct, win, registry, parser, array, event, json, query, util) { var addQueue = {}; var node = construct.create("div", null, win.body(), "last"); - var typeSpecificFields = { - priorities: "priority", - lvqKey: "lvq", - sortKey: "sorted" - }; - - var requiredFields = { - priority: "priorities", - sorted: "sortkey" - }; + var typeSpecificFields = { priorities: "priority", lvqKey: "lvq", sortKey: "sorted" }; + var requiredFields = { sorted: "sortKey"}; var fieldConverters = { queueFlowControlSizeBytes: parseInt, @@ -97,8 +90,8 @@ define(["dojo/_base/xhr", newQueue["messageGroupSharedGroups"] = true; } } - else if (!typeSpecificFields.hasOwnProperty(propName) || - formValues[ "type" ] === typeSpecificFields[ propName ]) { + else if (!typeSpecificFields.hasOwnProperty(propName) || formValues[ "type" ] === typeSpecificFields[ propName ]) + { if(formValues[ propName ] !== "") { if (fieldConverters.hasOwnProperty(propName)) { @@ -126,36 +119,29 @@ define(["dojo/_base/xhr", addQueue.dialogNode = dom.byId("addQueue"); parser.instantiate([addQueue.dialogNode]); - // for children which have name type, add a function to make all the associated rows - // visible / invisible as the radio button is checked / unchecked - + // 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"); - array.forEach(theForm.getDescendants(), function(widget) + var typeSelector = registry.byId("formAddQueue.type"); + typeSelector.on("change", function(value) + { + query(".typeSpecificDiv").forEach(function(node, index, arr) { - if(widget.name === "type") { - widget.on("change", function(isChecked) { - - var objId = widget.id + ":fields"; - var obj = registry.byId(objId); - if(obj) { - if(isChecked) { - obj.domNode.style.display = "block"; - } else { - obj.domNode.style.display = "none"; - } - obj.resize(); - var widgetValue = widget.value; - if (requiredFields.hasOwnProperty(widgetValue)) - { - dijit.byId('formAddQueue.' + requiredFields[widgetValue]).required = isChecked; - } - - util.applyMetadataToWidgets(obj.domNode, "Queue", widgetValue); - } - }) + if (node.id === "formAddQueueType:" + value) + { + node.style.display = "block"; + util.applyMetadataToWidgets(node, "Queue", value); + } + else + { + node.style.display = "none"; } - }); + for(var requiredField in requiredFields) + { + dijit.byId('formAddQueue.' + requiredFields[requiredField]).required = (requiredField == value); + } + }); theForm.on("submit", function(e) { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js index 1a8b9f80fb..06c9672efe 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js @@ -57,7 +57,10 @@ define(["dojo/_base/xhr", "alertThresholdMessageAge", "alertThresholdMessageSize", "alertRepeatGap", - "maximumDeliveryAttempts"]; + "maximumDeliveryAttempts", + "priorities", + "lvqKey", + "sortKey"]; var numericFieldNames = ["maximumMessageTtl", "minimumMessageTtl", @@ -90,6 +93,7 @@ define(["dojo/_base/xhr", } this.form = registry.byId("formEditQueue"); this.form.on("submit", function(){return false;}); + this.typeSelector = registry.byId("formEditQueue.type"); }, show: function(hostData) { @@ -113,6 +117,18 @@ define(["dojo/_base/xhr", } } ); + var queueType = this.typeSelector.get("value"); + query(".typeSpecificDiv").forEach(function(node, index, arr){ + if (node.id === "formEditQueueType:" + queueType) + { + node.style.display = "block"; + util.applyMetadataToWidgets(node, "Queue", queueType); + } + else + { + node.style.display = "none"; + } + }); }, destroy: function() { -- cgit v1.2.1