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=1741609&r1=1741608&r2=1741609&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 Fri Apr 29 11:04:40 2016 @@ -42,243 +42,313 @@ 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) { + function Queue(name, parent, controller) + { this.name = name; this.controller = controller; this.management = controller.management; - this.modelObj = { type: "queue", name: name, parent: parent }; + this.modelObj = { + type: "queue", + name: name, + parent: parent + }; } - Queue.prototype.getQueueName = function() + Queue.prototype.getQueueName = function () { return this.name; }; - - Queue.prototype.getVirtualHostName = function() + Queue.prototype.getVirtualHostName = function () { return this.modelObj.parent.name; }; - Queue.prototype.getVirtualHostNodeName = function() + Queue.prototype.getVirtualHostNodeName = function () { return this.modelObj.parent.parent.name; }; - Queue.prototype.getTitle = function() + Queue.prototype.getTitle = function () { return "Queue: " + this.name; }; - Queue.prototype.open = function(contentPane) { + 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 );}); - }); + 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() + Queue.prototype.deleteMessages = function () { var data = this.grid.selection.getSelected(); - if(data.length) + if (data.length) { - if(confirm("Delete " + data.length + " messages?")) + 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++) + 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); + 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(); - } - }); + this.management.update(modelObj, parameters).then(function (result) + { + that.grid.selection.deselectAll(); + if (result && result[0]) + { + that.reloadGridData(); + } + }); } } }; - Queue.prototype.clearQueue = function() + Queue.prototype.clearQueue = function () { - if(confirm("Clear all messages from queue?")) + if (confirm("Clear all messages from queue?")) { - var modelObj = { type: "queue", name: "clearQueue", parent: this.modelObj }; + var modelObj = { + type: "queue", + name: "clearQueue", + parent: this.modelObj + }; var that = this; - this.management.update(modelObj, {}).then( - function(result) - { - if (result) - { - that.reloadGridData(); - } - }); + this.management.update(modelObj, {}).then(function (result) + { + if (result) + { + that.reloadGridData(); + } + }); } }; - Queue.prototype.reloadGridData = function() + 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(); + 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) { + Queue.prototype.moveOrCopyMessages = function (obj) + { var that = this; var move = obj.move; var data = this.grid.selection.getSelected(); - if(data.length) { + if (data.length) + { var that = this; - var i, putData = { messages:[] }; - if(move) { + var i, putData = {messages: []}; + if (move) + { putData.move = true; } - for(i = 0; i<data.length; i++) { + 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(); - } - }); + moveMessages.show(that.management, that.modelObj, putData, function () + { + if (move) + { + that.reloadGridData(); + } + }); } - - }; - Queue.prototype.startup = function() { + Queue.prototype.startup = function () + { this.grid.startup(); }; - Queue.prototype.close = function() { - updater.remove( this.queueUpdater ); + Queue.prototype.close = function () + { + updater.remove(this.queueUpdater); this.management.userPreferences.removeListener(this); }; - Queue.prototype.onPreferencesChange = function(data) + Queue.prototype.onPreferencesChange = function (data) { - //this.grid._refresh(); + //this.grid._refresh(); }; var queueTypeKeys = { - priority: "priorities", - lvq: "lvqKey", - sorted: "sortKey" - }; + priority: "priorities", + lvq: "lvqKey", + sorted: "sortKey" + }; var queueTypeKeyNames = { - priority: "Number of priorities", - lvq: "LVQ key", - sorted: "Sort key" - }; + priority: "Number of priorities", + lvq: "LVQ key", + sorted: "Sort key" + }; function QueueUpdater(tabObject) { @@ -288,15 +358,17 @@ define(["dojo/_base/declare", this.tabObject = tabObject; var containerNode = tabObject.contentPane.containerNode; - function findNode(name) { + 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]); - } + for (var i = 0; i < names.length; i++) + { + that[names[i]] = findNode(names[i]); + } } storeNodes(["name", @@ -340,67 +412,91 @@ define(["dojo/_base/declare", "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%"} - ]); - - - - + 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() + 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.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"] ); + 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.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" ]); + 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" ]]] + ")"); + this.typeQualifier.innerHTML = entities.encode("(" + queueTypeKeyNames[this.queueData["type"]] + ": " + + this.queueData[queueTypeKeys[this.queueData["type"]]] + + ")"); } - if(this.queueData["messageGroupKey"]) + if (this.queueData["messageGroupKey"]) { this.messageGroupKey.innerHTML = entities.encode(String(this.queueData["messageGroupKey"])); - this.messageGroupSharedGroups.innerHTML = entities.encode(String(this.queueData["messageGroupSharedGroups"])); + this.messageGroupSharedGroups.innerHTML = + entities.encode(String(this.queueData["messageGroupSharedGroups"])); this.messageGroups.style.display = "block"; } else @@ -408,142 +504,180 @@ define(["dojo/_base/declare", 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)); + 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) + 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"}); - }); + 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+"'?")) { + 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); + this.management.remove(this.modelObj).then(function (data) + { + that.contentPane.onClose() + that.controller.tabContainer.removeChild(that.contentPane); + that.contentPane.destroyRecursive(); + }, util.xhrErrorHandler); } }
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=1741609&r1=1741608&r2=1741609&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 Fri Apr 29 11:04:40 2016 @@ -31,53 +31,69 @@ 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) { + function TrustStore(name, parent, controller) + { this.keyStoreName = name; this.controller = controller; - this.modelObj = { type: "truststore", name: name, parent: parent}; + this.modelObj = { + type: "truststore", + name: name, + parent: parent + }; this.management = controller.management; } - TrustStore.prototype.getTitle = function() { + TrustStore.prototype.getTitle = function () + { return "TrustStore: " + this.keyStoreName; }; - TrustStore.prototype.open = function(contentPane) { + 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); - }); - }); + 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 ); + TrustStore.prototype.close = function () + { + updater.remove(this.keyStoreUpdater); }; function KeyStoreUpdater(tabObject) @@ -89,82 +105,86 @@ define(["dojo/dom", this.modelObj = tabObject.modelObj; this.tabObject = tabObject; - function findNode(name) { - return query("." + name , containerNode)[0]; + 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]); - } + for (var i = 0; i < names.length; i++) + { + that[names[i]] = findNode(names[i]); + } } - storeNodes(["name", - "type", - "state", - "exposedAsMessageSource" - ]); + storeNodes(["name", "type", "state", "exposedAsMessageSource"]); } - KeyStoreUpdater.prototype.updateHeader = function() + 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" ])); + 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) + 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" }); - }); + 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+"'?")) { + 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); + this.management.remove(this.modelObj).then(function (data) + { + that.contentPane.onClose() + that.controller.tabContainer.removeChild(that.contentPane); + that.contentPane.destroyRecursive(); + that.close(); + }, util.xhrErrorHandler); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
