summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid')
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js57
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js45
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js97
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js20
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js1
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js8
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js29
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js76
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js12
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js62
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js3
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js2
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementhttp.js4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementjmx.js4
16 files changed, 328 insertions, 100 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
new file mode 100644
index 0000000000..19ec53744f
--- /dev/null
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+define(["dojo/_base/xhr",
+ "dojox/lang/functional/object",
+ "qpid/common/properties",
+ "dojo/domReady!"
+ ],
+ function (xhr, fobject, properties)
+ {
+ var metadata =
+ {
+ _init: function ()
+ {
+ var that = this;
+ xhr.get({sync: true, handleAs: "json", url: "service/metadata", load: function(metadata){that._onMetadata(metadata)}});
+ },
+ _onMetadata: function (metadata)
+ {
+ this.metadata = metadata;
+ },
+ getMetaData: function (category, type)
+ {
+ return this.metadata[category][type];
+ },
+ getDefaultValueForAttribute: function (category, type, attributeName)
+ {
+ var metaDataForInstance = this.getMetaData(category, type);
+ var attributesForType = metaDataForInstance["attributes"];
+ var attributesForName = attributesForType[attributeName];
+ return attributesForName ? attributesForName["defaultValue"] : undefined;
+ },
+ getTypesForCategory: function (category)
+ {
+ return fobject.keys(this.metadata[category]);
+ }
+ };
+
+ metadata._init();
+
+ return metadata;
+ });
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
index 1a89bfb374..9e433bbb34 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
@@ -19,15 +19,19 @@
*
*/
define(["dojo/_base/xhr",
+ "dojo/_base/array",
"dojo/_base/event",
- "dojo/json",
"dojo/_base/lang",
+ "dojo/json",
"dojo/dom-construct",
"dojo/dom-geometry",
"dojo/window",
"dojo/query",
"dojo/parser",
+ "dojo/store/Memory",
"dojox/html/entities",
+ "qpid/common/metadata",
+ "qpid/common/widgetconfigurer",
"dijit/registry",
"dijit/TitlePane",
"dijit/Dialog",
@@ -35,13 +39,15 @@ define(["dojo/_base/xhr",
"dijit/form/Button",
"dijit/form/RadioButton",
"dijit/form/CheckBox",
+ "dijit/form/FilteringSelect",
+ "dijit/form/ValidationTextBox",
"dojox/layout/TableContainer",
"dijit/layout/ContentPane",
"dojox/validate/us",
"dojox/validate/web",
"dojo/domReady!"
],
- function (xhr, event, json, lang, dom, geometry, win, query, parser, entities, registry) {
+ function (xhr, array, event, lang, json, dom, geometry, win, query, parser, Memory, entities, metadata, widgetconfigurer, registry) {
var util = {};
if (Array.isArray) {
util.isArray = function (object) {
@@ -146,7 +152,7 @@ define(["dojo/_base/xhr",
return (type === "PlainPasswordFile" || type === "Base64MD5PasswordFile" || type === "SCRAM-SHA-1" || type === "SCRAM-SHA-256");
};
- util.showSetAttributesDialog = function(attributeWidgetFactories, data, putURL, dialogTitle, appendNameToUrl)
+ util.showSetAttributesDialog = function(attributeWidgetFactories, data, putURL, dialogTitle, category, type, appendNameToUrl)
{
var layout = new dojox.layout.TableContainer({
cols: 1,
@@ -200,7 +206,7 @@ define(["dojo/_base/xhr",
{
groupFieldContainer = new dojox.layout.TableContainer({
cols: 1,
- "labelWidth": "290",
+ "labelWidth": "300",
showLabels: true,
orientation: "horiz",
customClass: "formLabel"
@@ -220,6 +226,8 @@ define(["dojo/_base/xhr",
}
}
+ this.applyMetadataToWidgets(dialogContent, category, type);
+
// add onchange handler to set required property for dependent widget
for(var widgetName in requiredFor)
{
@@ -310,14 +318,17 @@ define(["dojo/_base/xhr",
aproximateHeight += 30;
}
}
- var viewport = win.getBox();
- var maxHeight = Math.max(Math.floor(viewport.h * 0.6), 100);
dialogContentArea.style.overflow= "auto";
- dialogContentArea.style.height = Math.min(aproximateHeight, maxHeight ) + "px";
+ dialogContentArea.style.height = "300";
setAttributesDialog.on("hide", function(e){setAttributesDialog.destroy();});
setAttributesDialog.show();
};
+ util.findAllWidgets = function(root)
+ {
+ return query("[widgetid]", root).map(registry.byNode).filter(function(w){ return w;});
+ };
+
util.xhrErrorHandler = function(error)
{
if (error)
@@ -540,6 +551,16 @@ define(["dojo/_base/xhr",
}
}
+ util.applyMetadataToWidgets = function(domRoot, category, type)
+ {
+ var widgets = util.findAllWidgets(domRoot);
+ array.forEach(widgets,
+ function (widget)
+ {
+ widgetconfigurer.config(widget, category, type);
+ });
+ }
+
util.getFormWidgetValues = function (form, initialData)
{
var values = {};
@@ -636,6 +657,16 @@ define(["dojo/_base/xhr",
}
}
+ util.makeTypeStore = function (types)
+ {
+ var typeData = [];
+ for (var i = 0; i < types.length; i++) {
+ var type = types[i];
+ typeData.push({id: type, name: type});
+ }
+ return new Memory({ data: typeData });
+ }
+
var singleContextVarRegexp = "(\\${[\\w\\.\\-]+})";
util.numericOrContextVarRegexp = function(constraints)
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js
new file mode 100644
index 0000000000..0b08dde615
--- /dev/null
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+define(["dojo/_base/xhr",
+ "dojo/string",
+ "dojo/query",
+ "dojo/dom",
+ "dojo/dom-construct",
+ "dojo/dom-attr",
+ "qpid/common/properties",
+ "qpid/common/metadata",
+ "dojo/text!strings.html",
+ "dojo/domReady!"
+ ],
+ function (xhr, string, query, dom, domConstruct, domAttr, properties, metadata, template)
+ {
+ var widgetconfigurer =
+ {
+ _init: function ()
+ {
+ var stringsTemplate = domConstruct.create("div", {innerHTML: template});
+ var promptTemplateWithDefaultNode = query("[id='promptTemplateWithDefault']", stringsTemplate)[0];
+
+ // The following will contain ${prompt} and ${default} formatted with html elements
+ this.promptTemplateWithDefault = promptTemplateWithDefaultNode.innerHTML;
+
+ domConstruct.destroy(stringsTemplate);
+ },
+ _processWidgetPrompt: function (widget, category, type)
+ {
+ var widgetName = widget.name;
+ if (widgetName && (widget instanceof dijit.form.ValidationTextBox || widget instanceof dijit.form.FilteringSelect))
+ {
+ // If not done so already, save the prompt text specified on the widget. We do this so if we
+ // config the same widget again, we can apply the default again (which may be different if the user
+ // has selected a different type within the category).
+ if (typeof widget.get("qpid.originalPromptMessage") == "undefined")
+ {
+ widget.set("qpid.originalPromptMessage", widget.get("promptMessage"));
+ }
+
+ var promptMessage = widget.get("qpid.originalPromptMessage");
+ var defaultValue = metadata.getDefaultValueForAttribute(category, type, widgetName);
+ if (defaultValue)
+ {
+ var newPromptMessage = string.substitute(this.promptTemplateWithDefault, { 'default': defaultValue, 'prompt': promptMessage });
+
+ if (promptMessage != newPromptMessage)
+ {
+ widget.set("promptMessage", newPromptMessage);
+ }
+ }
+ }
+ },
+ _processWidgetValue: function (widget, category, type)
+ {
+ var widgetName = widget.name;
+
+ if (widgetName && (widget instanceof dijit.form.FilteringSelect || widget instanceof dojox.form.CheckedMultiSelect))
+ {
+ if (!widget.get("value"))
+ {
+ var defaultValue = metadata.getDefaultValueForAttribute(category, type, widgetName);
+ if (defaultValue)
+ {
+ widget.set("value", defaultValue);
+ }
+ }
+ }
+ },
+ config: function (widget, category, type)
+ {
+ this._processWidgetPrompt(widget, category, type);
+ this._processWidgetValue(widget, category, type);
+ }
+ };
+
+ widgetconfigurer._init();
+
+ return widgetconfigurer;
+ });
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
index 51a6c761f1..c52553c386 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
@@ -69,7 +69,8 @@ define(["dojo/_base/xhr",
regExpGen: util.nameOrContextVarRegexp,
value: brokerData.name,
label: "Name*:",
- name: "name"})
+ name: "name",
+ promptMessage: "Identifies the broker instance."})
}
}, {
name: "defaultVirtualHost",
@@ -89,7 +90,8 @@ define(["dojo/_base/xhr",
required: true, store: hostsStore,
value: brokerData.defaultVirtualHost,
label: "Default Virtual Host*:",
- name: "defaultVirtualHost"})
+ name: "defaultVirtualHost",
+ promptMessage: "Default virtual host used for clients that don't specify one when connecting."})
}
}, {
name: "statisticsReportingPeriod",
@@ -97,12 +99,12 @@ define(["dojo/_base/xhr",
return new dijit.form.ValidationTextBox({
trim: "true",
regExpGen: util.numericOrContextVarRegexp,
- invalidMessage: "Invalid value",
required: false,
value: brokerData.statisticsReportingPeriod,
placeholder: "Time in ms",
label: "Statistics reporting period (ms):",
- name: "statisticsReportingPeriod"
+ name: "statisticsReportingPeriod",
+ promptMessage: "Frequency with which statistics are reported to broker log."
});
}
}, {
@@ -123,11 +125,12 @@ define(["dojo/_base/xhr",
return new dijit.form.ValidationTextBox({
trim: "true",
regExpGen: util.numericOrContextVarRegexp,
- invalidMessage: "Invalid value",
required: false,
value: brokerData["connection.sessionCountLimit"],
+ placeholder: "Number of sessions",
label: "Maximum number of sessions:",
- name: "connection.sessionCountLimit"
+ name: "connection.sessionCountLimit",
+ promptMessage: "Maximum number of sessions per connection"
});
}
}, {
@@ -141,7 +144,8 @@ define(["dojo/_base/xhr",
value: brokerData["connection.heartBeatDelay"],
placeholder: "Time in ms",
label: "Heart beat delay (ms):",
- name: "connection.heartBeatDelay"
+ name: "connection.heartBeatDelay",
+ promptMessage: "Interval between heart beat messages exchanged between broker and clients"
});
}
} ];
@@ -235,7 +239,7 @@ define(["dojo/_base/xhr",
that.attributeWidgetFactories,
brokerData,
query,
- "Set broker attributes");
+ "Set broker attributes", "Broker", "broker");
});
}
);
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
index 667c83c6ea..9f0ba9c16e 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
@@ -74,6 +74,7 @@ define(["dojo/dom",
xhr.get({url: that.url, sync: properties.useSyncGet, handleAs: "json", content: { actuals: true }})
.then(function(data)
{
+ // calls showKeystoreDialog
that.dialog(data[0], that.url);
});
});
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
index 49a99418bf..ac0493bfa5 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
@@ -56,6 +56,8 @@ define(["dojo/_base/lang",
disabled: accessControlProvider.name ? true : false,
label: "Name*:",
regexp: "^[\x20-\x2e\x30-\x7F]{1,255}$",
+ promptMessage: "Name of access control provider.",
+ placeHolder: "name",
name: "name"});
}
}, {
@@ -171,6 +173,8 @@ define(["dojo/_base/lang",
accessControlProvider ? accessControlProvider : {},
"api/latest/accesscontrolprovider" + (name ? "/" + encodeURIComponent(name.name) : ""),
accessControlProvider ? "Edit access control provider - " + accessControlProvider.name : "Add access control provider",
+ "AccessControlProvider",
+ accessControlProvider && accessControlProvider.type ? accessControlProvider.type : "AclFile",
accessControlProvider ? false : true);
};
return addAccessControlProvider;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
index 8e70b78446..ac4937da68 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
@@ -386,7 +386,9 @@ define(["dojo/_base/connect",
that.queueChooser = new FilteringSelect({ id: "addBindingSelectQueue",
name: "queue",
store: queueStore,
- searchAttr: "name"}, input);
+ searchAttr: "name",
+ promptMessage: "Name of the queue",
+ title: "Select the name of the queue"}, input);
if(obj.queue)
{
@@ -414,7 +416,9 @@ define(["dojo/_base/connect",
that.exchangeChooser = new FilteringSelect({ id: "addBindingSelectExchange",
name: "exchange",
store: exchangeStore,
- searchAttr: "name"}, input);
+ searchAttr: "name",
+ promptMessage: "Name of the exchange",
+ title: "Select the name of the exchange"}, input);
if(obj.exchange)
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
index 5f01b9769b..82281ad3d3 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
@@ -56,6 +56,8 @@ define(["dojo/_base/lang",
disabled: groupProvider.name ? true : false,
label: "Name*:",
regexp: "^[\x20-\x2e\x30-\x7F]{1,255}$",
+ promptMessage: "Name of group provider.",
+ placeHolder: "name",
name: "name"});
}
}, {
@@ -171,6 +173,8 @@ define(["dojo/_base/lang",
groupProvider ? groupProvider : {},
"api/latest/groupprovider" + (name ? "/" + encodeURIComponent(name.name) : ""),
groupProvider ? "Edit group provider - " + groupProvider.name : "Add group provider",
+ "Group",
+ groupProvider && groupProvider.type ? groupProvider.type : "Group",
groupProvider ? false : true);
};
return addGroupProvider;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js
index 0ec8fb6c6c..e7e79e742d 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js
@@ -57,6 +57,8 @@ define(["dojo/_base/lang",
disabled: keystore.name ? true : false,
label: "Name:",
regExpGen: util.nameOrContextVarRegexp,
+ promptMessage: "Name of keystore. Used to refer to the keystore from other objects within the Broker.",
+ placeHolder: "name",
name: "name"});
}
}, {
@@ -66,6 +68,8 @@ define(["dojo/_base/lang",
required: true,
value: keystore.path,
label: "Path to keystore:",
+ promptMessage: "File system location to the keystore file",
+ placeHolder: "path/to/keystore",
name: "path"});
}
}, {
@@ -75,7 +79,7 @@ define(["dojo/_base/lang",
return new dijit.form.ValidationTextBox({
required: false,
label: "Keystore password:",
- invalidMessage: "Missed keystore password",
+ promptMessage: "Password used to open the keystore",
name: "password",
placeHolder: keystore["password"] ? keystore["password"] : ""
});
@@ -96,10 +100,11 @@ define(["dojo/_base/lang",
}
fields.push({
name: "Options",
+
createWidget: function(keystore) {
var optionalFieldContainer = new dojox.layout.TableContainer({
cols: 1,
- "labelWidth": "290",
+ "labelWidth": "300",
showLabels: true,
orientation: "horiz",
customClass: "formLabel"
@@ -110,12 +115,16 @@ define(["dojo/_base/lang",
required: false,
value: keystore.certificateAlias,
label: "Keystore certificate alias:",
- name: "certificateAlias"}));
+ name: "certificateAlias",
+ placeHolder: "alias",
+ promptMessage: "Used to identify one certificate in a store that has many"}));
+
optionalFieldContainer.addChild( new dijit.form.ValidationTextBox({
required: false,
value: keystore.keyManagerFactoryAlgorithm,
label: "Key manager factory algorithm:",
- placeHolder: "Use default",
+ placeHolder: "algorithm name",
+ promptMessage: "Name of the key manager algorithm known to Java",
name: "keyManagerFactoryAlgorithm"}));
}
else
@@ -124,16 +133,20 @@ define(["dojo/_base/lang",
required: false,
value: keystore.trustManagerFactoryAlgorithm,
label: "Trust manager factory algorithm:",
- placeHolder: "Use default",
+ placeHolder: "algorithm name",
+ promptMessage: "Name of the trust manager algorithm known to Java",
name: "trustManagerFactoryAlgorithm"}));
}
optionalFieldContainer.addChild(new dijit.form.ValidationTextBox({
required: false,
value: isKeystore ? keystore.keyStoreType : keystore.trustStoreType,
label: "Key store type:",
- placeHolder: "Use default",
+ placeHolder: "store type",
+ promptMessage: "Name of the store type known to Java",
name: isKeystore ? "keyStoreType" : "trustStoreType"}));
+
var panel = new dijit.TitlePane({title: "Optional Attributes", content: optionalFieldContainer.domNode, open: false});
+
return panel;
}
});
@@ -148,6 +161,8 @@ define(["dojo/_base/lang",
keystore ? keystore : {},
keystore ? putURL : "api/latest/keystore",
keystore ? "Edit keystore - " + keystore.name : "Add keystore",
+ "KeyStore",
+ keystore && keystore.type ? keystore.type : "FileKeyStore", // GET?actuals=true doesn't get type for objects of the default type for the category
keystore ? false : true);
};
@@ -158,6 +173,8 @@ define(["dojo/_base/lang",
truststore ? truststore : {},
truststore ? putURL : "api/latest/truststore",
truststore ? "Edit truststore - " + truststore.name : "Add truststore",
+ "TrustStore",
+ truststore && truststore.type ? truststore.type : "FileTrustStore",
truststore ? false : true);
};
return addKeystore;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
index 34e2d58afb..0c8a4660fd 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
@@ -72,7 +72,7 @@ define(["dojo/_base/xhr",
}
for(var propName in formValues)
{
- if(formValues.hasOwnProperty(propName))
+ if(formValues.hasOwnProperty(propName) && formValues[propName])
{
if (propName == "needClientAuth" || propName == "wantClientAuth")
{
@@ -81,6 +81,12 @@ define(["dojo/_base/xhr",
else if (propName === "protocols")
{
var val = formValues[propName];
+
+ if(val === "" || (lang.isArray(val) && val.length == 0) )
+ {
+ continue;
+ }
+
if (!lang.isArray(val))
{
val = [ val ];
@@ -91,7 +97,7 @@ define(["dojo/_base/xhr",
{
var val = formValues[propName];
- if(val === "")
+ if(val === "" || (lang.isArray(val) && val.length == 0) )
{
continue;
}
@@ -170,20 +176,20 @@ define(["dojo/_base/xhr",
registry.byId("formAddPort.wantClientAuth").set("disabled", true);
}
- var transportSSLPanel = registry.byId("formAddPort:fieldsTransportSSL");
- var transportSSLPanelDisplay = transportSSLPanel.domNode.style.display;
+ var transportSSLPanelNode = dom.byId("formAddPort:fieldsTransportSSL");
+ var transportSSLPanelDisplay = transportSSLPanelNode.style.display;
if (transportType == "SSL" || (lang.isArray(transportType) && array.indexOf(transportType, "SSL")>=0))
{
- transportSSLPanel.domNode.style.display = "block";
+ transportSSLPanelNode.style.display = "block";
registry.byId("formAddPort.keyStore").set("disabled", false);
}
else
{
- transportSSLPanel.domNode.style.display = "none";
+ transportSSLPanelNode.style.display = "none";
registry.byId("formAddPort.keyStore").set("disabled", true);
}
- if (transportSSLPanel.domNode.style.display != transportSSLPanelDisplay && transportSSLPanel.domNode.style.display=="block")
+ if (transportSSLPanelNode.style.display != transportSSLPanelDisplay && transportSSLPanelNode.style.display=="block")
{
registry.byId("formAddPort.trustStores").resize();
}
@@ -216,7 +222,7 @@ define(["dojo/_base/xhr",
var store = typeWidget.store;
store.data.forEach(function(option){
registry.byId("formAddPort.protocols" + option.value).set("disabled", true);
- registry.byId("formAddPort:fields" + option.value).domNode.style.display = "none";
+ dom.byId("formAddPort:fields" + option.value).style.display = "none";
});
var isAMQP = ("AMQP" == newValue);
@@ -226,7 +232,7 @@ define(["dojo/_base/xhr",
registry.byId("formAddPort.needClientAuth").set("enabled", isAMQP || isHTTP);
registry.byId("formAddPort.wantClientAuth").set("enabled", isAMQP || isHTTP);
- registry.byId("formAddPort:fields" + newValue).domNode.style.display = "block";
+ dom.byId("formAddPort:fields" + newValue).style.display = "block";
var defaultsAMQPProtocols = registry.byId("formAddPort.protocolsDefault");
defaultsAMQPProtocols.set("disabled", "AMQP" != newValue)
var protocolsWidget = registry.byId("formAddPort.protocols" + newValue);
@@ -267,9 +273,9 @@ define(["dojo/_base/xhr",
}
transportWidget.set("disabled", disableTransportWidget);
registry.byId("formAddPort.authenticationProvider").set("disabled", isRMI);
- registry.byId("formAddPort:fieldsAuthenticationProvider").domNode.style.display = isRMI? "none" : "block";
- registry.byId("formAddPort:fieldsBindingAddress").domNode.style.display = newValue == "JMX" ? "none" : "block";
- registry.byId("formAddPort:transport").domNode.style.display = isRMI ? "none" : "block";
+ dom.byId("formAddPort:fieldsAuthenticationProvider").style.display = isRMI? "none" : "block";
+ dom.byId("formAddPort:fieldsBindingAddress").style.display = newValue == "JMX" ? "none" : "block";
+ dom.byId("formAddPort:transport").style.display = isRMI ? "none" : "block";
@@ -277,23 +283,6 @@ define(["dojo/_base/xhr",
theForm = registry.byId("formAddPort");
- var containers = ["formAddPort:fields", "formAddPort:fieldsTransportSSL", "formAddPort:fieldsAMQP",
- "formAddPort:fieldsJMX", "formAddPort:fieldsHTTP", "formAddPort:transport",
- "formAddPort:fieldsClientAuthCheckboxes", "formAddPort:fieldsAuthenticationProvider", "formAddPort:fieldsBindingAddress"];
- var labelWidthValue = "200";
- for(var i = 0; i < containers.length; i++)
- {
- var containerId = containers[i];
- var fields = new dojox.layout.TableContainer( {
- cols: 1,
- labelWidth: labelWidthValue,
- showLabels: true,
- orientation: "horiz",
- customClass: "formLabel"
- }, dom.byId(containerId));
- fields.startup();
- }
-
registry.byId("formAddPort.protocolsJMX").on("change", function(newValue){
var isRMI = newValue == "RMI";
var transportWidget = registry.byId("formAddPort.transports");
@@ -302,8 +291,8 @@ define(["dojo/_base/xhr",
transportWidget.set("value", "TCP");
}
transportWidget.set("disabled", isRMI);
- registry.byId("formAddPort:transport").domNode.style.display = isRMI ? "none" : "block";
- registry.byId("formAddPort:fieldsAuthenticationProvider").domNode.style.display = isRMI? "none" : "block";
+ dom.byId("formAddPort:transport").style.display = isRMI ? "none" : "block";
+ dom.byId("formAddPort:fieldsAuthenticationProvider").style.display = isRMI? "none" : "block";
registry.byId("formAddPort.authenticationProvider").set("disabled", isRMI);
});
@@ -365,6 +354,7 @@ define(["dojo/_base/xhr",
}
var keystoreWidget = registry.byId("formAddPort.keyStore");
+
if (keystores)
{
var data = [];
@@ -408,7 +398,7 @@ define(["dojo/_base/xhr",
var nameWidget = registry.byId("formAddPort.name");
nameWidget.set("value", port.name);
nameWidget.set("disabled", true);
- nameWidget.set("regExpGen", util.nameOrContextVarRegexp);
+
dom.byId("formAddPort.id").value=port.id;
providerWidget.set("value", port.authenticationProvider ? port.authenticationProvider : "");
keystoreWidget.set("value", port.keyStore ? port.keyStore : "");
@@ -444,7 +434,7 @@ define(["dojo/_base/xhr",
var store = typeWidget.store;
store.data.forEach(function(option){
registry.byId("formAddPort.protocols" + option.value).set("disabled", true);
- registry.byId("formAddPort:fields" + option.value).domNode.style.display = "none";
+ dom.byId("formAddPort:fields" + option.value).style.display = "none";
});
// identify the type of port using first protocol specified in protocol field if provided
@@ -487,7 +477,7 @@ define(["dojo/_base/xhr",
var addressWidget = registry.byId("formAddPort.bindingAddress");
addressWidget.set("value", port.bindingAddress)
}
- registry.byId("formAddPort:fields" + typeWidget.value).domNode.style.display = "block";
+ dom.byId("formAddPort:fields" + typeWidget.value).style.display = "block";
typeWidget.set("disabled", true);
keystoreWidget.initialValue = port.keyStore;
@@ -496,21 +486,33 @@ define(["dojo/_base/xhr",
providerWidget.initialValue = providerWidget.value;
registry.byId("addPort").show();
- });
+ util.applyMetadataToWidgets(registry.byId("addPort").domNode, "Port", typeWidget.get("value"));
+
+ });
}
else
{
+ // Creating new port
var typeWidget = registry.byId("formAddPort.type");
if (typeWidget.get("disabled"))
{
typeWidget.set("disabled", false);
}
typeWidget.set("value", "AMQP");
- var name = registry.byId("formAddPort.name");
- name.set("disabled", false);
+
+ var nameWidget = registry.byId("formAddPort.name");
+ nameWidget.set("disabled", false);
+ nameWidget.set("regExpGen", util.nameOrContextVarRegexp);
+
+ var portWidget = registry.byId("formAddPort.port");
+ portWidget.set("regExpGen", util.numericOrContextVarRegexp);
+
editWarning.style.display = "none";
registry.byId("addPort").show();
+
+ util.applyMetadataToWidgets(registry.byId("addPort").domNode, "Port", "AMQP");
}
+
};
return addPort;
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 5a1ea48b3e..c66b99ee4c 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',
+ 'qpid/common/util',
"dijit/form/NumberSpinner", // required by the form
/* dojox/ validate resources */
"dojox/validate/us", "dojox/validate/web",
@@ -41,7 +42,7 @@ 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) {
+ function (xhr, dom, construct, win, registry, parser, array, event, json, util) {
var addQueue = {};
@@ -147,6 +148,8 @@ define(["dojo/_base/xhr",
{
dijit.byId('formAddQueue.' + requiredFields[widgetValue]).required = isChecked;
}
+
+ util.applyMetadataToWidgets(obj.domNode, "Queue", widgetValue);
}
})
}
@@ -192,9 +195,12 @@ define(["dojo/_base/xhr",
addQueue.show = function(data) {
addQueue.vhost = data.virtualhost;
addQueue.vhostnode = data.virtualhostnode;
- registry.byId("formAddQueue").reset();
+ var form = registry.byId("formAddQueue");
+ form.reset();
registry.byId("addQueue").show();
- };
+ util.applyMetadataToWidgets(form.domNode, "Queue", "standard");
+
+ };
return addQueue;
});
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
index 2eac2094e5..ede0c4bc48 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
@@ -34,6 +34,7 @@ define(["dojo/_base/xhr",
"dijit/form/FilteringSelect",
"qpid/common/properties",
"qpid/common/util",
+ "qpid/common/metadata",
"dojo/text!addVirtualHostNodeAndVirtualHost.html",
"dijit/form/Form",
"dijit/form/CheckBox",
@@ -41,7 +42,7 @@ define(["dojo/_base/xhr",
"dojox/validate/us",
"dojox/validate/web",
"dojo/domReady!"],
- function (xhr, event, lang, array, dom, domConstruct, json, parser, Memory, fobject, registry, Dialog, Button, FilteringSelect, properties, util, template)
+ function (xhr, event, lang, array, dom, domConstruct, json, parser, Memory, fobject, registry, Dialog, Button, FilteringSelect, properties, util, metadata, template)
{
var addVirtualHostNodeAndVirtualHost =
@@ -71,38 +72,26 @@ define(["dojo/_base/xhr",
this.virtualHostType = registry.byId("addVirtualHost.type");
this.virtualHostType.set("disabled", true);
- xhr.get({sync: properties.useSyncGet, handleAs: "json", url: "api/latest/broker?depth=0", load: function(data){that._onBrokerData(data[0]) }});
- },
- _makeTypeStore: function (types) {
- var typeData = [];
- for (var i = 0; i < types.length; i++) {
- var type = types[i];
- typeData.push({id: type, name: type});
- }
- return new Memory({ data: typeData });
- },
- _onBrokerData: function(brokerData)
- {
- var that=this;
- this.supportedVirtualHostNodeTypes = brokerData.supportedVirtualHostNodeTypes;
- this.supportedVirtualHostNodeTypes.sort();
- this.supportedVirtualHostTypes = brokerData.supportedVirtualHostTypes;
- this.supportedVirtualHostTypes.sort();
+ this.supportedVirtualHostNodeTypes = metadata.getTypesForCategory("VirtualHostNode");
+ this.supportedVirtualHostNodeTypes.sort();
+ this.supportedVirtualHostTypes = metadata.getTypesForCategory("VirtualHost");
+ this.supportedVirtualHostTypes.sort();
- //VH Type BDB_HA_REPLICA is not user creatable. This is only needed until we have model meta data available.
- this.supportedVirtualHostTypes = array.filter(this.supportedVirtualHostTypes, function(item){
- return item != "BDB_HA_REPLICA" && item != "BDB_HA";
- });
+ //VH Type BDB_HA_REPLICA is not user creatable. This is only needed until we have model meta data available.
+ this.supportedVirtualHostTypes = array.filter(this.supportedVirtualHostTypes, function(item){
+ return item != "BDB_HA_REPLICA" && item != "BDB_HA";
+ });
- var virtualHostNodeTypeStore = this._makeTypeStore(this.supportedVirtualHostNodeTypes);
- this.virtualHostNodeType.set("store", virtualHostNodeTypeStore);
- this.virtualHostNodeType.set("disabled", false);
- this.virtualHostNodeType.on("change", function(type){that._vhnTypeChanged(type, that.virtualHostNodeTypeFieldsContainer, "qpid/management/virtualhostnode/");});
+ var virtualHostNodeTypeStore = util.makeTypeStore(this.supportedVirtualHostNodeTypes);
+ this.virtualHostNodeType.set("store", virtualHostNodeTypeStore);
+ this.virtualHostNodeType.set("disabled", false);
+ this.virtualHostNodeType.on("change", function(type){that._vhnTypeChanged(type, that.virtualHostNodeTypeFieldsContainer, "qpid/management/virtualhostnode/");});
+
+ this.virtualHostTypeStore = util.makeTypeStore(this.supportedVirtualHostTypes);
+ this.virtualHostType.set("store", this.virtualHostTypeStore);
+ this.virtualHostType.set("disabled", false);
+ this.virtualHostType.on("change", function(type){that._vhTypeChanged(type, that.virtualHostTypeFieldsContainer, "qpid/management/virtualhost/");});
- this.virtualHostTypeStore = this._makeTypeStore(this.supportedVirtualHostTypes);
- this.virtualHostType.set("store", this.virtualHostTypeStore);
- this.virtualHostType.set("disabled", false);
- this.virtualHostType.on("change", function(type){that._vhTypeChanged(type, that.virtualHostTypeFieldsContainer, "qpid/management/virtualhost/");});
},
show: function()
{
@@ -132,13 +121,14 @@ define(["dojo/_base/xhr",
{
this._processDropDownsForBdbHa(type);
this._processDropDownsForJson(type);
- this._typeChanged(type, typeFieldsContainer, urlStem);
+
+ this._typeChanged(type, typeFieldsContainer, urlStem, "VirtualHostNode");
},
_vhTypeChanged: function (type, typeFieldsContainer, urlStem)
{
- this._typeChanged(type, typeFieldsContainer, urlStem);
+ this._typeChanged(type, typeFieldsContainer, urlStem, "VirtualHost");
},
- _typeChanged: function (type, typeFieldsContainer, urlStem)
+ _typeChanged: function (type, typeFieldsContainer, urlStem, category)
{
var widgets = registry.findWidgets(typeFieldsContainer);
array.forEach(widgets, function(item) { item.destroyRecursive();});
@@ -148,11 +138,13 @@ define(["dojo/_base/xhr",
{
var that = this;
require([urlStem + type.toLowerCase() + "/add"],
- function(TypeUI)
+ function(typeUI)
{
try
{
- TypeUI.show({containerNode:typeFieldsContainer, parent: that});
+ typeUI.show({containerNode:typeFieldsContainer, parent: that});
+
+ util.applyMetadataToWidgets(typeFieldsContainer,category, type);
}
catch(e)
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js
index 1a24e5e770..a959586655 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js
@@ -56,6 +56,7 @@ define(["dojo/_base/xhr",
var that=this;
this.containerNode = domConstruct.create("div", {innerHTML: template});
parser.parse(this.containerNode);
+ this.allFieldsContainer = dom.byId("editVirtualHost.allFields");
this.typeFieldsContainer = dom.byId("editVirtualHost.typeFields");
this.dialog = registry.byId("editVirtualHostDialog");
this.saveButton = registry.byId("editVirtualHost.saveButton");
@@ -176,6 +177,8 @@ define(["dojo/_base/xhr",
{
TypeUI.show({containerNode:that.typeFieldsContainer, parent: that, data: virtualHostData});
that.form.connectChildren();
+
+ util.applyMetadataToWidgets(that.allFieldsContainer, "VirtualHost", virtualHostData.type);
}
catch(e)
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js
index 704063ae16..3c78eaa29c 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js
@@ -147,6 +147,8 @@ define(["dojo/_base/xhr",
{
TypeUI.show({containerNode:that.typeFieldsContainer, parent: that, data: nodeData});
that.form.connectChildren();
+
+ util.applyMetadataToWidgets(that.allFieldsContainer, "VirtualHostNode", nodeData.type);
}
catch(e)
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementhttp.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementhttp.js
index 07c5c25171..69f520bf42 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementhttp.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementhttp.js
@@ -139,7 +139,9 @@ define(["dojo/_base/xhr",
widgetFactories,
data,
"api/latest/plugin/" + encodeURIComponent(data.name),
- "Edit plugin - " + data.name);
+ "Edit plugin - " + data.name,
+ "Plugin",
+ "MANAGEMENT-HTTP");
};
function ManagementHttpUpdater(node, pluginObject, controller)
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementjmx.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementjmx.js
index 78d06da51f..3579d258e9 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementjmx.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/plugin/managementjmx.js
@@ -86,7 +86,9 @@ define(["dojo/_base/xhr",
widgetFactories,
data,
"api/latest/plugin/" + encodeURIComponent(data.name),
- "Edit plugin - " + data.name);
+ "Edit plugin - " + data.name,
+ "Plugin",
+ "MANAGEMENT-JMX");
};
function ManagementJmxUpdater(node, pluginObject, controller)