You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2016/12/28 18:27:13 UTC
svn commit: r1776316 - in
/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management:
Exchange.js Queue.js addBinding.js
Author: orudyy
Date: Wed Dec 28 18:27:12 2016
New Revision: 1776316
URL: http://svn.apache.org/viewvc?rev=1776316&view=rev
Log:
QPID-6028: Fix binding creation/deletion/listing UI in Web Management Console
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js?rev=1776316&r1=1776315&r2=1776316&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js Wed Dec 28 18:27:12 2016
@@ -22,6 +22,9 @@ define(["dojo/_base/xhr",
"dojo/parser",
"dojo/query",
"dojo/_base/connect",
+ "dojo/json",
+ "dojo/_base/lang",
+ "dojo/promise/all",
"dijit/registry",
"qpid/common/properties",
"qpid/common/updater",
@@ -37,6 +40,9 @@ define(["dojo/_base/xhr",
parser,
query,
connect,
+ json,
+ lang,
+ all,
registry,
properties,
updater,
@@ -129,15 +135,38 @@ define(["dojo/_base/xhr",
Exchange.prototype.deleteBindings = function ()
{
- util.deleteSelectedObjects(this.exchangeUpdater.bindingsGrid.grid,
+ var deletePromises = [];
+ var deleteSelectedBindings = lang.hitch(this, function (data)
+ {
+ for (var i = 0; i < data.length; i++)
+ {
+ var selectedItem = data[i];
+ var promise = this.management.update({
+ type: "exchange",
+ name: "unbind",
+ parent: this.modelObj
+ },
+ {
+ destination: selectedItem.destination,
+ bindingKey: selectedItem.bindingKey
+ });
+ promise.then(lang.hitch(this, function ()
+ {
+ this.exchangeUpdater.bindingsGrid.grid.selection.setSelected(selectedItem, false);
+ }));
+ deletePromises.push(promise);
+ }
+ });
+ util.confirmAndDeleteGridSelection(
+ this.exchangeUpdater.bindingsGrid.grid,
"Are you sure you want to delete binding",
- this.management,
+ deleteSelectedBindings);
+ all(deletePromises)
+ .then(lang.hitch(this, function ()
{
- type: "binding",
- parent: this.modelObj
- },
- this.exchangeUpdater);
- }
+ this.exchangeUpdater.update();
+ }));
+ };
function ExchangeUpdater(exchangeTab)
{
@@ -186,16 +215,20 @@ define(["dojo/_base/xhr",
that.bindingsGrid = new UpdatableStore([], findNode("bindings"), [{
name: "Queue",
- field: "queue",
+ field: "destination",
width: "40%"
}, {
name: "Binding Key",
- field: "name",
+ field: "bindingKey",
width: "30%"
}, {
name: "Arguments",
- field: "argumentString",
- width: "30%"
+ field: "arguments",
+ width: "30%",
+ formatter: function (arguments)
+ {
+ return arguments ? json.stringify(arguments) : ""
+ }
}], null, {
keepSelection: true,
plugins: {
@@ -246,21 +279,11 @@ define(["dojo/_base/xhr",
util.flattenStatistics(thisObj.exchangeData);
- var bindings = thisObj.exchangeData["bindings"];
-
- if (bindings)
+ var bindings = thisObj.exchangeData.bindings || [];
+ for (var i = 0; i < bindings.length; i++)
{
- for (var i = 0; i < bindings.length; i++)
- {
- if (bindings[i].arguments)
- {
- bindings[i].argumentString = dojo.toJson(bindings[i].arguments);
- }
- else
- {
- bindings[i].argumentString = "";
- }
- }
+ bindings[i].name = bindings[i].bindingKey + "\" for \"" + bindings[i].destination;
+ bindings[i].id = bindings[i].destination + "/" + bindings[i].bindingKey;
}
var sampleTime = new Date();
@@ -300,7 +323,10 @@ define(["dojo/_base/xhr",
thisObj.bytesDrop = bytesDrop;
// update bindings
- thisObj.bindingsGrid.update(thisObj.exchangeData.bindings)
+ if (thisObj.bindingsGrid.update(bindings))
+ {
+ thisObj.bindingsGrid.grid._refresh();
+ }
}, function (error)
{
@@ -327,7 +353,7 @@ define(["dojo/_base/xhr",
that.contentPane.destroyRecursive();
}, util.xhrErrorHandler);
}
- }
+ };
return Exchange;
});
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js?rev=1776316&r1=1776315&r2=1776316&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js Wed Dec 28 18:27:12 2016
@@ -26,6 +26,7 @@ define(["dojo/_base/declare",
"dojo/_base/connect",
"dojo/_base/event",
"dojo/json",
+ "dojo/promise/all",
"qpid/common/properties",
"qpid/common/updater",
"qpid/common/util",
@@ -51,6 +52,7 @@ define(["dojo/_base/declare",
connect,
event,
json,
+ all,
properties,
updater,
util,
@@ -419,17 +421,17 @@ define(["dojo/_base/declare",
that.queueData = {};
that.bindingsGrid = new UpdatableStore([], findNode("bindings"), [{
- name: "Exchange",
- field: "exchange",
- width: "40%"
- }, {
name: "Binding Key",
- field: "name",
- width: "30%"
+ field: "bindingKey",
+ width: "60%"
}, {
name: "Arguments",
- field: "argumentString",
- width: "30%"
+ field: "arguments",
+ width: "40%",
+ formatter: function (arguments)
+ {
+ return arguments ? json.stringify(arguments) : ""
+ }
}]);
that.consumersGrid = new UpdatableStore([], findNode("consumers"), [{
@@ -523,14 +525,14 @@ define(["dojo/_base/declare",
var thisObj = this;
- this.management.load(this.modelObj, {
- excludeInheritedContext: true,
- depth: 1
- })
+ var queuePromise = this.management.load(this.modelObj, {excludeInheritedContext: true, depth: 1 });
+ var publishingLinkPromise = this.management.load({type: "queue", name: "getPublishingLinks", parent: this.modelObj});
+
+ all({queue: queuePromise, publishingLinks: publishingLinkPromise})
.then(function (data)
{
var i, j;
- thisObj.queueData = data[0];
+ thisObj.queueData = data.queue[0];
util.flattenStatistics(thisObj.queueData);
if (callback)
{
@@ -539,12 +541,10 @@ define(["dojo/_base/declare",
var bindings = thisObj.queueData["bindings"];
var consumers = thisObj.queueData["consumers"];
- if (bindings)
+ var bindings = data.publishingLinks || [];
+ for (i = 0; i < bindings.length; i++)
{
- for (i = 0; i < bindings.length; i++)
- {
- bindings[i].argumentString = json.stringify(bindings[i].arguments);
- }
+ bindings[i].id = i;
}
thisObj.updateHeader();
@@ -630,7 +630,7 @@ define(["dojo/_base/declare",
thisObj.consumers = consumers;
// update bindings
- thisObj.bindingsGrid.update(thisObj.queueData.bindings);
+ thisObj.bindingsGrid.update(bindings);
// update consumers
thisObj.consumersGrid.update(thisObj.queueData.consumers)
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js?rev=1776316&r1=1776315&r2=1776316&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js Wed Dec 28 18:27:12 2016
@@ -150,71 +150,11 @@ define(["dojo/_base/connect",
var node = construct.create("div", null, win.body(), "last");
- var convertToBinding = function convertToBinding(formValues)
- {
- var newBinding = {};
-
- newBinding.name = formValues.name;
- for (var propName in formValues)
- {
- if (formValues.hasOwnProperty(propName))
- {
- if (propName === "durable")
- {
- if (formValues.durable[0] && formValues.durable[0] == "durable")
- {
- newBinding.durable = true;
- }
- }
- else
- {
- if (formValues[propName] !== "")
- {
- newBinding[propName] = formValues[propName];
- }
- }
-
- }
- }
- if (addBinding.queue)
- {
- newBinding.queue = addBinding.queue;
- }
- if (addBinding.exchange)
- {
- newBinding.exchange = addBinding.exchange;
- }
-
- addBinding.bindingArgumentsGrid.store.fetch({
- onComplete: function (items, request)
- {
- if (items.length)
- {
- array.forEach(items, function (item)
- {
- if (item && item.name && item.value)
- {
- var bindingArguments = newBinding.arguments;
- if (!bindingArguments)
- {
- bindingArguments = {};
- newBinding.arguments = bindingArguments;
- }
- bindingArguments[item.name] = item.value;
- }
- });
- }
- }
- });
- return newBinding;
- };
-
- var theForm;
node.innerHTML = template;
addBinding.dialogNode = dom.byId("addBinding");
parser.instantiate([addBinding.dialogNode]);
- theForm = registry.byId("formAddBinding");
+ var theForm = registry.byId("formAddBinding");
array.forEach(theForm.getDescendants(), function (widget)
{
if (widget.name === "type")
@@ -360,35 +300,55 @@ define(["dojo/_base/connect",
event.stop(e);
if (theForm.validate())
{
+ var formValues = util.getFormWidgetValues(registry.byId("formAddBinding"));
+ var parameters = {
+ destination: formValues.queue,
+ bindingKey: formValues.name,
+ replaceExistingArguments: false
+ };
+ addBinding.bindingArgumentsGrid.store.fetch({
+ onComplete: function (items, request)
+ {
+ if (items.length)
+ {
+ array.forEach(items, function (item)
+ {
+ if (item && item.name && item.value)
+ {
+ parameters.arguments = parameters.arguments || {};
+ parameters.arguments[item.name] = item.value;
+ }
+ });
+ }
+ }
+ });
- var newBinding = convertToBinding(util.getFormWidgetValues(registry.byId("formAddBinding")));
- var that = this;
- var model = null;
- if (addBinding.modelObj.type == "exchange")
- {
- model = {
- name: newBinding.queue,
- type: "queue",
- parent: addBinding.modelObj
- };
- }
- else
+ var exchangeModelObj = addBinding.modelObj;
+ if (exchangeModelObj.type !== "exchange")
{
- model = {
- name: newBinding.queue,
- type: "queue",
- parent: {
- name: newBinding.exchange,
- type: "exchange",
- parent: addBinding.modelObj.parent
- }
+ exchangeModelObj = {
+ name: formValues.exchange,
+ type: "exchange",
+ parent: exchangeModelObj.parent
};
}
- addBinding.management.create("binding", model, newBinding)
+ var operationModelObj = {
+ name: "bind",
+ type: "exchange",
+ parent: exchangeModelObj
+ };
+ addBinding.management.update(operationModelObj, parameters)
.then(function (x)
{
- registry.byId("addBinding")
- .hide();
+ if (x !== 'true' && x !== true)
+ {
+ alert("Binding was not created.");
+ }
+ else
+ {
+ registry.byId("addBinding")
+ .hide();
+ }
});
return false;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org