Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 80961200BEB for ; Wed, 28 Dec 2016 19:27:16 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 7B450160B2E; Wed, 28 Dec 2016 18:27:16 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 53A17160B2A for ; Wed, 28 Dec 2016 19:27:15 +0100 (CET) Received: (qmail 47430 invoked by uid 500); 28 Dec 2016 18:27:14 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 47421 invoked by uid 99); 28 Dec 2016 18:27:14 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Dec 2016 18:27:14 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id CD7AA3A0315 for ; Wed, 28 Dec 2016 18:27:13 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1776316 - in /qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management: Exchange.js Queue.js addBinding.js Date: Wed, 28 Dec 2016 18:27:13 -0000 To: commits@qpid.apache.org From: orudyy@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20161228182713.CD7AA3A0315@svn01-us-west.apache.org> archived-at: Wed, 28 Dec 2016 18:27:16 -0000 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