diff options
| author | Alex Rudyy <orudyy@apache.org> | 2013-04-02 16:59:18 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2013-04-02 16:59:18 +0000 |
| commit | 44113d412df90a2adb15ab0d93b82f8cf3360164 (patch) | |
| tree | 3e4e2fa84e3ee76db9dba7bc8d32225b467ca558 /java/broker-plugins | |
| parent | 1e6f70d919c93384025e26c72f6243eab0b78067 (diff) | |
| download | qpid-python-44113d412df90a2adb15ab0d93b82f8cf3360164.tar.gz | |
QPID-4691: Fix validation and UI for setting of keystore/truststore/peerstore dependant attributes on broker and ports
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1463626 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker-plugins')
4 files changed, 57 insertions, 51 deletions
diff --git a/java/broker-plugins/management-http/src/main/java/resources/addPort.html b/java/broker-plugins/management-http/src/main/java/resources/addPort.html index 2f49ab1448..11acccb2ac 100644 --- a/java/broker-plugins/management-http/src/main/java/resources/addPort.html +++ b/java/broker-plugins/management-http/src/main/java/resources/addPort.html @@ -21,6 +21,7 @@ <div class="dijitHidden"> <div data-dojo-type="dijit.Dialog" style="width:600px;" data-dojo-props="title:'Port'" id="addPort"> <form id="formAddPort" method="post" dojoType="dijit.form.Form"> + <div class="dijitDialogPaneContentArea"> <div id="formAddPort:fields"> <input type="text" required="true" name="name" id="formAddPort.name" placeholder="Name" data-dojo-props="label: 'Name*:'" dojoType="dijit.form.ValidationTextBox" @@ -53,7 +54,7 @@ <div id="formAddPort:fieldsAMQP"> <input id="formAddPort.bindingAddress" type="text" name="bindingAddress" placeholder="*" dojoType="dijit.form.TextBox" data-dojo-props="label: 'Binding address:'"/> - <input id="formAddPort.protocolsDefault" type="checkbox" name="protocolsDefault" checked="checked" + <input id="formAddPort.protocolsDefault" type="checkbox" checked="checked" dojoType="dijit.form.CheckBox" data-dojo-props="label: 'Support broker default AMQP versions:'"/> <select id="formAddPort.protocolsAMQP" name="protocols" data-dojo-type="dijit.form.MultiSelect" multiple="true" data-dojo-props="name: 'protocols', value: '', placeHolder: 'Select AMQP versions', label: 'AMQP versions:'" @@ -80,8 +81,11 @@ </select> </div> <input type="hidden" id="formAddPort.id" name="id"/> + </div> + <div class="dijitDialogPaneActionBar"> <!-- submit buttons --> <input type="submit" value="Save Port" label="Save Port" dojoType="dijit.form.Button" /> + </div> </form> </div> </div> diff --git a/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js b/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js index fea67d5942..699cbcfab8 100644 --- a/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js +++ b/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js @@ -171,7 +171,7 @@ define(["dojo/_base/xhr", widgets[name] = widget; widget.initialValue = widget.value; layout.addChild(widget); - if (attributeWidgetFactory.hasOwnProperty("requiredFor")) + if (attributeWidgetFactory.hasOwnProperty("requiredFor") && !data[name]) { requiredFor[attributeWidgetFactory.requiredFor] = widget; } diff --git a/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js b/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js index f5e40025c2..365133b9c7 100644 --- a/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js +++ b/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js @@ -141,7 +141,9 @@ define(["dojo/_base/xhr", required: false, label: "Keystore password:", invalidMessage: "Missed keystore password", - name: "keyStorePassword"}); + name: "keyStorePassword", + placeholder: brokerData["keyStorePassword"] ? brokerData["keyStorePassword"] : "" + }); } }, { name: "trustStorePath", @@ -161,7 +163,9 @@ define(["dojo/_base/xhr", required: false, label: "Truststore password:", invalidMessage: "Missed trustore password", - name: "trustStorePassword"}); + name: "trustStorePassword", + placeholder: brokerData["trustStorePassword"] ? brokerData["trustStorePassword"] : "" + }); } }, { name: "peerStorePath", @@ -180,7 +184,9 @@ define(["dojo/_base/xhr", required: false, label: "Peerstore password:", invalidMessage: "Missed peerstore password", - name: "peerStorePassword"}); + name: "peerStorePassword", + placeholder: brokerData["peerStorePassword"] ? brokerData["peerStorePassword"] : "" + }); } }, { name: "queue.alertThresholdQueueDepthMessages", diff --git a/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js b/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js index 4d1e268d4d..0c1a188cbf 100644 --- a/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js +++ b/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js @@ -71,7 +71,7 @@ define(["dojo/_base/xhr", { if(formValues.hasOwnProperty(propName)) { - if (propName === "type" || propName === "protocolsDefault") + if (propName == "needClientAuth" || propName == "wantClientAuth") { continue; } @@ -107,18 +107,37 @@ define(["dojo/_base/xhr", } } - var needClientAuth = dijit.byId("formAddPort.needClientAuth"); - var wantClientAuth = dijit.byId("formAddPort.wantClientAuth"); - if(!needClientAuth.disabled) + var type = dijit.byId("formAddPort.type").value; + if (type == "AMQP") { - newPort.needClientAuth = needClientAuth.checked; + var needClientAuth = dijit.byId("formAddPort.needClientAuth"); + var wantClientAuth = dijit.byId("formAddPort.wantClientAuth"); + newPort.needClientAuth = needClientAuth.disabled ? false : needClientAuth.checked; + newPort.wantClientAuth = wantClientAuth.disabled ? false : wantClientAuth.checked } - if(!wantClientAuth.disabled) + return newPort; + }; + + var toggleCertificateWidgets = function toggleCertificateWidgets(protocolType, transportType) + { + var clientAuthPanel = registry.byId("formAddPort:fieldsClientAuth"); + var display = clientAuthPanel.domNode.style.display; + if (transportType == "SSL" && protocolType == "AMQP") { - newPort.wantClientAuth = wantClientAuth.checked; + clientAuthPanel.domNode.style.display = "block"; + registry.byId("formAddPort.needClientAuth").set("disabled", false); + registry.byId("formAddPort.wantClientAuth").set("disabled", false); + } + else + { + clientAuthPanel.domNode.style.display = "none"; + registry.byId("formAddPort.needClientAuth").set("disabled", true); + registry.byId("formAddPort.wantClientAuth").set("disabled", true); + } + if (clientAuthPanel.domNode.style.display != display) + { + clientAuthPanel.resize(); } - - return newPort; }; @@ -134,6 +153,11 @@ define(["dojo/_base/xhr", dijit.byId("formAddPort.protocolsAMQP").set("disabled", isChecked); }); + registry.byId("formAddPort.transports").on("change", function(newValue){ + var protocolType = registry.byId("formAddPort.type").value; + toggleCertificateWidgets(protocolType, newValue); + }); + registry.byId("formAddPort.type").on("change", function(newValue) { var typeWidget = registry.byId("formAddPort.type"); var store = typeWidget.store; @@ -142,20 +166,8 @@ define(["dojo/_base/xhr", registry.byId("formAddPort:fields" + option.value).domNode.style.display = "none"; }); - if ("AMQP" == newValue) - { - registry.byId("formAddPort:fieldsClientAuth").domNode.style.display = "block"; - registry.byId("formAddPort.needClientAuth").set("disabled", false); - registry.byId("formAddPort.wantClientAuth").set("disabled", false); - } - else - { - registry.byId("formAddPort:fieldsClientAuth").domNode.style.display = "none"; - registry.byId("formAddPort.needClientAuth").set("checked", false); - registry.byId("formAddPort.wantClientAuth").set("checked", false); - registry.byId("formAddPort.needClientAuth").set("disabled", true); - registry.byId("formAddPort.wantClientAuth").set("disabled", true); - } + registry.byId("formAddPort.needClientAuth").set("enabled", ("AMQP" == newValue)); + registry.byId("formAddPort.wantClientAuth").set("enabled", ("AMQP" == newValue)); registry.byId("formAddPort:fields" + newValue).domNode.style.display = "block"; var defaultsAMQPProtocols = registry.byId("formAddPort.protocolsDefault"); @@ -163,20 +175,10 @@ define(["dojo/_base/xhr", var protocolsWidget = registry.byId("formAddPort.protocols" + newValue); if (protocolsWidget) { - if ("AMQP" == newValue && defaultsAMQPProtocols.checked) - { - protocolsWidget.set("disabled", true); - } - else - { - protocolsWidget.set("disabled", false); - } - } - var transportsWidget = registry.byId("formAddPort.transports"); - if (transportsWidget) - { - transportsWidget.startup(); + protocolsWidget.set("disabled", ("AMQP" == newValue && defaultsAMQPProtocols.checked)); } + var transport = registry.byId("formAddPort.transports").value; + toggleCertificateWidgets(newValue, transport); }); theForm = registry.byId("formAddPort"); @@ -289,7 +291,8 @@ define(["dojo/_base/xhr", nameField.set("disabled", true); dom.byId("formAddPort.id").value=port.id; providerWidget.set("value", port.authenticationProvider ? port.authenticationProvider : ""); - registry.byId("formAddPort.transports").set("value", port.transports ? port.transports[0] : ""); + var transportWidget = registry.byId("formAddPort.transports"); + transportWidget.set("value", port.transports ? port.transports[0] : ""); registry.byId("formAddPort.port").set("value", port.port); var protocols = port.protocols; var typeWidget = registry.byId("formAddPort.type"); @@ -299,12 +302,6 @@ define(["dojo/_base/xhr", registry.byId("formAddPort:fields" + option.value).domNode.style.display = "none"; }); - registry.byId("formAddPort.needClientAuth").set("checked", false); - registry.byId("formAddPort.wantClientAuth").set("checked", false); - registry.byId("formAddPort.needClientAuth").set("disabled", true); - registry.byId("formAddPort.wantClientAuth").set("disabled", true); - registry.byId("formAddPort:fieldsClientAuth").domNode.style.display = "none"; - // identify the type of port using first protocol specified in protocol field if provided if ( !protocols || protocols.length == 0 || protocols[0].indexOf("AMQP") == 0) { @@ -326,11 +323,8 @@ define(["dojo/_base/xhr", amqpProtocolsWidget.set("disabled", true) } - registry.byId("formAddPort.needClientAuth").set("disabled", false); - registry.byId("formAddPort.wantClientAuth").set("disabled", false); registry.byId("formAddPort.needClientAuth").set("checked", port.needClientAuth); registry.byId("formAddPort.wantClientAuth").set("checked", port.wantClientAuth); - registry.byId("formAddPort:fieldsClientAuth").domNode.style.display = "block"; } else if (protocols[0].indexOf("RMI") != -1) { @@ -348,6 +342,8 @@ define(["dojo/_base/xhr", } registry.byId("formAddPort:fields" + typeWidget.value).domNode.style.display = "block"; typeWidget.set("disabled", true); + + toggleCertificateWidgets(typeWidget.value, transportWidget.value); registry.byId("addPort").show(); }); } |
