Repository: qpid-broker-j Updated Branches: refs/heads/master 8d9ba1c47 -> 60f062201
QPID-7316: [Web Management] Add connection info to consumer table on the queue tab Also added consumer table details to the connection tab. Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/60f06220 Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/60f06220 Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/60f06220 Branch: refs/heads/master Commit: 60f062201ee349ded188b697700ae3b677a62e88 Parents: 8d9ba1c Author: Keith Wall <[email protected]> Authored: Fri Jun 2 22:10:50 2017 +0100 Committer: Keith Wall <[email protected]> Committed: Sat Jun 3 09:43:18 2017 +0100 ---------------------------------------------------------------------- .../org/apache/qpid/server/model/Consumer.java | 6 +- .../apache/qpid/server/queue/QueueConsumer.java | 5 + .../src/main/java/resources/css/common.css | 18 +++ .../java/resources/js/qpid/common/formatter.js | 7 +- .../main/java/resources/js/qpid/common/util.js | 47 +++--- .../resources/js/qpid/management/Connection.js | 99 +++++++++++++ .../java/resources/js/qpid/management/Queue.js | 147 +++++++++++++------ .../resources/js/qpid/management/VirtualHost.js | 8 +- .../src/main/java/resources/showConnection.html | 5 +- .../src/main/java/resources/showQueue.html | 11 +- 10 files changed, 267 insertions(+), 86 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java ---------------------------------------------------------------------- diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java b/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java index 2302665..9db4b21 100644 --- a/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java +++ b/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java @@ -47,6 +47,9 @@ public interface Consumer<X extends Consumer<X,T>, T extends ConsumerTarget> ext @DerivedAttribute String getLinkName(); + @DerivedAttribute + Session<?> getSession(); + @ManagedAttribute(immutable = true) String getDistributionMode(); @@ -79,9 +82,6 @@ public interface Consumer<X extends Consumer<X,T>, T extends ConsumerTarget> ext @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.MESSAGES, label = "Prefetch") long getUnacknowledgedMessages(); - - AMQPSession<?,?> getSession(); - long getConsumerNumber(); boolean isSuspended(); http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumer.java ---------------------------------------------------------------------- diff --git a/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumer.java b/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumer.java index 882968b..cc060f5 100644 --- a/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumer.java +++ b/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumer.java @@ -24,6 +24,8 @@ import org.apache.qpid.server.consumer.ConsumerTarget; import org.apache.qpid.server.message.MessageInstance; import org.apache.qpid.server.model.Consumer; import org.apache.qpid.server.model.Queue; +import org.apache.qpid.server.model.Session; +import org.apache.qpid.server.session.AMQPSession; public interface QueueConsumer<X extends QueueConsumer<X,T>, T extends ConsumerTarget> extends Consumer<X, T> { @@ -56,4 +58,7 @@ public interface QueueConsumer<X extends QueueConsumer<X,T>, T extends ConsumerT void notifyWork(); void setQueueConsumerNode(QueueConsumerNode node); + + @Override + AMQPSession<?,?> getSession(); } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-plugins/management-http/src/main/java/resources/css/common.css ---------------------------------------------------------------------- diff --git a/broker-plugins/management-http/src/main/java/resources/css/common.css b/broker-plugins/management-http/src/main/java/resources/css/common.css index 3e787df..21f6acd 100644 --- a/broker-plugins/management-http/src/main/java/resources/css/common.css +++ b/broker-plugins/management-http/src/main/java/resources/css/common.css @@ -521,6 +521,7 @@ td.advancedSearchField, col.autoWidth { } .claro.qpid .dgrid-header .dgrid-cell { font-weight: normal; } + .virtualHostConnections .field-name { width: 20%; } .virtualHostConnections .field-principal { width: 10% } .virtualHostConnections .field-port { width: 10% } @@ -531,6 +532,23 @@ td.advancedSearchField, col.autoWidth { .virtualHostConnections .field-msgOutRate { width: 10% } .virtualHostConnections .field-bytesOutRate { width: 10% } +.queueConsumers .field-name { width: 30%; } +.queueConsumers .field-distributionMode { width: 10% } +.queueConsumers .field-connectionName { width: 10% } +.queueConsumers .field-connectionPrincipal { width: 10% } +.queueConsumers .field-unacknowledgedMessages { width: 10% } +.queueConsumers .field-unacknowledgedBytes { width: 10% } +.queueConsumers .field-msgOutRate { width: 10% } +.queueConsumers .field-bytesOutRate { width: 10% } + +.connectionConsumers .field-name { width: 30%; } +.connectionConsumers .field-distributionMode { width: 10% } +.connectionConsumers .field-queueName { width: 20% } +.connectionConsumers .field-unacknowledgedMessages { width: 10% } +.connectionConsumers .field-unacknowledgedBytes { width: 10% } +.connectionConsumers .field-msgOutRate { width: 10% } +.connectionConsumers .field-bytesOutRate { width: 10% } + .radioButtonIndent { padding-left: 20px; padding-top: 5px; http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js ---------------------------------------------------------------------- diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js index 3347e7e..59174c3 100644 --- a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js +++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js @@ -27,13 +27,16 @@ define(function () { var returnVal = { units: "B", - value: "0" + value: "0", + toString : function() + { + return this.value + " " + this.units; + } }; if (amount < 1000) { returnVal.value = amount.toPrecision(3); - ; } else if (amount < 1000 * 1024) { http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js ---------------------------------------------------------------------- diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js index b6dbe9e..56e0379 100644 --- a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js +++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js @@ -175,7 +175,7 @@ define(["dojo/_base/xhr", } } return confirmed; - } + }; util.buildDeleteQuery = function (data, url, idParam) { @@ -193,7 +193,7 @@ define(["dojo/_base/xhr", queryParam += ( idParam || "id" ) + "=" + encodeURIComponent(data[i].id); } return url + queryParam; - } + }; util.deleteSelectedObjects = function (grid, confirmationMessageStart, management, modelObj, updater, idParam, callback) @@ -202,7 +202,7 @@ define(["dojo/_base/xhr", { util.deleteObjects(management, data, modelObj, idParam, grid, updater, callback); }); - } + }; util.deleteObjects = function (management, data, modelObj, idParam, grid, updater, callback) { @@ -227,7 +227,7 @@ define(["dojo/_base/xhr", callback(data); } }, util.xhrErrorHandler); - } + }; util.deleteSelectedRows = function (grid, confirmationMessageStart, management, url, updater, idParam, callback) { @@ -235,7 +235,7 @@ define(["dojo/_base/xhr", { util.deleteData(management, data, url, idParam, grid, updater, callback); }); - } + }; util.deleteData = function (management, data, url, idParam, grid, updater, callback) { @@ -253,7 +253,7 @@ define(["dojo/_base/xhr", callback(data); } }, util.xhrErrorHandler); - } + }; util.findAllWidgets = function (root) { @@ -285,11 +285,11 @@ define(["dojo/_base/xhr", item.destroyRecursive(); }); dom.empty(tabData.contentPane.containerNode); - } + }; var closeTab = function (e) { - tabData.contentPane.onClose() + tabData.contentPane.onClose(); tabData.tabContainer.removeChild(tabData.contentPane); tabData.contentPane.destroyRecursive(); }; @@ -297,7 +297,7 @@ define(["dojo/_base/xhr", util.responseErrorHandler(error, { "404": util.warnOn404ErrorHandler(message, tabData.contentPane.containerNode, cleanUpTab, closeTab) }); - } + }; util.warnOn404ErrorHandler = function (message, containerNode, cleanUpCallback, onClickHandler) { @@ -535,7 +535,7 @@ define(["dojo/_base/xhr", util.parse(containerNode, template, postParseCallback); } }); - } + }; util.parse = function (containerNode, template, postParseCallback) { @@ -551,7 +551,7 @@ define(["dojo/_base/xhr", { console.error("Parse error:" + e); }); - } + }; util.buildUI = function (containerNode, parent, htmlTemplateLocation, fieldNames, obj, postParseCallback) { this.parseHtmlIntoDiv(containerNode, htmlTemplateLocation, function () @@ -571,7 +571,7 @@ define(["dojo/_base/xhr", } }); - } + }; util.updateUI = function (data, fieldNames, obj, formatters) { @@ -598,7 +598,7 @@ define(["dojo/_base/xhr", fieldNode.innerHTML = (value == undefined || value == null) ? "" : entities.encode(String(value)); } } - } + }; util.applyMetadataToWidgets = function (domRoot, category, type, meta) { @@ -621,7 +621,7 @@ define(["dojo/_base/xhr", { widgetconfigurer.disableIfImmutable(widget, category, type, meta); }); - } + }; util.getFormWidgetValues = function (form, initialData) { @@ -698,7 +698,7 @@ define(["dojo/_base/xhr", } } return values; - } + }; util.updateUpdatableStore = function (updatableStore, data) { @@ -714,7 +714,7 @@ define(["dojo/_base/xhr", updatableStore.grid.render(); } } - } + }; util.makeTypeStore = function (types) { @@ -728,7 +728,7 @@ define(["dojo/_base/xhr", }); } return new Memory({data: typeData}); - } + }; util.makeInstanceStore = function (management, parentCategory, category, callback) { @@ -797,24 +797,24 @@ define(["dojo/_base/xhr", // add new option to list multiSelectWidget.appendChild(newOption); } - } + }; var singleContextVarRegexp = "(\\${[\\w+\\.\\-:]+})"; util.numericOrContextVarRegexp = function (constraints) { return "^(\\d+)|" + singleContextVarRegexp + "$"; - } + }; util.signedOrContextVarRegexp = function (constraints) { return "^(-?\\d+)|" + singleContextVarRegexp + "$"; - } + }; util.nameOrContextVarRegexp = function (constraints) { return "^(\\w+)|" + singleContextVarRegexp + "$"; - } + }; util.jdbcUrlOrContextVarRegexp = function (constraints) { @@ -824,7 +824,7 @@ define(["dojo/_base/xhr", util.nodeAddressOrContextVarRegexp = function (constraints) { return "^(([0-9a-zA-Z.\\-_]|::)+:[0-9]{1,5})|" + singleContextVarRegexp + "$"; - } + }; util.resizeContentAreaAndRepositionDialog = function (contentNode, dialog) { @@ -1020,7 +1020,6 @@ define(["dojo/_base/xhr", evt.stopPropagation(); } }); - } - + }; return util; }); http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js ---------------------------------------------------------------------- diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js index 364ce9e..5af855c 100644 --- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js +++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js @@ -20,6 +20,7 @@ */ define(["dojo/parser", "dojo/query", + "dojo/_base/lang", "dojo/_base/connect", "dijit/registry", "qpid/common/properties", @@ -27,11 +28,13 @@ define(["dojo/parser", "qpid/common/util", "qpid/common/formatter", "qpid/common/UpdatableStore", + "qpid/management/query/QueryGrid", "dojox/html/entities", "dojo/text!showConnection.html", "dojo/domReady!"], function (parser, query, + lang, connect, registry, properties, @@ -39,6 +42,7 @@ define(["dojo/parser", util, formatter, UpdatableStore, + QueryGrid, entities, template) { @@ -104,6 +108,7 @@ define(["dojo/parser", var that = this; this.tabObject = connectionTab; this.contentPane = connectionTab.contentPane; + this.controller = connectionTab.controller; this.management = connectionTab.controller.management; this.modelObj = connectionTab.modelObj; var containerNode = connectionTab.contentPane.containerNode; @@ -193,6 +198,58 @@ define(["dojo/parser", } }]); + this.consumersGrid = new QueryGrid({ + detectChanges: true, + rowsPerPage: 10, + transformer: lang.hitch(this, this._transformConsumerData), + management: this.management, + parentObject: this.modelObj, + category: "Consumer", + selectClause: "id, name, distributionMode, $parent.id AS queueId, $parent.name AS queueName, " + + "messagesOut, bytesOut, unacknowledgedMessages, unacknowledgedBytes", + where: "to_string(session.$parent.id) = '" + this.modelObj.id + "'", + orderBy: "name", + columns: [{ + label: "Name", + field: "name" + }, { + label: "Mode", + field: "distributionMode" + }, { + label: "Queue", + field: "queueName" + }, { + label: "Unacknowledged (msgs)", + field: "unacknowledgedMessages" + }, { + label: "Unacknowledged (bytes)", + field: "unacknowledgedBytes", + formatter: formatter.formatBytes + }, { + label: "Msgs Rate", + field: "msgOutRate" + }, { + label: "Bytes Rate", + field: "bytesOutRate" + } + ] + }, findNode("consumers")); + + this.consumersGrid.on('rowBrowsed', + lang.hitch(this, function(event) + { + var queueId = this.consumersGrid.row(event.id).data.queueId; + this.controller.showById(queueId); + })); + this.consumersGrid.startup(); + + // Add onShow handler to work around an issue with not rendering of grid columns before first update. + // It seems if dgrid is created when tab is not shown (not active) the grid columns are not rendered. + this.contentPane.on("show", + function() + { + that.consumersGrid.resize(); + }); } ConnectionUpdater.prototype.updateHeader = function () @@ -226,6 +283,9 @@ define(["dojo/parser", var that = this; + this.consumersGrid.updateData(); + this.consumersGrid.resize(); + that.management.load(this.modelObj, { excludeInheritedContext: true, @@ -319,5 +379,44 @@ define(["dojo/parser", }); }; + ConnectionUpdater.prototype._transformConsumerData = function (data) + { + var sampleTime = new Date(); + var consumers = util.queryResultToObjects(data); + if (this._previousConsumerSampleTime) + { + var samplePeriod = sampleTime.getTime() - this._previousConsumerSampleTime.getTime(); + for (var i = 0; i < consumers.length; i++) + { + var consumer = consumers[i]; + var oldConsumer = null; + for (var j = 0; j < this._previousConsumers.length; j++) + { + if (this._previousConsumers[j].id == consumer.id) + { + oldConsumer = this._previousConsumers[j]; + break; + } + } + var msgOutRate = 0; + var bytesOutRate = 0; + + if (oldConsumer) + { + msgOutRate = (1000 * (consumer.messagesOut - oldConsumer.messagesOut)) + / samplePeriod; + bytesOutRate = (1000 * (consumer.bytesOut - oldConsumer.bytesOut)) / samplePeriod; + } + + consumer.msgOutRate = msgOutRate.toFixed(0) + " msg/s"; + var bytesOutRateFormat = formatter.formatBytes(bytesOutRate); + consumer.bytesOutRate = bytesOutRateFormat.value + " " + bytesOutRateFormat.units + "/s"; + } + } + this._previousConsumerSampleTime = sampleTime; + this._previousConsumers = consumers; + return consumers; + }; + return Connection; }); http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js ---------------------------------------------------------------------- diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js index 3ecdef5..d68ed2a 100644 --- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js +++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js @@ -38,6 +38,7 @@ define(["dojo/_base/declare", "qpid/management/editQueue", "qpid/common/JsonRest", "dojox/grid/EnhancedGrid", + "qpid/management/query/QueryGrid", "dojo/data/ObjectStore", "dojox/html/entities", "dojo/text!showQueue.html", @@ -64,6 +65,7 @@ define(["dojo/_base/declare", editQueue, JsonRest, EnhancedGrid, + QueryGrid, ObjectStore, entities, template) @@ -359,6 +361,7 @@ define(["dojo/_base/declare", { var that = this; this.management = tabObject.management; + this.controller = tabObject.controller; this.modelObj = tabObject.modelObj; this.tabObject = tabObject; this.contentPane = tabObject.contentPane; @@ -437,24 +440,62 @@ define(["dojo/_base/declare", } }]); - that.consumersGrid = new UpdatableStore([], findNode("consumers"), [{ - name: "Name", - field: "name", - width: "40%" - }, { - name: "Mode", - field: "distributionMode", - width: "20%" - }, { - name: "Msgs Rate", - field: "msgRate", - width: "20%" - }, { - name: "Bytes Rate", - field: "bytesRate", - width: "20%" - }]); - + this.consumersGrid = new QueryGrid({ + detectChanges: true, + rowsPerPage: 10, + transformer: lang.hitch(this, this._transformConsumerData), + management: this.management, + parentObject: this.modelObj, + category: "Consumer", + selectClause: "id, name, distributionMode, " + + "session.$parent.id AS connectionId, session.$parent.name AS connectionName, session.$parent.principal AS connectionPrincipal," + + "messagesOut, bytesOut, unacknowledgedMessages, unacknowledgedBytes", + where: "to_string($parent.id) = '" + this.modelObj.id + "'", + orderBy: "name", + columns: [{ + label: "Name", + field: "name" + }, { + label: "Mode", + field: "distributionMode" + }, { + label: "Connection", + field: "connectionName" + },{ + label: "User", + field: "connectionPrincipal" + }, { + label: "Unacknowledged (msgs)", + field: "unacknowledgedMessages" + }, { + label: "Unacknowledged (bytes)", + field: "unacknowledgedBytes", + formatter: formatter.formatBytes + }, { + label: "Msgs Rate", + field: "msgOutRate" + }, { + label: "Bytes Rate", + field: "bytesOutRate" + } + ] + }, findNode("consumers")); + + this.consumersGrid.on('rowBrowsed', + lang.hitch(this, function(event) + { + var connectionId = this.consumersGrid.row(event.id).data.connectionId; + this.controller.showById(connectionId); + })); + this.consumersGrid.startup(); + + // Add onShow handler to work around an issue with not rendering of grid columns before first update. + // It seems if dgrid is created when tab is not shown (not active) the grid columns are not rendered. + this.contentPane.on("show", + function() + { + that.consumersGrid.resize(); + }); } function renderMaximumQueueDepthMessages(valueElement, value, bytes) @@ -584,6 +625,9 @@ define(["dojo/_base/declare", var thisObj = this; + thisObj.consumersGrid.updateData(); + thisObj.consumersGrid.resize(); + var queuePromise = this.management.load(this.modelObj, {excludeInheritedContext: true, depth: 1 }); var publishingLinkPromise = this.management.load({type: "queue", name: "getPublishingLinks", parent: this.modelObj}); @@ -655,30 +699,6 @@ define(["dojo/_base/declare", var bytesOutFormat = formatter.formatBytes(bytesOutRate); thisObj.bytesOutRate.innerHTML = "(" + bytesOutFormat.value; thisObj.bytesOutRateUnits.innerHTML = bytesOutFormat.units + "/s)"; - - if (consumers && thisObj.consumers) - { - for (i = 0; i < consumers.length; i++) - { - var consumer = consumers[i]; - for (j = 0; j < thisObj.consumers.length; j++) - { - var oldConsumer = thisObj.consumers[j]; - if (oldConsumer.id == consumer.id) - { - var msgRate = (1000 * (consumer.messagesOut - oldConsumer.messagesOut)) - / samplePeriod; - consumer.msgRate = msgRate.toFixed(0) + "msg/s"; - - var bytesRate = (1000 * (consumer.bytesOut - oldConsumer.bytesOut)) - / samplePeriod; - var bytesRateFormat = formatter.formatBytes(bytesRate); - consumer.bytesRate = bytesRateFormat.value + bytesRateFormat.units + "/s"; - } - } - } - } - } thisObj.sampleTime = sampleTime; @@ -690,10 +710,6 @@ define(["dojo/_base/declare", // update bindings thisObj.bindingsGrid.update(bindings); - - // update consumers - thisObj.consumersGrid.update(thisObj.queueData.consumers) - }, function (error) { util.tabErrorHandler(error, { @@ -706,6 +722,45 @@ define(["dojo/_base/declare", }); }; + QueueUpdater.prototype._transformConsumerData = function (data) + { + var sampleTime = new Date(); + var consumers = util.queryResultToObjects(data); + if (this._previousConsumerSampleTime) + { + var samplePeriod = sampleTime.getTime() - this._previousConsumerSampleTime.getTime(); + for (var i = 0; i < consumers.length; i++) + { + var consumer = consumers[i]; + var oldConsumer = null; + for (var j = 0; j < this._previousConsumers.length; j++) + { + if (this._previousConsumers[j].id == consumer.id) + { + oldConsumer = this._previousConsumers[j]; + break; + } + } + var msgOutRate = 0; + var bytesOutRate = 0; + + if (oldConsumer) + { + msgOutRate = (1000 * (consumer.messagesOut - oldConsumer.messagesOut)) + / samplePeriod; + bytesOutRate = (1000 * (consumer.bytesOut - oldConsumer.bytesOut)) / samplePeriod; + } + + consumer.msgOutRate = msgOutRate.toFixed(0) + " msg/s"; + var bytesOutRateFormat = formatter.formatBytes(bytesOutRate); + consumer.bytesOutRate = bytesOutRateFormat.value + " " + bytesOutRateFormat.units + "/s"; + } + } + this._previousConsumerSampleTime = sampleTime; + this._previousConsumers = consumers; + return consumers; + }; + Queue.prototype.deleteQueue = function () { if (confirm("Are you sure you want to delete queue '" + this.name + "'?")) http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js ---------------------------------------------------------------------- diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js index aa96574..b28162c 100644 --- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js +++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js @@ -580,11 +580,11 @@ define(["dojo/parser", { var connection = connections[i]; var oldConnection = null; - for (var j = 0; j < this._previousConnections.length; j++) + for (var j = 0; j < this._previousConsumers.length; j++) { - if (this._previousConnections[j].id == connection.id) + if (this._previousConsumers[j].id == connection.id) { - oldConnection = this._previousConnections[j]; + oldConnection = this._previousConsumers[j]; break; } } @@ -611,7 +611,7 @@ define(["dojo/parser", } } this._previousConnectionSampleTime = sampleTime; - this._previousConnections = connections; + this._previousConsumers = connections; return connections; }; http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-plugins/management-http/src/main/java/resources/showConnection.html ---------------------------------------------------------------------- diff --git a/broker-plugins/management-http/src/main/java/resources/showConnection.html b/broker-plugins/management-http/src/main/java/resources/showConnection.html index 048581a..6793e77 100644 --- a/broker-plugins/management-http/src/main/java/resources/showConnection.html +++ b/broker-plugins/management-http/src/main/java/resources/showConnection.html @@ -92,7 +92,7 @@ <button data-dojo-type="dijit.form.Button" class="closeButton" data-dojo-props="iconClass: 'dijitIconDelete'">Close</button> </div> - <div class="clear"/> + <div class="clear"></div> <br/> @@ -100,5 +100,8 @@ <div class="sessions"></div> </div> <br/> + <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Consumers'" class="connectionConsumers"> + <div class="consumers"></div> + </div> </div> http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/60f06220/broker-plugins/management-http/src/main/java/resources/showQueue.html ---------------------------------------------------------------------- diff --git a/broker-plugins/management-http/src/main/java/resources/showQueue.html b/broker-plugins/management-http/src/main/java/resources/showQueue.html index fb389ee..9ba180a 100644 --- a/broker-plugins/management-http/src/main/java/resources/showQueue.html +++ b/broker-plugins/management-http/src/main/java/resources/showQueue.html @@ -147,13 +147,17 @@ </div> <div class="clear"></div> </div> + <div class="dijitDialogPaneActionBar"> + <button data-dojo-type="dijit.form.Button" class="editQueueButton" type="button">Edit Queue</button> + <button data-dojo-type="dijit.form.Button" class="deleteQueueButton" type="button">Delete Queue</button> + </div> <br/> <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Bindings'"> <div class="bindings"></div> <button data-dojo-type="dijit.form.Button" class="addBindingButton" type="button">Add Binding</button> </div> <br/> - <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Consumers'"> + <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Consumers'" class="queueConsumers"> <div class="consumers"></div> </div> <br/> @@ -205,10 +209,5 @@ </div> <div class="clear"></div> </div> - - <div class="dijitDialogPaneActionBar"> - <button data-dojo-type="dijit.form.Button" class="editQueueButton" type="button">Edit Queue</button> - <button data-dojo-type="dijit.form.Button" class="deleteQueueButton" type="button">Delete Queue</button> - </div> </div> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
