summaryrefslogtreecommitdiff
path: root/java/broker-plugins
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-04-02 16:59:18 +0000
committerAlex Rudyy <orudyy@apache.org>2013-04-02 16:59:18 +0000
commit44113d412df90a2adb15ab0d93b82f8cf3360164 (patch)
tree3e4e2fa84e3ee76db9dba7bc8d32225b467ca558 /java/broker-plugins
parent1e6f70d919c93384025e26c72f6243eab0b78067 (diff)
downloadqpid-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')
-rw-r--r--java/broker-plugins/management-http/src/main/java/resources/addPort.html6
-rw-r--r--java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js2
-rw-r--r--java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js12
-rw-r--r--java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js88
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();
});
}