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]