Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js?rev=1741993&r1=1741992&r2=1741993&view=diff ============================================================================== --- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js (original) +++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js Mon May 2 15:57:52 2016 @@ -30,303 +30,289 @@ define(["dojo/parser", "dojox/html/entities", "dojo/text!showConnection.html", "dojo/domReady!"], - function (parser, query, connect, registry, properties, updater, util, formatter, UpdatableStore, entities, template) - { + function (parser, + query, + connect, + registry, + properties, + updater, + util, + formatter, + UpdatableStore, + entities, + template) + { + + function Connection(name, parent, controller) + { + this.name = name; + this.controller = controller; + this.management = controller.management + this.modelObj = { + type: "connection", + name: name, + parent: parent + }; + } + + Connection.prototype.getTitle = function () + { + return "Connection: " + this.name; + }; + + Connection.prototype.open = function (contentPane) + { + var that = this; + this.contentPane = contentPane; + var containerNode = contentPane.containerNode; + containerNode.innerHTML = template; + parser.parse(contentPane.containerNode) + .then(function (instances) + { + that.connectionUpdater = new ConnectionUpdater(that); + that.connectionUpdater.update(function () + { + updater.add(that.connectionUpdater); + }); + + that.closeButton = registry.byNode(query(".closeButton", containerNode)[0]); + that.closeButton.on("click", function (e) + { + if (confirm("Are you sure you want to close the connection?")) + { + that.management.remove(that.modelObj) + .then(function (result) + { + that.destroy(); + }); + } + }); + + }); + }; + + Connection.prototype.close = function () + { + updater.remove(this.connectionUpdater); + }; + + Connection.prototype.destroy = function () + { + this.contentPane.onClose(); + this.controller.tabContainer.removeChild(this.contentPane); + this.contentPane.destroyRecursive(); + } + + function ConnectionUpdater(connectionTab) + { + var that = this; + this.tabObject = connectionTab; + this.management = connectionTab.controller.management; + this.modelObj = connectionTab.modelObj; + var containerNode = connectionTab.contentPane.containerNode; + + function findNode(name) + { + return query("." + name, containerNode)[0]; + } + + function storeNodes(names) + { + for (var i = 0; i < names.length; i++) + { + that[names[i]] = findNode(names[i]); + } + } + + storeNodes(["name", + "clientVersion", + "clientId", + "principal", + "port", + "transport", + "protocol", + "remoteProcessPid", + "createdTime", + "lastIoTime", + "msgInRate", + "bytesInRate", + "bytesInRateUnits", + "msgOutRate", + "bytesOutRate", + "bytesOutRateUnits"]); + + var userPreferences = this.management.userPreferences; + + that.connectionData = {}; + that.sessionsGrid = new UpdatableStore([], findNode("sessions"), [{ + name: "Name", + field: "name", + width: "20%" + }, { + name: "Consumers", + field: "consumerCount", + width: "15%" + }, { + name: "Unacknowledged messages", + field: "unacknowledgedMessages", + width: "15%" + }, { + name: "Current store transaction start", + field: "transactionStartTime", + width: "25%", + formatter: function (transactionStartTime) + { + if (transactionStartTime > 0) + { + return userPreferences.formatDateTime(transactionStartTime, { + selector: "time", + addOffset: true, + appendTimeZone: true + }); + } + else + { + return "N/A"; + } + } + }, { + name: "Current store transaction update", + field: "transactionUpdateTime", + width: "25%", + formatter: function (transactionUpdateTime) + { + if (transactionUpdateTime > 0) + { + return userPreferences.formatDateTime(transactionUpdateTime, { + selector: "time", + addOffset: true, + appendTimeZone: true + }); + } + else + { + return "N/A"; + } + } + }]); + + } + + ConnectionUpdater.prototype.updateHeader = function () + { + this.name.innerHTML = entities.encode(String(this.connectionData["name"])); + this.clientId.innerHTML = entities.encode(String(this.connectionData["clientId"])); + this.clientVersion.innerHTML = entities.encode(String(this.connectionData["clientVersion"])); + this.principal.innerHTML = entities.encode(String(this.connectionData["principal"])); + this.port.innerHTML = entities.encode(String(this.connectionData["port"])); + this.transport.innerHTML = entities.encode(String(this.connectionData["transport"])); + this.protocol.innerHTML = entities.encode(String(this.connectionData["protocol"])); + var remoteProcessPid = this.connectionData["remoteProcessPid"]; + this.remoteProcessPid.innerHTML = entities.encode(String(remoteProcessPid ? remoteProcessPid : "N/A")); + var userPreferences = this.management.userPreferences; + this.createdTime.innerHTML = userPreferences.formatDateTime(this.connectionData["createdTime"], { + addOffset: true, + appendTimeZone: true + }); + this.lastIoTime.innerHTML = userPreferences.formatDateTime(this.connectionData["lastIoTime"], { + addOffset: true, + appendTimeZone: true + }); + }; + + ConnectionUpdater.prototype.update = function (callback) + { + + var that = this; + + that.management.load(this.modelObj) + .then(function (data) + { + that.connectionData = data[0]; + + util.flattenStatistics(that.connectionData); + + if (callback) + { + callback(); + } + + var sessions = that.connectionData["sessions"]; + + that.updateHeader(); + + var sampleTime = new Date(); + var messageIn = that.connectionData["messagesIn"]; + var bytesIn = that.connectionData["bytesIn"]; + var messageOut = that.connectionData["messagesOut"]; + var bytesOut = that.connectionData["bytesOut"]; + + if (that.sampleTime) + { + var samplePeriod = sampleTime.getTime() - that.sampleTime.getTime(); + + var msgInRate = (1000 * (messageIn - that.messageIn)) / samplePeriod; + var msgOutRate = (1000 * (messageOut - that.messageOut)) / samplePeriod; + var bytesInRate = (1000 * (bytesIn - that.bytesIn)) / samplePeriod; + var bytesOutRate = (1000 * (bytesOut - that.bytesOut)) / samplePeriod; + + that.msgInRate.innerHTML = msgInRate.toFixed(0); + var bytesInFormat = formatter.formatBytes(bytesInRate); + that.bytesInRate.innerHTML = "(" + bytesInFormat.value; + that.bytesInRateUnits.innerHTML = bytesInFormat.units + "/s)"; + + that.msgOutRate.innerHTML = msgOutRate.toFixed(0); + var bytesOutFormat = formatter.formatBytes(bytesOutRate); + that.bytesOutRate.innerHTML = "(" + bytesOutFormat.value; + that.bytesOutRateUnits.innerHTML = bytesOutFormat.units + "/s)"; + + if (sessions && that.sessions) + { + for (var i = 0; i < sessions.length; i++) + { + var session = sessions[i]; + for (var j = 0; j < that.sessions.length; j++) + { + var oldSession = that.sessions[j]; + if (oldSession.id == session.id) + { + var msgRate = (1000 * (session.messagesOut - oldSession.messagesOut)) + / samplePeriod; + session.msgRate = msgRate.toFixed(0) + "msg/s"; + + var bytesRate = (1000 * (session.bytesOut - oldSession.bytesOut)) + / samplePeriod; + var bytesRateFormat = formatter.formatBytes(bytesRate); + session.bytesRate = bytesRateFormat.value + bytesRateFormat.units + "/s"; + } + + } + + } + } + + } + + that.sampleTime = sampleTime; + that.messageIn = messageIn; + that.bytesIn = bytesIn; + that.messageOut = messageOut; + that.bytesOut = bytesOut; + that.sessions = sessions; + + // update sessions + that.sessionsGrid.update(that.connectionData.sessions) + }, function (error) + { + util.tabErrorHandler(error, { + updater: that, + contentPane: that.tabObject.contentPane, + tabContainer: that.tabObject.controller.tabContainer, + name: that.modelObj.name, + category: "Connection" + }); + }); + }; - function Connection(name, parent, controller) - { - this.name = name; - this.controller = controller; - this.management = controller.management - this.modelObj = { - type: "connection", - name: name, - parent: parent - }; - } - - Connection.prototype.getTitle = function () - { - return "Connection: " + this.name; - }; - - Connection.prototype.open = function (contentPane) - { - var that = this; - this.contentPane = contentPane; - var containerNode = contentPane.containerNode; - containerNode.innerHTML = template; - parser.parse(contentPane.containerNode).then(function (instances) - { - that.connectionUpdater = new ConnectionUpdater(that); - that.connectionUpdater.update(function () - { - updater.add(that.connectionUpdater); - }); - - that.closeButton = registry.byNode(query(".closeButton", - containerNode)[0]); - that.closeButton.on("click", function (e) - { - if (confirm( - "Are you sure you want to close the connection?")) - { - that.management.remove(that.modelObj) - .then(function (result) - { - that.destroy(); - }); - } - }); - - }); - }; - - Connection.prototype.close = function () - { - updater.remove(this.connectionUpdater); - }; - - Connection.prototype.destroy = function () - { - this.contentPane.onClose(); - this.controller.tabContainer.removeChild(this.contentPane); - this.contentPane.destroyRecursive(); - } - - function ConnectionUpdater(connectionTab) - { - var that = this; - this.tabObject = connectionTab; - this.management = connectionTab.controller.management; - this.modelObj = connectionTab.modelObj; - var containerNode = connectionTab.contentPane.containerNode; - - function findNode(name) - { - return query("." + name, containerNode)[0]; - } - - function storeNodes(names) - { - for (var i = 0; i < names.length; i++) - { - that[names[i]] = findNode(names[i]); - } - } - - storeNodes(["name", - "clientVersion", - "clientId", - "principal", - "port", - "transport", - "protocol", - "remoteProcessPid", - "createdTime", - "lastIoTime", - "msgInRate", - "bytesInRate", - "bytesInRateUnits", - "msgOutRate", - "bytesOutRate", - "bytesOutRateUnits"]); - - var userPreferences = this.management.userPreferences; - - that.connectionData = {}; - that.sessionsGrid = new UpdatableStore([], findNode("sessions"), [{ - name: "Name", - field: "name", - width: "20%" - }, - { - name: "Consumers", - field: "consumerCount", - width: "15%" - }, - { - name: "Unacknowledged messages", - field: "unacknowledgedMessages", - width: "15%" - }, - { - name: "Current store transaction start", - field: "transactionStartTime", - width: "25%", - formatter: function (transactionStartTime) - { - if (transactionStartTime > 0) - { - return userPreferences.formatDateTime(transactionStartTime, - { - selector: "time", - addOffset: true, - appendTimeZone: true - }); - } - else - { - return "N/A"; - } - } - }, - { - name: "Current store transaction update", - field: "transactionUpdateTime", - width: "25%", - formatter: function (transactionUpdateTime) - { - if (transactionUpdateTime > 0) - { - return userPreferences.formatDateTime(transactionUpdateTime, - { - selector: "time", - addOffset: true, - appendTimeZone: true - }); - } - else - { - return "N/A"; - } - } - }]); - - } - - ConnectionUpdater.prototype.updateHeader = function () - { - this.name.innerHTML = entities.encode(String(this.connectionData["name"])); - this.clientId.innerHTML = entities.encode(String(this.connectionData["clientId"])); - this.clientVersion.innerHTML = entities.encode(String(this.connectionData["clientVersion"])); - this.principal.innerHTML = entities.encode(String(this.connectionData["principal"])); - this.port.innerHTML = entities.encode(String(this.connectionData["port"])); - this.transport.innerHTML = entities.encode(String(this.connectionData["transport"])); - this.protocol.innerHTML = entities.encode(String(this.connectionData["protocol"])); - var remoteProcessPid = this.connectionData["remoteProcessPid"]; - this.remoteProcessPid.innerHTML = entities.encode(String(remoteProcessPid ? remoteProcessPid : "N/A")); - var userPreferences = this.management.userPreferences; - this.createdTime.innerHTML = userPreferences.formatDateTime(this.connectionData["createdTime"], - { - addOffset: true, - appendTimeZone: true - }); - this.lastIoTime.innerHTML = userPreferences.formatDateTime(this.connectionData["lastIoTime"], - { - addOffset: true, - appendTimeZone: true - }); - }; - - ConnectionUpdater.prototype.update = function (callback) - { - - var that = this; - - that.management.load(this.modelObj).then(function (data) - { - that.connectionData = data[0]; - - util.flattenStatistics(that.connectionData); - - if (callback) - { - callback(); - } - - var sessions = that.connectionData["sessions"]; - - that.updateHeader(); - - var sampleTime = new Date(); - var messageIn = that.connectionData["messagesIn"]; - var bytesIn = that.connectionData["bytesIn"]; - var messageOut = that.connectionData["messagesOut"]; - var bytesOut = that.connectionData["bytesOut"]; - - if (that.sampleTime) - { - var samplePeriod = sampleTime.getTime() - - that.sampleTime.getTime(); - - var msgInRate = (1000 * (messageIn - that.messageIn)) - / samplePeriod; - var msgOutRate = (1000 * (messageOut - that.messageOut)) - / samplePeriod; - var bytesInRate = (1000 * (bytesIn - that.bytesIn)) - / samplePeriod; - var bytesOutRate = (1000 * (bytesOut - that.bytesOut)) - / samplePeriod; - - that.msgInRate.innerHTML = msgInRate.toFixed(0); - var bytesInFormat = formatter.formatBytes(bytesInRate); - that.bytesInRate.innerHTML = "(" + bytesInFormat.value; - that.bytesInRateUnits.innerHTML = - bytesInFormat.units + "/s)"; - - that.msgOutRate.innerHTML = msgOutRate.toFixed(0); - var bytesOutFormat = formatter.formatBytes(bytesOutRate); - that.bytesOutRate.innerHTML = - "(" + bytesOutFormat.value; - that.bytesOutRateUnits.innerHTML = - bytesOutFormat.units + "/s)"; - - if (sessions && that.sessions) - { - for (var i = 0; i < sessions.length; i++) - { - var session = sessions[i]; - for (var j = 0; j < that.sessions.length; j++) - { - var oldSession = that.sessions[j]; - if (oldSession.id == session.id) - { - var msgRate = (1000 - * (session.messagesOut - - oldSession.messagesOut)) - / samplePeriod; - session.msgRate = - msgRate.toFixed(0) + "msg/s"; - - var bytesRate = (1000 - * (session.bytesOut - - oldSession.bytesOut)) - / samplePeriod; - var bytesRateFormat = formatter.formatBytes( - bytesRate); - session.bytesRate = - bytesRateFormat.value - + bytesRateFormat.units + "/s"; - } - - } - - } - } - - } - - that.sampleTime = sampleTime; - that.messageIn = messageIn; - that.bytesIn = bytesIn; - that.messageOut = messageOut; - that.bytesOut = bytesOut; - that.sessions = sessions; - - // update sessions - that.sessionsGrid.update(that.connectionData.sessions) - }, function (error) - { - util.tabErrorHandler(error, { - updater: that, - contentPane: that.tabObject.contentPane, - tabContainer: that.tabObject.controller.tabContainer, - name: that.modelObj.name, - category: "Connection" - }); - }); - }; - - return Connection; - }); + return Connection; + });
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=1741993&r1=1741992&r2=1741993&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 Mon May 2 15:57:52 2016 @@ -33,307 +33,300 @@ define(["dojo/_base/xhr", "dojox/html/entities", "dojo/text!showExchange.html", "dojo/domReady!"], - function (xhr, parser, query, connect, registry, properties, updater, util, formatter, UpdatableStore, addBinding, EnhancedGrid, entities, template) - { + function (xhr, + parser, + query, + connect, + registry, + properties, + updater, + util, + formatter, + UpdatableStore, + addBinding, + EnhancedGrid, + entities, + template) + { + + function Exchange(name, parent, controller) + { + this.name = name; + this.controller = controller; + this.management = controller.management; + this.modelObj = { + type: "exchange", + name: name, + parent: parent + }; + } + + Exchange.prototype.getExchangeName = function () + { + return this.name; + }; + + Exchange.prototype.getVirtualHostName = function () + { + return this.modelObj.parent.name; + }; + + Exchange.prototype.getVirtualHostNodeName = function () + { + return this.modelObj.parent.parent.name; + }; + + Exchange.prototype.getTitle = function () + { + return "Exchange: " + this.name; + }; + + Exchange.prototype.open = function (contentPane) + { + var that = this; + this.contentPane = contentPane; + + contentPane.containerNode.innerHTML = template; + parser.parse(contentPane.containerNode) + .then(function (instances) + { + + that.exchangeUpdater = new ExchangeUpdater(that); + var addBindingButton = query(".addBindingButton", contentPane.containerNode)[0]; + connect.connect(registry.byNode(addBindingButton), "onClick", function (evt) + { + addBinding.show(that.management, that.modelObj); + }); + + var deleteBindingButton = query(".deleteBindingButton", contentPane.containerNode)[0]; + connect.connect(registry.byNode(deleteBindingButton), "onClick", function (evt) + { + that.deleteBindings(); + }); + + var isStandard = util.isReservedExchangeName(that.name); + var deleteExchangeButton = query(".deleteExchangeButton", contentPane.containerNode)[0]; + var node = registry.byNode(deleteExchangeButton); + if (isStandard) + { + node.set('disabled', true); + } + else + { + connect.connect(node, "onClick", function (evt) + { + that.deleteExchange(); + }); + } + + that.exchangeUpdater.update(function () + { + updater.add(that.exchangeUpdater) + }); + }); + }; + + Exchange.prototype.close = function () + { + updater.remove(this.exchangeUpdater); + }; + + Exchange.prototype.deleteBindings = function () + { + util.deleteSelectedObjects(this.exchangeUpdater.bindingsGrid.grid, + "Are you sure you want to delete binding", + this.management, + { + type: "binding", + parent: this.modelObj + }, + this.exchangeUpdater); + } + + function ExchangeUpdater(exchangeTab) + { + var that = this; + this.tabObject = exchangeTab; + this.management = exchangeTab.controller.management; + this.modelObj = exchangeTab.modelObj; + var containerNode = exchangeTab.contentPane.containerNode; + + function findNode(name) + { + return query("." + name, containerNode)[0]; + } + + function storeNodes(names) + { + for (var i = 0; i < names.length; i++) + { + that[names[i]] = findNode(names[i]); + } + } + + storeNodes(["name", + "type", + "state", + "durable", + "lifetimePolicy", + "alertRepeatGap", + "alertRepeatGapUnits", + "alertThresholdMessageAge", + "alertThresholdMessageAgeUnits", + "alertThresholdMessageSize", + "alertThresholdMessageSizeUnits", + "alertThresholdQueueDepthBytes", + "alertThresholdQueueDepthBytesUnits", + "alertThresholdQueueDepthMessages", + "msgInRate", + "bytesInRate", + "bytesInRateUnits", + "msgDropRate", + "bytesDropRate", + "bytesDropRateUnits"]); + + that.exchangeData = {}; + + that.bindingsGrid = new UpdatableStore([], findNode("bindings"), [{ + name: "Queue", + field: "queue", + width: "40%" + }, { + name: "Binding Key", + field: "name", + width: "30%" + }, { + name: "Arguments", + field: "argumentString", + width: "30%" + }], null, { + keepSelection: true, + plugins: { + pagination: { + pageSizes: ["10", "25", "50", "100"], + description: true, + sizeSwitch: true, + pageStepper: true, + gotoButton: true, + maxPageStep: 4, + position: "bottom" + }, + indirectSelection: true + + } + }, EnhancedGrid); + } + + ExchangeUpdater.prototype.updateHeader = function () + { + this.name.innerHTML = entities.encode(String(this.exchangeData["name"])); + this["type"].innerHTML = entities.encode(String(this.exchangeData["type"])); + + this.state.innerHTML = entities.encode(String(this.exchangeData["state"])); + this.durable.innerHTML = entities.encode(String(this.exchangeData["durable"])); + this.lifetimePolicy.innerHTML = entities.encode(String(this.exchangeData["lifetimePolicy"])); + + }; + + ExchangeUpdater.prototype.update = function (callback) + { + + var thisObj = this; + + this.management.load(this.modelObj) + .then(function (data) + { + thisObj.exchangeData = data[0]; + + if (callback) + { + callback(); + } + + util.flattenStatistics(thisObj.exchangeData); + + var bindings = thisObj.exchangeData["bindings"]; + + if (bindings) + { + for (var i = 0; i < bindings.length; i++) + { + if (bindings[i].arguments) + { + bindings[i].argumentString = dojo.toJson(bindings[i].arguments); + } + else + { + bindings[i].argumentString = ""; + } + } + } + + var sampleTime = new Date(); + + thisObj.updateHeader(); + + var messageIn = thisObj.exchangeData["messagesIn"]; + var bytesIn = thisObj.exchangeData["bytesIn"]; + var messageDrop = thisObj.exchangeData["messagesDropped"]; + var bytesDrop = thisObj.exchangeData["bytesDropped"]; + + if (thisObj.sampleTime) + { + var samplePeriod = sampleTime.getTime() - thisObj.sampleTime.getTime(); + + var msgInRate = (1000 * (messageIn - thisObj.messageIn)) / samplePeriod; + var msgDropRate = (1000 * (messageDrop - thisObj.messageDrop)) / samplePeriod; + var bytesInRate = (1000 * (bytesIn - thisObj.bytesIn)) / samplePeriod; + var bytesDropRate = (1000 * (bytesDrop - thisObj.bytesDrop)) / samplePeriod; + + thisObj.msgInRate.innerHTML = msgInRate.toFixed(0); + var bytesInFormat = formatter.formatBytes(bytesInRate); + thisObj.bytesInRate.innerHTML = "(" + bytesInFormat.value; + thisObj.bytesInRateUnits.innerHTML = bytesInFormat.units + "/s)"; + + thisObj.msgDropRate.innerHTML = msgDropRate.toFixed(0); + var bytesDropFormat = formatter.formatBytes(bytesDropRate); + thisObj.bytesDropRate.innerHTML = "(" + bytesDropFormat.value; + thisObj.bytesDropRateUnits.innerHTML = bytesDropFormat.units + "/s)" + + } + + thisObj.sampleTime = sampleTime; + thisObj.messageIn = messageIn; + thisObj.bytesIn = bytesIn; + thisObj.messageDrop = messageDrop; + thisObj.bytesDrop = bytesDrop; + + // update bindings + thisObj.bindingsGrid.update(thisObj.exchangeData.bindings) + + }, function (error) + { + util.tabErrorHandler(error, { + updater: thisObj, + contentPane: thisObj.tabObject.contentPane, + tabContainer: thisObj.tabObject.controller.tabContainer, + name: thisObj.modelObj.name, + category: "Exchange" + }); + }); + }; + + Exchange.prototype.deleteExchange = function () + { + if (confirm("Are you sure you want to delete exchange '" + this.name + "'?")) + { + var that = this; + this.management.remove(this.modelObj) + .then(function (data) + { + that.contentPane.onClose() + that.controller.tabContainer.removeChild(that.contentPane); + that.contentPane.destroyRecursive(); + }, util.xhrErrorHandler); + } + } - function Exchange(name, parent, controller) - { - this.name = name; - this.controller = controller; - this.management = controller.management; - this.modelObj = { - type: "exchange", - name: name, - parent: parent - }; - } - - Exchange.prototype.getExchangeName = function () - { - return this.name; - }; - - Exchange.prototype.getVirtualHostName = function () - { - return this.modelObj.parent.name; - }; - - Exchange.prototype.getVirtualHostNodeName = function () - { - return this.modelObj.parent.parent.name; - }; - - Exchange.prototype.getTitle = function () - { - return "Exchange: " + this.name; - }; - - Exchange.prototype.open = function (contentPane) - { - var that = this; - this.contentPane = contentPane; - - contentPane.containerNode.innerHTML = template; - parser.parse(contentPane.containerNode).then(function (instances) - { - - that.exchangeUpdater = new ExchangeUpdater(that); - var addBindingButton = query(".addBindingButton", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(addBindingButton), - "onClick", - function (evt) - { - addBinding.show(that.management, - that.modelObj); - }); - - var deleteBindingButton = query(".deleteBindingButton", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(deleteBindingButton), - "onClick", - function (evt) - { - that.deleteBindings(); - }); - - var isStandard = util.isReservedExchangeName(that.name); - var deleteExchangeButton = query(".deleteExchangeButton", - contentPane.containerNode)[0]; - var node = registry.byNode(deleteExchangeButton); - if (isStandard) - { - node.set('disabled', true); - } - else - { - connect.connect(node, "onClick", function (evt) - { - that.deleteExchange(); - }); - } - - that.exchangeUpdater.update(function () - { - updater.add(that.exchangeUpdater) - }); - }); - }; - - Exchange.prototype.close = function () - { - updater.remove(this.exchangeUpdater); - }; - - Exchange.prototype.deleteBindings = function () - { - util.deleteSelectedObjects(this.exchangeUpdater.bindingsGrid.grid, - "Are you sure you want to delete binding", - this.management, - { - type: "binding", - parent: this.modelObj - }, - this.exchangeUpdater); - } - - function ExchangeUpdater(exchangeTab) - { - var that = this; - this.tabObject = exchangeTab; - this.management = exchangeTab.controller.management; - this.modelObj = exchangeTab.modelObj; - var containerNode = exchangeTab.contentPane.containerNode; - - function findNode(name) - { - return query("." + name, containerNode)[0]; - } - - function storeNodes(names) - { - for (var i = 0; i < names.length; i++) - { - that[names[i]] = findNode(names[i]); - } - } - - storeNodes(["name", - "type", - "state", - "durable", - "lifetimePolicy", - "alertRepeatGap", - "alertRepeatGapUnits", - "alertThresholdMessageAge", - "alertThresholdMessageAgeUnits", - "alertThresholdMessageSize", - "alertThresholdMessageSizeUnits", - "alertThresholdQueueDepthBytes", - "alertThresholdQueueDepthBytesUnits", - "alertThresholdQueueDepthMessages", - "msgInRate", - "bytesInRate", - "bytesInRateUnits", - "msgDropRate", - "bytesDropRate", - "bytesDropRateUnits"]); - - that.exchangeData = {}; - - that.bindingsGrid = new UpdatableStore([], findNode("bindings"), [{ - name: "Queue", - field: "queue", - width: "40%" - }, - { - name: "Binding Key", - field: "name", - width: "30%" - }, - { - name: "Arguments", - field: "argumentString", - width: "30%" - }], null, { - keepSelection: true, - plugins: { - pagination: { - pageSizes: ["10", "25", "50", "100"], - description: true, - sizeSwitch: true, - pageStepper: true, - gotoButton: true, - maxPageStep: 4, - position: "bottom" - }, - indirectSelection: true - - } - }, EnhancedGrid); - } - - ExchangeUpdater.prototype.updateHeader = function () - { - this.name.innerHTML = entities.encode(String(this.exchangeData["name"])); - this["type"].innerHTML = entities.encode(String(this.exchangeData["type"])); - - this.state.innerHTML = entities.encode(String(this.exchangeData["state"])); - this.durable.innerHTML = entities.encode(String(this.exchangeData["durable"])); - this.lifetimePolicy.innerHTML = entities.encode(String(this.exchangeData["lifetimePolicy"])); - - }; - - ExchangeUpdater.prototype.update = function (callback) - { - - var thisObj = this; - - this.management.load(this.modelObj).then(function (data) - { - thisObj.exchangeData = data[0]; - - if (callback) - { - callback(); - } - - util.flattenStatistics(thisObj.exchangeData); - - var bindings = thisObj.exchangeData["bindings"]; - - if (bindings) - { - for (var i = 0; i < bindings.length; i++) - { - if (bindings[i].arguments) - { - bindings[i].argumentString = - dojo.toJson(bindings[i].arguments); - } - else - { - bindings[i].argumentString = ""; - } - } - } - - var sampleTime = new Date(); - - thisObj.updateHeader(); - - var messageIn = thisObj.exchangeData["messagesIn"]; - var bytesIn = thisObj.exchangeData["bytesIn"]; - var messageDrop = thisObj.exchangeData["messagesDropped"]; - var bytesDrop = thisObj.exchangeData["bytesDropped"]; - - if (thisObj.sampleTime) - { - var samplePeriod = sampleTime.getTime() - - thisObj.sampleTime.getTime(); - - var msgInRate = (1000 * (messageIn - thisObj.messageIn)) - / samplePeriod; - var msgDropRate = (1000 * (messageDrop - - thisObj.messageDrop)) - / samplePeriod; - var bytesInRate = (1000 * (bytesIn - thisObj.bytesIn)) - / samplePeriod; - var bytesDropRate = (1000 * (bytesDrop - - thisObj.bytesDrop)) - / samplePeriod; - - thisObj.msgInRate.innerHTML = msgInRate.toFixed(0); - var bytesInFormat = formatter.formatBytes(bytesInRate); - thisObj.bytesInRate.innerHTML = - "(" + bytesInFormat.value; - thisObj.bytesInRateUnits.innerHTML = - bytesInFormat.units + "/s)"; - - thisObj.msgDropRate.innerHTML = msgDropRate.toFixed(0); - var bytesDropFormat = formatter.formatBytes( - bytesDropRate); - thisObj.bytesDropRate.innerHTML = - "(" + bytesDropFormat.value; - thisObj.bytesDropRateUnits.innerHTML = - bytesDropFormat.units + "/s)" - - } - - thisObj.sampleTime = sampleTime; - thisObj.messageIn = messageIn; - thisObj.bytesIn = bytesIn; - thisObj.messageDrop = messageDrop; - thisObj.bytesDrop = bytesDrop; - - // update bindings - thisObj.bindingsGrid.update(thisObj.exchangeData.bindings) - - }, function (error) - { - util.tabErrorHandler(error, { - updater: thisObj, - contentPane: thisObj.tabObject.contentPane, - tabContainer: thisObj.tabObject.controller.tabContainer, - name: thisObj.modelObj.name, - category: "Exchange" - }); - }); - }; - - Exchange.prototype.deleteExchange = function () - { - if (confirm("Are you sure you want to delete exchange '" + this.name + "'?")) - { - var that = this; - this.management.remove(this.modelObj).then(function (data) - { - that.contentPane.onClose() - that.controller.tabContainer.removeChild(that.contentPane); - that.contentPane.destroyRecursive(); - }, util.xhrErrorHandler); - } - } - - return Exchange; - }); + return Exchange; + }); Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js?rev=1741993&r1=1741992&r2=1741993&view=diff ============================================================================== --- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js (original) +++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js Mon May 2 15:57:52 2016 @@ -35,200 +35,215 @@ define(["dojo/parser", "dojox/grid/enhanced/plugins/Pagination", "dojox/grid/enhanced/plugins/IndirectSelection", "dojo/domReady!"], - function (parser, query, connect, array, event, properties, updater, util, UpdatableStore, EnhancedGrid, registry, entities, template, addGroupProvider) - { + function (parser, + query, + connect, + array, + event, + properties, + updater, + util, + UpdatableStore, + EnhancedGrid, + registry, + entities, + template, + addGroupProvider) + { + + function GroupProvider(name, parent, controller) + { + this.name = name; + this.controller = controller; + this.management = controller.management; + this.modelObj = { + type: "groupprovider", + name: name, + parent: parent + }; + } + + GroupProvider.prototype.getTitle = function () + { + return "GroupProvider: " + this.name; + }; + + GroupProvider.prototype.open = function (contentPane) + { + var that = this; + this.contentPane = contentPane; + contentPane.containerNode.innerHTML = template; + parser.parse(contentPane.containerNode) + .then(function (instances) + { + that.onOpen(); + }); + }; + + GroupProvider.prototype.onOpen = function () + { + var that = this; + var contentPane = this.contentPane; + this.groupProviderUpdater = new GroupProviderUpdater(this); + this.groupProviderUpdater.update(function () + { + that._onOpenAfterUpdate(); + }); + }; + + GroupProvider.prototype._onOpenAfterUpdate = function () + { + var that = this; + var contentPane = this.contentPane; + this.deleteButton = registry.byNode(query(".deleteGroupProviderButton", contentPane.containerNode)[0]); + this.deleteButton.on("click", function (evt) + { + event.stop(evt); + that.deleteGroupProvider(); + }); + + this.editButton = registry.byNode(query(".editGroupProviderButton", contentPane.containerNode)[0]); + this.editButton.on("click", function (evt) + { + event.stop(evt); + that.editGroupProvider(); + }); + + var type = this.groupProviderUpdater.groupProviderData.type; + var providerDetailsNode = query(".providerDetails", contentPane.containerNode)[0]; + + require(["qpid/management/groupprovider/" + encodeURIComponent(type.toLowerCase()) + "/show"], + function (DetailsUI) + { + that.groupProviderUpdater.details = new DetailsUI({ + containerNode: providerDetailsNode, + parent: that + }); + that.groupProviderUpdater.details.update(that.groupProviderUpdater.groupProviderData); + }); + + var managedInterfaces = this.management.metadata.getMetaData("GroupProvider", type).managedInterfaces; + if (managedInterfaces) + { + + var managedInterfaceUI = this.groupProviderUpdater.managedInterfaces; + + array.forEach(managedInterfaces, function (managedInterface) + { + require(["qpid/management/groupprovider/" + encodeURIComponent(managedInterface)], + function (ManagedInterface) + { + managedInterfaceUI[ManagedInterface] = + new ManagedInterface(providerDetailsNode, that.modelObj, that.controller); + managedInterfaceUI[ManagedInterface].update(that.groupProviderUpdater.groupProviderData); + }); + }); + } + + updater.add(this.groupProviderUpdater); + }; + + GroupProvider.prototype.close = function () + { + updater.remove(this.groupProviderUpdater); + }; + + GroupProvider.prototype.deleteGroupProvider = function () + { + var warnMessage = ""; + if (this.groupProviderUpdater.groupProviderData && this.groupProviderUpdater.groupProviderData.type.indexOf( + "File") != -1) + { + warnMessage = "NOTE: provider deletion will also remove the group file on disk.\n\n"; + } + if (confirm(warnMessage + "Are you sure you want to delete group provider '" + this.name + "'?")) + { + var that = this; + this.controller.management.remove(this.modelObj) + .then(function (data) + { + that.close(); + that.contentPane.onClose() + that.controller.tabContainer.removeChild(that.contentPane); + that.contentPane.destroyRecursive(); + }, util.xhrErrorHandler); + } + }; + + GroupProvider.prototype.editGroupProvider = function () + { + addGroupProvider.show(this.controller.management, + this.modelObj, + this.groupProviderUpdater.groupProviderData); + } + + function GroupProviderUpdater(groupProviderTab) + { + this.tabObject = groupProviderTab; + var controller = groupProviderTab.controller; + var groupProviderObj = groupProviderTab.modelObj; + var node = groupProviderTab.contentPane.containerNode; + this.controller = controller; + this.management = controller.management; + this.modelObj = groupProviderObj; + this.name = query(".name", node)[0]; + this.type = query(".type", node)[0]; + this.state = query(".state", node)[0]; + this.managedInterfaces = {}; + this.details = null; + } + + GroupProviderUpdater.prototype.updateHeader = function () + { + this.name.innerHTML = entities.encode(String(this.groupProviderData["name"])); + this.type.innerHTML = entities.encode(String(this.groupProviderData["type"])); + this.state.innerHTML = entities.encode(String(this.groupProviderData["state"])); + }; + + GroupProviderUpdater.prototype.update = function (callback) + { + var that = this; + var management = this.controller.management; + management.load(this.modelObj) + .then(function (data) + { + that._update(data[0]); + if (callback) + { + callback(); + } + }, function (error) + { + util.tabErrorHandler(error, { + updater: that, + contentPane: that.tabObject.contentPane, + tabContainer: that.tabObject.controller.tabContainer, + name: that.modelObj.name, + category: "Group Provider" + }); + }); + }; + + GroupProviderUpdater.prototype._update = function (data) + { + this.groupProviderData = data; + util.flattenStatistics(this.groupProviderData); + this.updateHeader(); + + if (this.details) + { + this.details.update(this.groupProviderData); + } + + for (var managedInterface in this.managedInterfaces) + { + var managedInterfaceUI = this.managedInterfaces[managedInterface]; + if (managedInterfaceUI) + { + managedInterfaceUI.update(this.groupProviderData); + } + } + }; - function GroupProvider(name, parent, controller) - { - this.name = name; - this.controller = controller; - this.management = controller.management; - this.modelObj = { - type: "groupprovider", - name: name, - parent: parent - }; - } - - GroupProvider.prototype.getTitle = function () - { - return "GroupProvider: " + this.name; - }; - - GroupProvider.prototype.open = function (contentPane) - { - var that = this; - this.contentPane = contentPane; - contentPane.containerNode.innerHTML = template; - parser.parse(contentPane.containerNode).then(function (instances) - { - that.onOpen(); - }); - }; - - GroupProvider.prototype.onOpen = function () - { - var that = this; - var contentPane = this.contentPane; - this.groupProviderUpdater = new GroupProviderUpdater(this); - this.groupProviderUpdater.update(function () - { - that._onOpenAfterUpdate(); - }); - }; - - GroupProvider.prototype._onOpenAfterUpdate = function () - { - var that = this; - var contentPane = this.contentPane; - this.deleteButton = registry.byNode(query(".deleteGroupProviderButton", contentPane.containerNode)[0]); - this.deleteButton.on("click", function (evt) - { - event.stop(evt); - that.deleteGroupProvider(); - }); - - this.editButton = registry.byNode(query(".editGroupProviderButton", contentPane.containerNode)[0]); - this.editButton.on("click", function (evt) - { - event.stop(evt); - that.editGroupProvider(); - }); - - var type = this.groupProviderUpdater.groupProviderData.type; - var providerDetailsNode = query(".providerDetails", contentPane.containerNode)[0]; - - require(["qpid/management/groupprovider/" + encodeURIComponent(type.toLowerCase()) + "/show"], - function (DetailsUI) - { - that.groupProviderUpdater.details = new DetailsUI({ - containerNode: providerDetailsNode, - parent: that - }); - that.groupProviderUpdater.details.update(that.groupProviderUpdater.groupProviderData); - }); - - var managedInterfaces = this.management.metadata.getMetaData("GroupProvider", type).managedInterfaces; - if (managedInterfaces) - { - - var managedInterfaceUI = this.groupProviderUpdater.managedInterfaces; - - array.forEach(managedInterfaces, function (managedInterface) - { - require(["qpid/management/groupprovider/" + encodeURIComponent(managedInterface)], - function (ManagedInterface) - { - managedInterfaceUI[ManagedInterface] = - new ManagedInterface(providerDetailsNode, that.modelObj, that.controller); - managedInterfaceUI[ManagedInterface].update(that.groupProviderUpdater.groupProviderData); - }); - }); - } - - updater.add(this.groupProviderUpdater); - }; - - GroupProvider.prototype.close = function () - { - updater.remove(this.groupProviderUpdater); - }; - - GroupProvider.prototype.deleteGroupProvider = function () - { - var warnMessage = ""; - if (this.groupProviderUpdater.groupProviderData - && this.groupProviderUpdater.groupProviderData.type.indexOf("File") != -1) - { - warnMessage = "NOTE: provider deletion will also remove the group file on disk.\n\n"; - } - if (confirm(warnMessage + "Are you sure you want to delete group provider '" + this.name + "'?")) - { - var that = this; - this.controller.management.remove(this.modelObj).then(function (data) - { - that.close(); - that.contentPane.onClose() - that.controller.tabContainer.removeChild( - that.contentPane); - that.contentPane.destroyRecursive(); - }, util.xhrErrorHandler); - } - }; - - GroupProvider.prototype.editGroupProvider = function () - { - addGroupProvider.show(this.controller.management, - this.modelObj, - this.groupProviderUpdater.groupProviderData); - } - - function GroupProviderUpdater(groupProviderTab) - { - this.tabObject = groupProviderTab; - var controller = groupProviderTab.controller; - var groupProviderObj = groupProviderTab.modelObj; - var node = groupProviderTab.contentPane.containerNode; - this.controller = controller; - this.management = controller.management; - this.modelObj = groupProviderObj; - this.name = query(".name", node)[0]; - this.type = query(".type", node)[0]; - this.state = query(".state", node)[0]; - this.managedInterfaces = {}; - this.details = null; - } - - GroupProviderUpdater.prototype.updateHeader = function () - { - this.name.innerHTML = entities.encode(String(this.groupProviderData["name"])); - this.type.innerHTML = entities.encode(String(this.groupProviderData["type"])); - this.state.innerHTML = entities.encode(String(this.groupProviderData["state"])); - }; - - GroupProviderUpdater.prototype.update = function (callback) - { - var that = this; - var management = this.controller.management; - management.load(this.modelObj).then(function (data) - { - that._update(data[0]); - if (callback) - { - callback(); - } - }, function (error) - { - util.tabErrorHandler(error, { - updater: that, - contentPane: that.tabObject.contentPane, - tabContainer: that.tabObject.controller.tabContainer, - name: that.modelObj.name, - category: "Group Provider" - }); - }); - }; - - GroupProviderUpdater.prototype._update = function (data) - { - this.groupProviderData = data; - util.flattenStatistics(this.groupProviderData); - this.updateHeader(); - - if (this.details) - { - this.details.update(this.groupProviderData); - } - - for (var managedInterface in this.managedInterfaces) - { - var managedInterfaceUI = this.managedInterfaces[managedInterface]; - if (managedInterfaceUI) - { - managedInterfaceUI.update(this.groupProviderData); - } - } - }; - - return GroupProvider; - }); + return GroupProvider; + }); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
