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=1741993&r1=1741992&r2=1741993&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 Mon May 2 15:57:52 2016 @@ -42,644 +42,603 @@ define(["dojo/_base/declare", "dojox/grid/enhanced/plugins/Pagination", "dojox/grid/enhanced/plugins/IndirectSelection", "dojo/domReady!"], - function (declare, parser, query, registry, connect, event, json, properties, updater, util, formatter, UpdatableStore, addBinding, moveMessages, showMessage, editQueue, JsonRest, EnhancedGrid, ObjectStore, entities, template) - { + function (declare, + parser, + query, + registry, + connect, + event, + json, + properties, + updater, + util, + formatter, + UpdatableStore, + addBinding, + moveMessages, + showMessage, + editQueue, + JsonRest, + EnhancedGrid, + ObjectStore, + entities, + template) + { + + function Queue(name, parent, controller) + { + this.name = name; + this.controller = controller; + this.management = controller.management; + this.modelObj = { + type: "queue", + name: name, + parent: parent + }; + } + + Queue.prototype.getQueueName = function () + { + return this.name; + }; + + Queue.prototype.getVirtualHostName = function () + { + return this.modelObj.parent.name; + }; + + Queue.prototype.getVirtualHostNodeName = function () + { + return this.modelObj.parent.parent.name; + }; + + Queue.prototype.getTitle = function () + { + return "Queue: " + this.name; + }; + + Queue.prototype.open = function (contentPane) + { + var that = this; + this.contentPane = contentPane; + + contentPane.containerNode.innerHTML = template; + parser.parse(contentPane.containerNode) + .then(function (instances) + { + that.queueUpdater = new QueueUpdater(that); + + // double encode to allow slashes in object names. + var myStore = new JsonRest({ + management: that.management, + modelObject: that.modelObj, + queryOperation: "getMessageInfo" + }); + var messageGridDiv = query(".messages", contentPane.containerNode)[0]; + that.dataStore = new ObjectStore({objectStore: myStore}); + var userPreferences = this.management.userPreferences; + that.grid = new EnhancedGrid({ + store: that.dataStore, + autoHeight: 10, + keepSelection: true, + structure: [{ + name: "Size", + field: "size", + width: "40%" + }, { + name: "State", + field: "state", + width: "30%" + }, + + { + name: "Arrival", + field: "arrivalTime", + width: "30%", + formatter: function (val) + { + return userPreferences.formatDateTime(val, { + addOffset: true, + appendTimeZone: true + }); + } + }], + plugins: { + pagination: { + pageSizes: ["10", "25", "50", "100"], + description: true, + sizeSwitch: true, + pageStepper: true, + gotoButton: true, + maxPageStep: 4, + position: "bottom" + }, + indirectSelection: true + }, + canSort: function (col) + { + return false; + } + }, messageGridDiv); + + connect.connect(that.grid, "onRowDblClick", that.grid, function (evt) + { + var idx = evt.rowIndex, theItem = this.getItem(idx); + showMessage.show(that.management, that.modelObj, theItem); + }); + + var deleteMessagesButton = query(".deleteMessagesButton", contentPane.containerNode)[0]; + var deleteWidget = registry.byNode(deleteMessagesButton); + connect.connect(deleteWidget, "onClick", function (evt) + { + event.stop(evt); + that.deleteMessages(); + }); + var clearQueueButton = query(".clearQueueButton", contentPane.containerNode)[0]; + var clearQueueWidget = registry.byNode(clearQueueButton); + connect.connect(clearQueueWidget, "onClick", function (evt) + { + event.stop(evt); + that.clearQueue(); + }); + var moveMessagesButton = query(".moveMessagesButton", contentPane.containerNode)[0]; + connect.connect(registry.byNode(moveMessagesButton), "onClick", function (evt) + { + event.stop(evt); + that.moveOrCopyMessages({move: true}); + }); + + var copyMessagesButton = query(".copyMessagesButton", contentPane.containerNode)[0]; + connect.connect(registry.byNode(copyMessagesButton), "onClick", function (evt) + { + event.stop(evt); + that.moveOrCopyMessages({move: false}); + }); + + var addBindingButton = query(".addBindingButton", contentPane.containerNode)[0]; + connect.connect(registry.byNode(addBindingButton), "onClick", function (evt) + { + event.stop(evt); + addBinding.show(that.management, that.modelObj); + }); + + var deleteQueueButton = query(".deleteQueueButton", contentPane.containerNode)[0]; + connect.connect(registry.byNode(deleteQueueButton), "onClick", function (evt) + { + event.stop(evt); + that.deleteQueue(); + }); + var editQueueButton = query(".editQueueButton", contentPane.containerNode)[0]; + connect.connect(registry.byNode(editQueueButton), "onClick", function (evt) + { + event.stop(evt); + editQueue.show(that.management, that.modelObj); + }); + userPreferences.addListener(that); + that.queueUpdater.update(function () + { + updater.add(that.queueUpdater); + }); + }); + }; + + Queue.prototype.deleteMessages = function () + { + var data = this.grid.selection.getSelected(); + if (data.length) + { + if (confirm("Delete " + data.length + " messages?")) + { + var modelObj = { + type: "queue", + name: "deleteMessages", + parent: this.modelObj + }; + var parameters = {messageIds: []}; + for (var i = 0; i < data.length; i++) + { + parameters.messageIds.push(data[i].id); + } + var that = this; + this.management.update(modelObj, parameters) + .then(function (result) + { + that.grid.selection.deselectAll(); + if (result && result[0]) + { + that.reloadGridData(); + } + }); + } + } + }; + Queue.prototype.clearQueue = function () + { + if (confirm("Clear all messages from queue?")) + { + var modelObj = { + type: "queue", + name: "clearQueue", + parent: this.modelObj + }; + var that = this; + this.management.update(modelObj, {}) + .then(function (result) + { + if (result) + { + that.reloadGridData(); + } + }); + } + }; + Queue.prototype.reloadGridData = function () + { + var currentPage = this.grid.pagination.currentPage; + var currentPageSize = this.grid.pagination.currentPageSize; + var first = (currentPage - 1 ) * currentPageSize; + var last = currentPage * currentPageSize; + this.grid.setQuery({ + first: first, + last: last + }); + this.queueUpdater.update(); + }; + Queue.prototype.moveOrCopyMessages = function (obj) + { + var that = this; + var move = obj.move; + var data = this.grid.selection.getSelected(); + if (data.length) + { + var that = this; + var i, putData = {messages: []}; + if (move) + { + putData.move = true; + } + for (i = 0; i < data.length; i++) + { + putData.messages.push(data[i].id); + } + moveMessages.show(that.management, that.modelObj, putData, function () + { + if (move) + { + that.reloadGridData(); + } + }); + + } + + }; + + Queue.prototype.startup = function () + { + this.grid.startup(); + }; + + Queue.prototype.close = function () + { + updater.remove(this.queueUpdater); + this.management.userPreferences.removeListener(this); + }; + + Queue.prototype.onPreferencesChange = function (data) + { + //this.grid._refresh(); + }; + + var queueTypeKeys = { + priority: "priorities", + lvq: "lvqKey", + sorted: "sortKey" + }; + + var queueTypeKeyNames = { + priority: "Number of priorities", + lvq: "LVQ key", + sorted: "Sort key" + }; + + function QueueUpdater(tabObject) + { + var that = this; + this.management = tabObject.management; + this.modelObj = tabObject.modelObj; + this.tabObject = tabObject; + var containerNode = tabObject.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", + "state", + "durable", + "messageDurability", + "maximumMessageTtl", + "minimumMessageTtl", + "exclusive", + "owner", + "lifetimePolicy", + "type", + "typeQualifier", + "alertRepeatGap", + "alertRepeatGapUnits", + "alertThresholdMessageAge", + "alertThresholdMessageAgeUnits", + "alertThresholdMessageSize", + "alertThresholdMessageSizeUnits", + "alertThresholdQueueDepthBytes", + "alertThresholdQueueDepthBytesUnits", + "alertThresholdQueueDepthMessages", + "alternateExchange", + "messageGroups", + "messageGroupKey", + "messageGroupSharedGroups", + "queueDepthMessages", + "queueDepthBytes", + "queueDepthBytesUnits", + "unacknowledgedMessages", + "unacknowledgedBytes", + "unacknowledgedBytesUnits", + "msgInRate", + "bytesInRate", + "bytesInRateUnits", + "msgOutRate", + "bytesOutRate", + "bytesOutRateUnits", + "queueFlowResumeSizeBytes", + "queueFlowControlSizeBytes", + "maximumDeliveryAttempts", + "oldestMessageAge"]); + + that.queueData = {} + that.bindingsGrid = new UpdatableStore([], findNode("bindings"), [{ + name: "Exchange", + field: "exchange", + width: "40%" + }, { + name: "Binding Key", + field: "name", + width: "30%" + }, { + name: "Arguments", + field: "argumentString", + width: "30%" + }]); + + 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%" + }]); + + } + + QueueUpdater.prototype.updateHeader = function () + { + + var bytesDepth; + this.name.innerHTML = entities.encode(String(this.queueData["name"])); + this.state.innerHTML = entities.encode(String(this.queueData["state"])); + this.durable.innerHTML = entities.encode(String(this.queueData["durable"])); + this.exclusive.innerHTML = entities.encode(String(this.queueData["exclusive"])); + this.owner.innerHTML = this.queueData["owner"] ? entities.encode(String(this.queueData["owner"])) : ""; + this.lifetimePolicy.innerHTML = entities.encode(String(this.queueData["lifetimePolicy"])); + this.messageDurability.innerHTML = entities.encode(String(this.queueData["messageDurability"])); + this.minimumMessageTtl.innerHTML = entities.encode(String(this.queueData["minimumMessageTtl"])); + this.maximumMessageTtl.innerHTML = entities.encode(String(this.queueData["maximumMessageTtl"])); + + this.alternateExchange.innerHTML = + this.queueData["alternateExchange"] ? entities.encode(String(this.queueData["alternateExchange"])) : ""; + + this.queueDepthMessages.innerHTML = entities.encode(String(this.queueData["queueDepthMessages"])); + bytesDepth = formatter.formatBytes(this.queueData["queueDepthBytes"]); + this.queueDepthBytes.innerHTML = "(" + bytesDepth.value; + this.queueDepthBytesUnits.innerHTML = bytesDepth.units + ")"; + + this.unacknowledgedMessages.innerHTML = entities.encode(String(this.queueData["unacknowledgedMessages"])); + bytesDepth = formatter.formatBytes(this.queueData["unacknowledgedBytes"]); + this.unacknowledgedBytes.innerHTML = "(" + bytesDepth.value; + this.unacknowledgedBytesUnits.innerHTML = bytesDepth.units + ")"; + this["type"].innerHTML = entities.encode(this.queueData["type"]); + if (this.queueData["type"] == "standard") + { + this.typeQualifier.style.display = "none"; + } + else + { + this.typeQualifier.innerHTML = entities.encode("(" + queueTypeKeyNames[this.queueData["type"]] + ": " + + this.queueData[queueTypeKeys[this.queueData["type"]]] + + ")"); + } + + if (this.queueData["messageGroupKey"]) + { + this.messageGroupKey.innerHTML = entities.encode(String(this.queueData["messageGroupKey"])); + this.messageGroupSharedGroups.innerHTML = + entities.encode(String(this.queueData["messageGroupSharedGroups"])); + this.messageGroups.style.display = "block"; + } + else + { + this.messageGroups.style.display = "none"; + } + + this.queueFlowControlSizeBytes.innerHTML = + entities.encode(String(this.queueData["queueFlowControlSizeBytes"])); + this.queueFlowResumeSizeBytes.innerHTML = + entities.encode(String(this.queueData["queueFlowResumeSizeBytes"])); + + this.oldestMessageAge.innerHTML = entities.encode(String(this.queueData["oldestMessageAge"] / 1000)); + var maximumDeliveryAttempts = this.queueData["maximumDeliveryAttempts"]; + this.maximumDeliveryAttempts.innerHTML = + entities.encode(String(maximumDeliveryAttempts == 0 ? "" : maximumDeliveryAttempts)); + }; + + QueueUpdater.prototype.update = function (callback) + { + + var thisObj = this; + + this.management.load(this.modelObj) + .then(function (data) + { + var i, j; + thisObj.queueData = data[0]; + util.flattenStatistics(thisObj.queueData); + if (callback) + { + callback(); + } + var bindings = thisObj.queueData["bindings"]; + var consumers = thisObj.queueData["consumers"]; + + if (bindings) + { + for (i = 0; i < bindings.length; i++) + { + bindings[i].argumentString = json.stringify(bindings[i].arguments); + } + } + thisObj.updateHeader(); + + // update alerting info + var alertRepeatGap = formatter.formatTime(thisObj.queueData["alertRepeatGap"]); + + thisObj.alertRepeatGap.innerHTML = alertRepeatGap.value; + thisObj.alertRepeatGapUnits.innerHTML = alertRepeatGap.units; + + var alertMsgAge = formatter.formatTime(thisObj.queueData["alertThresholdMessageAge"]); + + thisObj.alertThresholdMessageAge.innerHTML = alertMsgAge.value; + thisObj.alertThresholdMessageAgeUnits.innerHTML = alertMsgAge.units; + + var alertMsgSize = formatter.formatBytes(thisObj.queueData["alertThresholdMessageSize"]); + + thisObj.alertThresholdMessageSize.innerHTML = alertMsgSize.value; + thisObj.alertThresholdMessageSizeUnits.innerHTML = alertMsgSize.units; + + var alertQueueDepth = formatter.formatBytes(thisObj.queueData["alertThresholdQueueDepthBytes"]); + + thisObj.alertThresholdQueueDepthBytes.innerHTML = alertQueueDepth.value; + thisObj.alertThresholdQueueDepthBytesUnits.innerHTML = alertQueueDepth.units; + + thisObj.alertThresholdQueueDepthMessages.innerHTML = + entities.encode(String(thisObj.queueData["alertThresholdQueueDepthMessages"])); + + var sampleTime = new Date(); + var messageIn = thisObj.queueData["totalEnqueuedMessages"]; + var bytesIn = thisObj.queueData["totalEnqueuedBytes"]; + var messageOut = thisObj.queueData["totalDequeuedMessages"]; + var bytesOut = thisObj.queueData["totalDequeuedBytes"]; + + if (thisObj.sampleTime) + { + var samplePeriod = sampleTime.getTime() - thisObj.sampleTime.getTime(); + + var msgInRate = (1000 * (messageIn - thisObj.messageIn)) / samplePeriod; + var msgOutRate = (1000 * (messageOut - thisObj.messageOut)) / samplePeriod; + var bytesInRate = (1000 * (bytesIn - thisObj.bytesIn)) / samplePeriod; + var bytesOutRate = (1000 * (bytesOut - thisObj.bytesOut)) / samplePeriod; + + thisObj.msgInRate.innerHTML = msgInRate.toFixed(0); + var bytesInFormat = formatter.formatBytes(bytesInRate); + thisObj.bytesInRate.innerHTML = "(" + bytesInFormat.value; + thisObj.bytesInRateUnits.innerHTML = bytesInFormat.units + "/s)"; + + thisObj.msgOutRate.innerHTML = msgOutRate.toFixed(0); + 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; + thisObj.messageIn = messageIn; + thisObj.bytesIn = bytesIn; + thisObj.messageOut = messageOut; + thisObj.bytesOut = bytesOut; + thisObj.consumers = consumers; + + // update bindings + thisObj.bindingsGrid.update(thisObj.queueData.bindings); + + // update consumers + thisObj.consumersGrid.update(thisObj.queueData.consumers) + + }, function (error) + { + util.tabErrorHandler(error, { + updater: thisObj, + contentPane: thisObj.tabObject.contentPane, + tabContainer: thisObj.tabObject.controller.tabContainer, + name: thisObj.modelObj.name, + category: "Queue" + }); + }); + }; + + Queue.prototype.deleteQueue = function () + { + if (confirm("Are you sure you want to delete queue '" + 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 Queue(name, parent, controller) - { - this.name = name; - this.controller = controller; - this.management = controller.management; - this.modelObj = { - type: "queue", - name: name, - parent: parent - }; - } - - Queue.prototype.getQueueName = function () - { - return this.name; - }; - - Queue.prototype.getVirtualHostName = function () - { - return this.modelObj.parent.name; - }; - - Queue.prototype.getVirtualHostNodeName = function () - { - return this.modelObj.parent.parent.name; - }; - - Queue.prototype.getTitle = function () - { - return "Queue: " + this.name; - }; - - Queue.prototype.open = function (contentPane) - { - var that = this; - this.contentPane = contentPane; - - contentPane.containerNode.innerHTML = template; - parser.parse(contentPane.containerNode).then(function (instances) - { - that.queueUpdater = new QueueUpdater(that); - - // double encode to allow slashes in object names. - var myStore = new JsonRest({ - management: that.management, - modelObject: that.modelObj, - queryOperation: "getMessageInfo" - }); - var messageGridDiv = query(".messages", - contentPane.containerNode)[0]; - that.dataStore = - new ObjectStore({objectStore: myStore}); - var userPreferences = this.management.userPreferences; - that.grid = new EnhancedGrid({ - store: that.dataStore, - autoHeight: 10, - keepSelection: true, - structure: [{ - name: "Size", - field: "size", - width: "40%" - }, - { - name: "State", - field: "state", - width: "30%" - }, - - { - name: "Arrival", - field: "arrivalTime", - width: "30%", - formatter: function (val) - { - return userPreferences.formatDateTime( - val, - { - addOffset: true, - appendTimeZone: true - }); - } - }], - plugins: { - pagination: { - pageSizes: ["10", "25", "50", "100"], - description: true, - sizeSwitch: true, - pageStepper: true, - gotoButton: true, - maxPageStep: 4, - position: "bottom" - }, - indirectSelection: true - }, - canSort: function (col) - { - return false; - } - }, messageGridDiv); - - connect.connect(that.grid, - "onRowDblClick", - that.grid, - function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem( - idx); - showMessage.show(that.management, - that.modelObj, - theItem); - }); - - var deleteMessagesButton = query(".deleteMessagesButton", - contentPane.containerNode)[0]; - var deleteWidget = registry.byNode(deleteMessagesButton); - connect.connect(deleteWidget, "onClick", function (evt) - { - event.stop(evt); - that.deleteMessages(); - }); - var clearQueueButton = query(".clearQueueButton", - contentPane.containerNode)[0]; - var clearQueueWidget = registry.byNode(clearQueueButton); - connect.connect(clearQueueWidget, - "onClick", - function (evt) - { - event.stop(evt); - that.clearQueue(); - }); - var moveMessagesButton = query(".moveMessagesButton", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(moveMessagesButton), - "onClick", - function (evt) - { - event.stop(evt); - that.moveOrCopyMessages({move: true}); - }); - - var copyMessagesButton = query(".copyMessagesButton", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(copyMessagesButton), - "onClick", - function (evt) - { - event.stop(evt); - that.moveOrCopyMessages({move: false}); - }); - - var addBindingButton = query(".addBindingButton", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(addBindingButton), - "onClick", - function (evt) - { - event.stop(evt); - addBinding.show(that.management, - that.modelObj); - }); - - var deleteQueueButton = query(".deleteQueueButton", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(deleteQueueButton), - "onClick", - function (evt) - { - event.stop(evt); - that.deleteQueue(); - }); - var editQueueButton = query(".editQueueButton", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(editQueueButton), - "onClick", - function (evt) - { - event.stop(evt); - editQueue.show(that.management, - that.modelObj); - }); - userPreferences.addListener(that); - that.queueUpdater.update(function () - { - updater.add(that.queueUpdater); - }); - }); - }; - - Queue.prototype.deleteMessages = function () - { - var data = this.grid.selection.getSelected(); - if (data.length) - { - if (confirm("Delete " + data.length + " messages?")) - { - var modelObj = { - type: "queue", - name: "deleteMessages", - parent: this.modelObj - }; - var parameters = {messageIds: []}; - for (var i = 0; i < data.length; i++) - { - parameters.messageIds.push(data[i].id); - } - var that = this; - this.management.update(modelObj, parameters).then(function (result) - { - that.grid.selection.deselectAll(); - if (result && result[0]) - { - that.reloadGridData(); - } - }); - } - } - }; - Queue.prototype.clearQueue = function () - { - if (confirm("Clear all messages from queue?")) - { - var modelObj = { - type: "queue", - name: "clearQueue", - parent: this.modelObj - }; - var that = this; - this.management.update(modelObj, {}).then(function (result) - { - if (result) - { - that.reloadGridData(); - } - }); - } - }; - Queue.prototype.reloadGridData = function () - { - var currentPage = this.grid.pagination.currentPage; - var currentPageSize = this.grid.pagination.currentPageSize; - var first = (currentPage - 1 ) * currentPageSize; - var last = currentPage * currentPageSize; - this.grid.setQuery({ - first: first, - last: last - }); - this.queueUpdater.update(); - }; - Queue.prototype.moveOrCopyMessages = function (obj) - { - var that = this; - var move = obj.move; - var data = this.grid.selection.getSelected(); - if (data.length) - { - var that = this; - var i, putData = {messages: []}; - if (move) - { - putData.move = true; - } - for (i = 0; i < data.length; i++) - { - putData.messages.push(data[i].id); - } - moveMessages.show(that.management, that.modelObj, putData, function () - { - if (move) - { - that.reloadGridData(); - } - }); - - } - - }; - - Queue.prototype.startup = function () - { - this.grid.startup(); - }; - - Queue.prototype.close = function () - { - updater.remove(this.queueUpdater); - this.management.userPreferences.removeListener(this); - }; - - Queue.prototype.onPreferencesChange = function (data) - { - //this.grid._refresh(); - }; - - var queueTypeKeys = { - priority: "priorities", - lvq: "lvqKey", - sorted: "sortKey" - }; - - var queueTypeKeyNames = { - priority: "Number of priorities", - lvq: "LVQ key", - sorted: "Sort key" - }; - - function QueueUpdater(tabObject) - { - var that = this; - this.management = tabObject.management; - this.modelObj = tabObject.modelObj; - this.tabObject = tabObject; - var containerNode = tabObject.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", - "state", - "durable", - "messageDurability", - "maximumMessageTtl", - "minimumMessageTtl", - "exclusive", - "owner", - "lifetimePolicy", - "type", - "typeQualifier", - "alertRepeatGap", - "alertRepeatGapUnits", - "alertThresholdMessageAge", - "alertThresholdMessageAgeUnits", - "alertThresholdMessageSize", - "alertThresholdMessageSizeUnits", - "alertThresholdQueueDepthBytes", - "alertThresholdQueueDepthBytesUnits", - "alertThresholdQueueDepthMessages", - "alternateExchange", - "messageGroups", - "messageGroupKey", - "messageGroupSharedGroups", - "queueDepthMessages", - "queueDepthBytes", - "queueDepthBytesUnits", - "unacknowledgedMessages", - "unacknowledgedBytes", - "unacknowledgedBytesUnits", - "msgInRate", - "bytesInRate", - "bytesInRateUnits", - "msgOutRate", - "bytesOutRate", - "bytesOutRateUnits", - "queueFlowResumeSizeBytes", - "queueFlowControlSizeBytes", - "maximumDeliveryAttempts", - "oldestMessageAge"]); - - that.queueData = {} - that.bindingsGrid = new UpdatableStore([], findNode("bindings"), [{ - name: "Exchange", - field: "exchange", - width: "40%" - }, - { - name: "Binding Key", - field: "name", - width: "30%" - }, - { - name: "Arguments", - field: "argumentString", - width: "30%" - }]); - - 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%" - }]); - - } - - QueueUpdater.prototype.updateHeader = function () - { - - var bytesDepth; - this.name.innerHTML = entities.encode(String(this.queueData["name"])); - this.state.innerHTML = entities.encode(String(this.queueData["state"])); - this.durable.innerHTML = entities.encode(String(this.queueData["durable"])); - this.exclusive.innerHTML = entities.encode(String(this.queueData["exclusive"])); - this.owner.innerHTML = this.queueData["owner"] ? entities.encode(String(this.queueData["owner"])) : ""; - this.lifetimePolicy.innerHTML = entities.encode(String(this.queueData["lifetimePolicy"])); - this.messageDurability.innerHTML = entities.encode(String(this.queueData["messageDurability"])); - this.minimumMessageTtl.innerHTML = entities.encode(String(this.queueData["minimumMessageTtl"])); - this.maximumMessageTtl.innerHTML = entities.encode(String(this.queueData["maximumMessageTtl"])); - - this.alternateExchange.innerHTML = this.queueData["alternateExchange"] - ? entities.encode(String(this.queueData["alternateExchange"])) - : ""; - - this.queueDepthMessages.innerHTML = entities.encode(String(this.queueData["queueDepthMessages"])); - bytesDepth = formatter.formatBytes(this.queueData["queueDepthBytes"]); - this.queueDepthBytes.innerHTML = "(" + bytesDepth.value; - this.queueDepthBytesUnits.innerHTML = bytesDepth.units + ")"; - - this.unacknowledgedMessages.innerHTML = - entities.encode(String(this.queueData["unacknowledgedMessages"])); - bytesDepth = formatter.formatBytes(this.queueData["unacknowledgedBytes"]); - this.unacknowledgedBytes.innerHTML = "(" + bytesDepth.value; - this.unacknowledgedBytesUnits.innerHTML = bytesDepth.units + ")"; - this["type"].innerHTML = entities.encode(this.queueData["type"]); - if (this.queueData["type"] == "standard") - { - this.typeQualifier.style.display = "none"; - } - else - { - this.typeQualifier.innerHTML = entities.encode("(" + queueTypeKeyNames[this.queueData["type"]] + ": " - + this.queueData[queueTypeKeys[this.queueData["type"]]] - + ")"); - } - - if (this.queueData["messageGroupKey"]) - { - this.messageGroupKey.innerHTML = entities.encode(String(this.queueData["messageGroupKey"])); - this.messageGroupSharedGroups.innerHTML = - entities.encode(String(this.queueData["messageGroupSharedGroups"])); - this.messageGroups.style.display = "block"; - } - else - { - this.messageGroups.style.display = "none"; - } - - this.queueFlowControlSizeBytes.innerHTML = - entities.encode(String(this.queueData["queueFlowControlSizeBytes"])); - this.queueFlowResumeSizeBytes.innerHTML = - entities.encode(String(this.queueData["queueFlowResumeSizeBytes"])); - - this.oldestMessageAge.innerHTML = entities.encode(String(this.queueData["oldestMessageAge"] / 1000)); - var maximumDeliveryAttempts = this.queueData["maximumDeliveryAttempts"]; - this.maximumDeliveryAttempts.innerHTML = - entities.encode(String(maximumDeliveryAttempts == 0 ? "" : maximumDeliveryAttempts)); - }; - - QueueUpdater.prototype.update = function (callback) - { - - var thisObj = this; - - this.management.load(this.modelObj).then(function (data) - { - var i, j; - thisObj.queueData = data[0]; - util.flattenStatistics(thisObj.queueData); - if (callback) - { - callback(); - } - var bindings = thisObj.queueData["bindings"]; - var consumers = thisObj.queueData["consumers"]; - - if (bindings) - { - for (i = 0; i < bindings.length; i++) - { - bindings[i].argumentString = - json.stringify(bindings[i].arguments); - } - } - thisObj.updateHeader(); - - // update alerting info - var alertRepeatGap = formatter.formatTime(thisObj.queueData["alertRepeatGap"]); - - thisObj.alertRepeatGap.innerHTML = alertRepeatGap.value; - thisObj.alertRepeatGapUnits.innerHTML = - alertRepeatGap.units; - - var alertMsgAge = formatter.formatTime(thisObj.queueData["alertThresholdMessageAge"]); - - thisObj.alertThresholdMessageAge.innerHTML = - alertMsgAge.value; - thisObj.alertThresholdMessageAgeUnits.innerHTML = - alertMsgAge.units; - - var alertMsgSize = formatter.formatBytes(thisObj.queueData["alertThresholdMessageSize"]); - - thisObj.alertThresholdMessageSize.innerHTML = - alertMsgSize.value; - thisObj.alertThresholdMessageSizeUnits.innerHTML = - alertMsgSize.units; - - var alertQueueDepth = formatter.formatBytes(thisObj.queueData["alertThresholdQueueDepthBytes"]); - - thisObj.alertThresholdQueueDepthBytes.innerHTML = - alertQueueDepth.value; - thisObj.alertThresholdQueueDepthBytesUnits.innerHTML = - alertQueueDepth.units; - - thisObj.alertThresholdQueueDepthMessages.innerHTML = - entities.encode(String(thisObj.queueData["alertThresholdQueueDepthMessages"])); - - var sampleTime = new Date(); - var messageIn = thisObj.queueData["totalEnqueuedMessages"]; - var bytesIn = thisObj.queueData["totalEnqueuedBytes"]; - var messageOut = thisObj.queueData["totalDequeuedMessages"]; - var bytesOut = thisObj.queueData["totalDequeuedBytes"]; - - if (thisObj.sampleTime) - { - var samplePeriod = sampleTime.getTime() - - thisObj.sampleTime.getTime(); - - var msgInRate = (1000 * (messageIn - thisObj.messageIn)) - / samplePeriod; - var msgOutRate = (1000 * (messageOut - - thisObj.messageOut)) - / samplePeriod; - var bytesInRate = (1000 * (bytesIn - thisObj.bytesIn)) - / samplePeriod; - var bytesOutRate = (1000 * (bytesOut - - thisObj.bytesOut)) - / samplePeriod; - - thisObj.msgInRate.innerHTML = msgInRate.toFixed(0); - var bytesInFormat = formatter.formatBytes(bytesInRate); - thisObj.bytesInRate.innerHTML = - "(" + bytesInFormat.value; - thisObj.bytesInRateUnits.innerHTML = - bytesInFormat.units + "/s)"; - - thisObj.msgOutRate.innerHTML = msgOutRate.toFixed(0); - 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; - thisObj.messageIn = messageIn; - thisObj.bytesIn = bytesIn; - thisObj.messageOut = messageOut; - thisObj.bytesOut = bytesOut; - thisObj.consumers = consumers; - - // update bindings - thisObj.bindingsGrid.update(thisObj.queueData.bindings); - - // update consumers - thisObj.consumersGrid.update(thisObj.queueData.consumers) - - }, function (error) - { - util.tabErrorHandler(error, { - updater: thisObj, - contentPane: thisObj.tabObject.contentPane, - tabContainer: thisObj.tabObject.controller.tabContainer, - name: thisObj.modelObj.name, - category: "Queue" - }); - }); - }; - - Queue.prototype.deleteQueue = function () - { - if (confirm("Are you sure you want to delete queue '" + 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 Queue; - }); + return Queue; + });
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js?rev=1741993&r1=1741992&r2=1741993&view=diff ============================================================================== --- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js (original) +++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js Mon May 2 15:57:52 2016 @@ -31,162 +31,160 @@ define(["dojo/dom", "qpid/management/addStore", "dojo/text!showTrustStore.html", "dojo/domReady!"], - function (dom, parser, query, connect, registry, entities, properties, updater, util, formatter, addStore, template) - { + function (dom, parser, query, connect, registry, entities, properties, updater, util, formatter, addStore, template) + { - function TrustStore(name, parent, controller) - { - this.keyStoreName = name; - this.controller = controller; - this.modelObj = { - type: "truststore", - name: name, - parent: parent - }; - this.management = controller.management; - } - - TrustStore.prototype.getTitle = function () - { - return "TrustStore: " + this.keyStoreName; - }; - - TrustStore.prototype.open = function (contentPane) - { - var that = this; - this.contentPane = contentPane; - - contentPane.containerNode.innerHTML = template; - parser.parse(contentPane.containerNode).then(function (instances) - { - - that.keyStoreUpdater = new KeyStoreUpdater(that); - that.keyStoreUpdater.update(function () - { - updater.add(that.keyStoreUpdater); - }); - - var deleteTrustStoreButton = query(".deleteStoreButton", - contentPane.containerNode)[0]; - var node = registry.byNode(deleteTrustStoreButton); - connect.connect(node, "onClick", function (evt) - { - that.deleteKeyStore(); - }); - - var editTrustStoreButton = query(".editStoreButton", - contentPane.containerNode)[0]; - var node = registry.byNode(editTrustStoreButton); - connect.connect(node, "onClick", function (evt) - { - that.management.load(that.modelObj, {actuals: true}) - .then(function (data) - { - addStore.setupTypeStore(that.management, - "TrustStore", - that.modelObj); - addStore.show(data[0], that.url); - }, util.xhrErrorHandler); - }); - }); - }; - - TrustStore.prototype.close = function () - { - updater.remove(this.keyStoreUpdater); - }; - - function KeyStoreUpdater(tabObject) - { - var that = this; - var containerNode = tabObject.contentPane.containerNode; - this.keyStoreDetailsContainer = query(".typeFieldsContainer", containerNode)[0]; - this.management = tabObject.management; - this.modelObj = tabObject.modelObj; - this.tabObject = tabObject; - - 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", "exposedAsMessageSource"]); - - } - - KeyStoreUpdater.prototype.updateHeader = function () - { - this.name.innerHTML = entities.encode(String(this.trustStoreData["name"])); - this.type.innerHTML = entities.encode(String(this.trustStoreData["type"])); - this.state.innerHTML = entities.encode(String(this.trustStoreData["state"])); - this.exposedAsMessageSource.innerHTML = - entities.encode(String(this.trustStoreData["exposedAsMessageSource"])); - }; - - KeyStoreUpdater.prototype.update = function (callback) - { - var that = this; - this.management.load(this.modelObj).then(function (data) - { - that.trustStoreData = data[0]; - that.updateHeader(); - - if (callback) - { - callback(); - } - - if (that.details) - { - that.details.update(that.trustStoreData); - } - else - { - require(["qpid/management/store/" + encodeURIComponent( - that.trustStoreData.type.toLowerCase()) + "/show"], - function (DetailsUI) - { - that.details = new DetailsUI({ - containerNode: that.keyStoreDetailsContainer, - parent: that - }); - that.details.update(that.trustStoreData); - }); - } - }, function (error) - { - util.tabErrorHandler(error, { - updater: that, - contentPane: that.tabObject.contentPane, - tabContainer: that.tabObject.controller.tabContainer, - name: that.modelObj.name, - category: "Trust Store" - }); - }); - }; - - TrustStore.prototype.deleteKeyStore = function () - { - if (confirm("Are you sure you want to delete trust store '" + this.keyStoreName + "'?")) - { - var that = this; - this.management.remove(this.modelObj).then(function (data) - { - that.contentPane.onClose() - that.controller.tabContainer.removeChild(that.contentPane); - that.contentPane.destroyRecursive(); - that.close(); - }, util.xhrErrorHandler); - } - } + function TrustStore(name, parent, controller) + { + this.keyStoreName = name; + this.controller = controller; + this.modelObj = { + type: "truststore", + name: name, + parent: parent + }; + this.management = controller.management; + } + + TrustStore.prototype.getTitle = function () + { + return "TrustStore: " + this.keyStoreName; + }; + + TrustStore.prototype.open = function (contentPane) + { + var that = this; + this.contentPane = contentPane; + + contentPane.containerNode.innerHTML = template; + parser.parse(contentPane.containerNode) + .then(function (instances) + { + + that.keyStoreUpdater = new KeyStoreUpdater(that); + that.keyStoreUpdater.update(function () + { + updater.add(that.keyStoreUpdater); + }); + + var deleteTrustStoreButton = query(".deleteStoreButton", contentPane.containerNode)[0]; + var node = registry.byNode(deleteTrustStoreButton); + connect.connect(node, "onClick", function (evt) + { + that.deleteKeyStore(); + }); + + var editTrustStoreButton = query(".editStoreButton", contentPane.containerNode)[0]; + var node = registry.byNode(editTrustStoreButton); + connect.connect(node, "onClick", function (evt) + { + that.management.load(that.modelObj, {actuals: true}) + .then(function (data) + { + addStore.setupTypeStore(that.management, "TrustStore", that.modelObj); + addStore.show(data[0], that.url); + }, util.xhrErrorHandler); + }); + }); + }; + + TrustStore.prototype.close = function () + { + updater.remove(this.keyStoreUpdater); + }; + + function KeyStoreUpdater(tabObject) + { + var that = this; + var containerNode = tabObject.contentPane.containerNode; + this.keyStoreDetailsContainer = query(".typeFieldsContainer", containerNode)[0]; + this.management = tabObject.management; + this.modelObj = tabObject.modelObj; + this.tabObject = tabObject; + + 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", "exposedAsMessageSource"]); + + } + + KeyStoreUpdater.prototype.updateHeader = function () + { + this.name.innerHTML = entities.encode(String(this.trustStoreData["name"])); + this.type.innerHTML = entities.encode(String(this.trustStoreData["type"])); + this.state.innerHTML = entities.encode(String(this.trustStoreData["state"])); + this.exposedAsMessageSource.innerHTML = + entities.encode(String(this.trustStoreData["exposedAsMessageSource"])); + }; + + KeyStoreUpdater.prototype.update = function (callback) + { + var that = this; + this.management.load(this.modelObj) + .then(function (data) + { + that.trustStoreData = data[0]; + that.updateHeader(); + + if (callback) + { + callback(); + } + + if (that.details) + { + that.details.update(that.trustStoreData); + } + else + { + require(["qpid/management/store/" + encodeURIComponent(that.trustStoreData.type.toLowerCase()) + + "/show"], function (DetailsUI) + { + that.details = new DetailsUI({ + containerNode: that.keyStoreDetailsContainer, + parent: that + }); + that.details.update(that.trustStoreData); + }); + } + }, function (error) + { + util.tabErrorHandler(error, { + updater: that, + contentPane: that.tabObject.contentPane, + tabContainer: that.tabObject.controller.tabContainer, + name: that.modelObj.name, + category: "Trust Store" + }); + }); + }; + + TrustStore.prototype.deleteKeyStore = function () + { + if (confirm("Are you sure you want to delete trust store '" + this.keyStoreName + "'?")) + { + var that = this; + this.management.remove(this.modelObj) + .then(function (data) + { + that.contentPane.onClose() + that.controller.tabContainer.removeChild(that.contentPane); + that.contentPane.destroyRecursive(); + that.close(); + }, util.xhrErrorHandler); + } + } - return TrustStore; - }); + return TrustStore; + }); Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js?rev=1741993&r1=1741992&r2=1741993&view=diff ============================================================================== --- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js (original) +++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js Mon May 2 15:57:52 2016 @@ -34,46 +34,48 @@ define(["dojo/date", "dojo/date/locale", UserPreferences.prototype.load = function (successCallback, failureCallback) { var that = this; - this.management.get({url: "service/preferences"}).then(function (preferences) - { - that.preferences = preferences; - for (var name in preferences) - { - that[name] = preferences[name]; - } - if (successCallback) - { - successCallback(); - } - }, function (error) - { - that.preferencesError = error; - if (failureCallback) - { - failureCallback(); - } - }); + this.management.get({url: "service/preferences"}) + .then(function (preferences) + { + that.preferences = preferences; + for (var name in preferences) + { + that[name] = preferences[name]; + } + if (successCallback) + { + successCallback(); + } + }, function (error) + { + that.preferencesError = error; + if (failureCallback) + { + failureCallback(); + } + }); } UserPreferences.prototype.save = function (preferences, successCallback, failureCallback) { var that = this; - this.management.post({url: "service/preferences"}, preferences).then(function (x) - { - that.preferences = preferences; - for (var name in preferences) - { - if (preferences.hasOwnProperty(name)) - { - that[name] = preferences[name]; - } - } - that._notifyListeners(preferences); - if (successCallback) - { - successCallback(preferences); - } - }, failureCallback); + this.management.post({url: "service/preferences"}, preferences) + .then(function (x) + { + that.preferences = preferences; + for (var name in preferences) + { + if (preferences.hasOwnProperty(name)) + { + that[name] = preferences[name]; + } + } + that._notifyListeners(preferences); + if (successCallback) + { + successCallback(preferences); + } + }, failureCallback); }; var fields = ["preferencesError", "management", "listeners"]; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
