You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2014/08/04 17:50:49 UTC
svn commit: r1615629 - in
/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources:
js/qpid/common/util.js js/qpid/management/VirtualHost.js
js/qpid/management/VirtualHostNode.js showVirtualHost.html
Author: orudyy
Date: Mon Aug 4 15:50:49 2014
New Revision: 1615629
URL: http://svn.apache.org/r1615629
Log:
QPID-5928: [Java Broker] Modify web management console to hide queues and exchanges when virtualhost host is stopped or unavailable
Modified:
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js?rev=1615629&r1=1615628&r2=1615629&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js Mon Aug 4 15:50:49 2014
@@ -620,5 +620,21 @@ define(["dojo/_base/xhr",
return values;
}
+ util.updateUpdatableStore = function(updatableStore, data)
+ {
+ var currentRowCount = updatableStore.grid.rowCount;
+ updatableStore.grid.domNode.style.display = data ? "block" : "none";
+ updatableStore.update(data || []);
+ if (data)
+ {
+ if (currentRowCount == 0 && data.length == 1)
+ {
+ // grid with a single row is not rendering properly after being hidden
+ // force rendering
+ updatableStore.grid.render();
+ }
+ }
+ }
+
return util;
});
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js?rev=1615629&r1=1615628&r2=1615629&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js Mon Aug 4 15:50:49 2014
@@ -187,7 +187,9 @@ define(["dojo/_base/xhr",
"storeTransactionIdleTimeoutClose",
"storeTransactionIdleTimeoutWarn",
"storeTransactionOpenTimeoutClose",
- "storeTransactionOpenTimeoutWarn"
+ "storeTransactionOpenTimeoutWarn",
+ "virtualHostConnections",
+ "virtualHostChildren"
]);
this.query = "api/latest/virtualhost/"+ encodeURIComponent(vhost.parent.name) + "/" + encodeURIComponent(vhost.name);
@@ -204,7 +206,7 @@ define(["dojo/_base/xhr",
keepSelection: true,
plugins: {
pagination: {
- pageSizes: ["10", "25", "50", "100"],
+ pageSizes: [10, 25, 50, 100],
description: true,
sizeSwitch: true,
pageStepper: true,
@@ -218,9 +220,9 @@ define(["dojo/_base/xhr",
that.updateHeader();
that.queuesGrid = new UpdatableStore(that.vhostData.queues, findNode("queues"),
- [ { name: "Name", field: "name", width: "20%"},
+ [ { name: "Name", field: "name", width: "30%"},
{ name: "Type", field: "type", width: "20%"},
- { name: "Consumers", field: "consumerCount", width: "20%"},
+ { name: "Consumers", field: "consumerCount", width: "10%"},
{ name: "Depth (msgs)", field: "queueDepthMessages", width: "20%"},
{ name: "Depth (bytes)", field: "queueDepthBytes", width: "20%",
get: function(rowIndex, item)
@@ -248,9 +250,9 @@ define(["dojo/_base/xhr",
that.exchangesGrid = new UpdatableStore(that.vhostData.exchanges, findNode("exchanges"),
[
- { name: "Name", field: "name", width: "40%"},
+ { name: "Name", field: "name", width: "50%"},
{ name: "Type", field: "type", width: "30%"},
- { name: "Binding Count", field: "bindingCount", width: "30%"}
+ { name: "Binding Count", field: "bindingCount", width: "20%"}
],
function(obj)
{
@@ -321,11 +323,28 @@ define(["dojo/_base/xhr",
xhr.get({url: this.query, sync: properties.useSyncGet, handleAs: "json"})
.then(function(data) {
- thisObj.vhostData = data[0];
+ thisObj.vhostData = data[0] || {name: thisObj.virtualHost.name,statistics:{messagesIn:0,bytesIn:0,messagesOut:0,bytesOut:0}};
+ try
+ {
+ thisObj._update();
+ }
+ catch(e)
+ {
+ if (console && console.error)
+ {
+ console.error(e);
+ }
+ }
+ });
+ }
- thisObj.virtualHost.startButton.set("disabled", thisObj.vhostData.state != "STOPPED");
- thisObj.virtualHost.stopButton.set("disabled", thisObj.vhostData.state != "ACTIVE");
- thisObj.virtualHost.editButton.set("disabled", thisObj.vhostData.state == "UNAVAILABLE");
+ Updater.prototype._update = function()
+ {
+ var thisObj = this;
+ this.virtualHost.startButton.set("disabled", !this.vhostData.state || this.vhostData.state != "STOPPED");
+ this.virtualHost.stopButton.set("disabled", !this.vhostData.state || this.vhostData.state != "ACTIVE");
+ this.virtualHost.editButton.set("disabled", !this.vhostData.state || this.vhostData.state == "UNAVAILABLE");
+ this.virtualHost.deleteButton.set("disabled", !this.vhostData.state);
util.flattenStatistics( thisObj.vhostData );
var connections = thisObj.vhostData[ "connections" ];
@@ -405,26 +424,7 @@ define(["dojo/_base/xhr",
thisObj.bytesOut = bytesOut;
thisObj.connections = connections;
- // update queues
- thisObj.queuesGrid.update(thisObj.vhostData.queues);
-
- // update exchanges
- thisObj.exchangesGrid.update(thisObj.vhostData.exchanges);
-
- var exchangesGrid = thisObj.exchangesGrid.grid;
- for(var i=0; i< thisObj.vhostData.exchanges.length; i++)
- {
- var data = exchangesGrid.getItem(i);
- var isStandard = false;
- if (data && data.name)
- {
- isStandard = util.isReservedExchangeName(data.name);
- }
- exchangesGrid.rowSelectCell.setDisabled(i, isStandard);
- }
-
- // update connections
- thisObj.connectionsGrid.update(thisObj.vhostData.connections)
+ this._updateGrids(thisObj.vhostData)
if (thisObj.details)
{
@@ -440,9 +440,29 @@ define(["dojo/_base/xhr",
}
);
}
- });
+
};
+ Updater.prototype._updateGrids = function(data)
+ {
+ this.virtualHostChildren.style.display = data.state == "ACTIVE" ? "block" : "none";
+ if (data.state == "ACTIVE" )
+ {
+ util.updateUpdatableStore(this.queuesGrid, data.queues);
+ util.updateUpdatableStore(this.exchangesGrid, data.exchanges);
+
+ var exchangesGrid = this.exchangesGrid.grid;
+ for(var i=0; i< data.exchanges.length; i++)
+ {
+ var item = exchangesGrid.getItem(i);
+ var isStandard = item && item.name && util.isReservedExchangeName(item.name);
+ exchangesGrid.rowSelectCell.setDisabled(i, isStandard);
+ }
+ this.virtualHostConnections.style.display = data.connections ? "block" : "none";
+ util.updateUpdatableStore(this.connectionsGrid, data.connections);
+ }
+ };
+
return VirtualHost;
});
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js?rev=1615629&r1=1615628&r2=1615629&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js Mon Aug 4 15:50:49 2014
@@ -69,6 +69,7 @@ define(["dojo/_base/xhr",
this.startNodeButton = registry.byNode(query(".startNodeButton", containerNode)[0]);
this.editNodeButton = registry.byNode(query(".editNodeButton", containerNode)[0]);
this.deleteNodeButton = registry.byNode(query(".deleteNodeButton", containerNode)[0]);
+ this.virtualHostGridPanel = registry.byNode(query(".virtualHostGridPanel", containerNode)[0]);
this.deleteNodeButton.on("click",
function(e)
{
@@ -122,7 +123,7 @@ define(["dojo/_base/xhr",
theItem = this.getItem(idx);
that.showVirtualHost(theItem);
});
- }, {height: 200, canSort : function(col) {return false;} });
+ }, {height: 200, canSort : function(col) {return false;} }, EnhancedGrid);
this.vhostNodeUpdater = new Updater(containerNode, this.modelObj, this);
this.vhostNodeUpdater.update();
@@ -207,7 +208,9 @@ define(["dojo/_base/xhr",
this.details.update(data);
}
- this.virtualHostNode.vhostsGrid.update(data.virtualhosts || []);
+
+ this.virtualHostNode.virtualHostGridPanel.domNode.style.display = data.virtualhosts? "block" : "none";
+ util.updateUpdatableStore(this.virtualHostNode.vhostsGrid, data.virtualhosts);
}
return VirtualHostNode;
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html?rev=1615629&r1=1615628&r2=1615629&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html Mon Aug 4 15:50:49 2014
@@ -118,20 +118,22 @@
</div>
<br/>
- <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Exchanges'">
- <div class="exchanges"></div>
- <button data-dojo-type="dijit.form.Button" class="addExchangeButton">Add Exchange</button>
- <button data-dojo-type="dijit.form.Button" class="deleteExchangeButton">Delete Exchange</button>
- </div>
- <br/>
- <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Queues'">
- <div class="queues"></div>
- <button data-dojo-type="dijit.form.Button" class="addQueueButton">Add Queue</button>
- <button data-dojo-type="dijit.form.Button" class="deleteQueueButton">Delete Queue</button>
- </div>
- <br/>
- <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Connections'">
- <div class="connections"></div>
+ <div class="virtualHostChildren">
+ <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Exchanges'">
+ <div class="exchanges"></div>
+ <button data-dojo-type="dijit.form.Button" class="addExchangeButton">Add Exchange</button>
+ <button data-dojo-type="dijit.form.Button" class="deleteExchangeButton">Delete Exchange</button>
+ </div>
+ <br/>
+ <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Queues'">
+ <div class="queues"></div>
+ <button data-dojo-type="dijit.form.Button" class="addQueueButton">Add Queue</button>
+ <button data-dojo-type="dijit.form.Button" class="deleteQueueButton">Delete Queue</button>
+ </div>
+ <br/>
+ <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Connections'" class="virtualHostConnections">
+ <div class="connections"></div>
+ </div>
</div>
</div>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org