You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2016/04/29 13:04:44 UTC
svn commit: r1741609 [5/31] - in /qpid/java/trunk:
bdbstore/src/main/java/resources/js/qpid/management/virtualhost/bdb/
bdbstore/src/main/java/resources/js/qpid/management/virtualhost/bdb_ha/
bdbstore/src/main/java/resources/js/qpid/management/virtualh...
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/UpdatableStore.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/UpdatableStore.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/UpdatableStore.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/UpdatableStore.js Fri Apr 29 11:04:40 2016
@@ -23,167 +23,182 @@ define(["dojo/json",
"dojo/store/Memory",
"dojox/grid/DataGrid",
"dojo/data/ObjectStore",
- "dojo/store/Observable"], function (json, util, Memory, DataGrid, ObjectStore, Observable) {
+ "dojo/store/Observable"], function (json, util, Memory, DataGrid, ObjectStore, Observable)
+ {
- function UpdatableStore( data, divName, structure, func, props, Grid, notObservable ) {
+ function UpdatableStore(data, divName, structure, func, props, Grid, notObservable)
+ {
- var that = this;
- var GridType = DataGrid;
+ var that = this;
+ var GridType = DataGrid;
- that.memoryStore = new Memory({data: data, idProperty: "id"});
- that.store = notObservable ? that.memoryStore : new Observable(that.memoryStore);
- that.dataStore = ObjectStore({objectStore: that.store});
-
- var gridProperties = { store: that.dataStore,
- structure: structure,
- autoHeight: true
- };
- if(props) {
- for(var prop in props) {
- if(props.hasOwnProperty(prop))
- {
- gridProperties[ prop ] = props[ prop ];
- }
- }
- }
-
- if(Grid)
- {
- GridType = Grid;
- }
-
- that.grid = new GridType(gridProperties, divName);
-
- // since we created this grid programmatically, call startup to render it
- that.grid.startup();
-
- if( func )
- {
- func(that);
- }
-
- }
-
- UpdatableStore.prototype.update = function(data)
- {
- var changed = false;
- var store = this.store;
- var theItem;
-
- // handle deletes
- // iterate over existing store... if not in new data then remove
- store.query({ }).forEach(function(object) {
- if(data) {
- for(var i=0; i < data.length; i++) {
- if(data[i].id == object.id) {
- return;
- }
- }
- }
- store.remove(object.id);
- changed = true;
- });
-
- // iterate over data...
- if(data) {
- for(var i=0; i < data.length; i++)
- {
- if(theItem = store.get(data[i].id))
- {
- var modified = !util.equals(theItem, data[i]);
- if(modified)
- {
- if (store.notify)
- {
- // Seems that we are required to update the item that the store already holds
- for(var propName in data[i])
- {
- if(data[i].hasOwnProperty(propName))
- {
- if(theItem[ propName ] != data[i][ propName ])
- {
- theItem[ propName ] = data[i][ propName ];
- }
- }
- }
- // and tell it we have done so
- store.notify(theItem, data[i].id);
- }
- else
- {
- store.put(data[i], {overwrite: true});
- }
- changed = true;
- }
- } else {
- // if not in the store then add
- store.put(data[i]);
- changed = true;
- }
- }
- }
-
- return changed;
- };
-
- function removeItemsFromArray(items, numberToRemove)
- {
- if (items)
- {
- if (numberToRemove > 0 && items.length > 0)
- {
- if (numberToRemove >= items.length)
- {
- numberToRemove = numberToRemove - items.length;
- items.length = 0
- }
- else
- {
- items.splice(0, numberToRemove);
- numberToRemove = 0;
- }
- }
- }
- return numberToRemove;
- };
-
- UpdatableStore.prototype.append = function(data, limit)
- {
- var changed = false;
- var items = this.memoryStore.data;
-
- if (limit)
- {
- var totalSize = items.length + (data ? data.length : 0);
- var numberToRemove = totalSize - limit;
-
- if (numberToRemove > 0)
- {
- changed = true;
- numberToRemove = removeItemsFromArray(items, numberToRemove);
- if (numberToRemove > 0)
- {
- removeItemsFromArray(data, numberToRemove);
- }
- }
- }
-
- if (data && data.length > 0)
- {
- changed = true;
- items.push.apply(items, data);
- }
-
- this.memoryStore.setData(items);
- return changed;
- };
-
- UpdatableStore.prototype.close = function()
- {
- this.dataStore.close();
- this.dataStore = null;
- this.store = null;
- this.memoryStore = null;
- };
- return UpdatableStore;
-});
+ that.memoryStore = new Memory({
+ data: data,
+ idProperty: "id"
+ });
+ that.store = notObservable ? that.memoryStore : new Observable(that.memoryStore);
+ that.dataStore = ObjectStore({objectStore: that.store});
+
+ var gridProperties = {
+ store: that.dataStore,
+ structure: structure,
+ autoHeight: true
+ };
+ if (props)
+ {
+ for (var prop in props)
+ {
+ if (props.hasOwnProperty(prop))
+ {
+ gridProperties[prop] = props[prop];
+ }
+ }
+ }
+
+ if (Grid)
+ {
+ GridType = Grid;
+ }
+
+ that.grid = new GridType(gridProperties, divName);
+
+ // since we created this grid programmatically, call startup to render it
+ that.grid.startup();
+
+ if (func)
+ {
+ func(that);
+ }
+
+ }
+
+ UpdatableStore.prototype.update = function (data)
+ {
+ var changed = false;
+ var store = this.store;
+ var theItem;
+
+ // handle deletes
+ // iterate over existing store... if not in new data then remove
+ store.query({}).forEach(function (object)
+ {
+ if (data)
+ {
+ for (var i = 0; i < data.length; i++)
+ {
+ if (data[i].id == object.id)
+ {
+ return;
+ }
+ }
+ }
+ store.remove(object.id);
+ changed = true;
+ });
+
+ // iterate over data...
+ if (data)
+ {
+ for (var i = 0; i < data.length; i++)
+ {
+ if (theItem = store.get(data[i].id))
+ {
+ var modified = !util.equals(theItem, data[i]);
+ if (modified)
+ {
+ if (store.notify)
+ {
+ // Seems that we are required to update the item that the store already holds
+ for (var propName in data[i])
+ {
+ if (data[i].hasOwnProperty(propName))
+ {
+ if (theItem[propName] != data[i][propName])
+ {
+ theItem[propName] = data[i][propName];
+ }
+ }
+ }
+ // and tell it we have done so
+ store.notify(theItem, data[i].id);
+ }
+ else
+ {
+ store.put(data[i], {overwrite: true});
+ }
+ changed = true;
+ }
+ }
+ else
+ {
+ // if not in the store then add
+ store.put(data[i]);
+ changed = true;
+ }
+ }
+ }
+
+ return changed;
+ };
+
+ function removeItemsFromArray(items, numberToRemove)
+ {
+ if (items)
+ {
+ if (numberToRemove > 0 && items.length > 0)
+ {
+ if (numberToRemove >= items.length)
+ {
+ numberToRemove = numberToRemove - items.length;
+ items.length = 0
+ }
+ else
+ {
+ items.splice(0, numberToRemove);
+ numberToRemove = 0;
+ }
+ }
+ }
+ return numberToRemove;
+ };
+
+ UpdatableStore.prototype.append = function (data, limit)
+ {
+ var changed = false;
+ var items = this.memoryStore.data;
+
+ if (limit)
+ {
+ var totalSize = items.length + (data ? data.length : 0);
+ var numberToRemove = totalSize - limit;
+
+ if (numberToRemove > 0)
+ {
+ changed = true;
+ numberToRemove = removeItemsFromArray(items, numberToRemove);
+ if (numberToRemove > 0)
+ {
+ removeItemsFromArray(data, numberToRemove);
+ }
+ }
+ }
+
+ if (data && data.length > 0)
+ {
+ changed = true;
+ items.push.apply(items, data);
+ }
+
+ this.memoryStore.setData(items);
+ return changed;
+ };
+
+ UpdatableStore.prototype.close = function ()
+ {
+ this.dataStore.close();
+ this.dataStore = null;
+ this.store = null;
+ this.memoryStore = null;
+ };
+ return UpdatableStore;
+ });
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/WarningPane.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/WarningPane.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/WarningPane.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/WarningPane.js Fri Apr 29 11:04:40 2016
@@ -18,8 +18,7 @@
* under the License.
*
*/
-define([
- "dojo/_base/declare",
+define(["dojo/_base/declare",
"dojo/_base/array",
"dojo/_base/lang",
"dojo/_base/event",
@@ -30,44 +29,45 @@ define([
"dojox/html/entities",
"dijit/form/Button",
"dojo/domReady!"],
-function (declare, array, lang, event, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, template, entities)
-{
+ function (declare, array, lang, event, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, template, entities)
+ {
- return declare("qpid.common.WarningPane", [_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin],
- {
- templateString: template,
- message: "Not Found",
+ return declare("qpid.common.WarningPane", [_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
+ templateString: template,
+ message: "Not Found",
- buildRendering: function()
- {
- //Strip out the apache comment header from the template html as comments unsupported.
- this.templateString = this.templateString.replace(/<!--[\s\S]*?-->/g, "");
- this.inherited(arguments);
- },
- postCreate: function()
- {
- this.inherited(arguments);
- this._renderMessage();
- var that = this;
- this.closeButton.on("click", function(e){that._onButtonClick(e)});
- },
- _onButtonClick: function( /*Event*/ e)
- {
- this.onClick(e);
- },
- onClick: function( /*Event*/ e)
- {
- // extention point
- },
- _setMessageAttr: function(message)
- {
- this.message = message;
- this._renderMessage();
- },
- _renderMessage : function()
- {
- this.warningMessage.innerHTML = entities.encode(String(this.message));
- }
- }
- );
-});
+ buildRendering: function ()
+ {
+ //Strip out the apache comment header from the template html as comments unsupported.
+ this.templateString = this.templateString.replace(/<!--[\s\S]*?-->/g, "");
+ this.inherited(arguments);
+ },
+ postCreate: function ()
+ {
+ this.inherited(arguments);
+ this._renderMessage();
+ var that = this;
+ this.closeButton.on("click", function (e)
+ {
+ that._onButtonClick(e)
+ });
+ },
+ _onButtonClick: function (/*Event*/ e)
+ {
+ this.onClick(e);
+ },
+ onClick: function (/*Event*/ e)
+ {
+ // extention point
+ },
+ _setMessageAttr: function (message)
+ {
+ this.message = message;
+ this._renderMessage();
+ },
+ _renderMessage: function ()
+ {
+ this.warningMessage.innerHTML = entities.encode(String(this.message));
+ }
+ });
+ });
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/footer.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/footer.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/footer.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/footer.js Fri Apr 29 11:04:40 2016
@@ -18,13 +18,18 @@
* under the License.
*
*/
-define(["dojo/_base/xhr", "dojo/query", "dojo/domReady!"], function (xhr, query) {
- query('div[qpid-type="footer"]').forEach(function(node, index, arr) {
- xhr.get({url: "footer.html",
- sync: true,
- load: function(data) {
- node.innerHTML = data;
- } });
- });
+define(["dojo/_base/xhr", "dojo/query", "dojo/domReady!"], function (xhr, query)
+{
+ query('div[qpid-type="footer"]').forEach(function (node, index, arr)
+ {
+ xhr.get({
+ url: "footer.html",
+ sync: true,
+ load: function (data)
+ {
+ node.innerHTML = data;
+ }
+ });
+ });
});
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/formatter.js Fri Apr 29 11:04:40 2016
@@ -19,81 +19,86 @@
*
*/
-define(function () {
- return {
-
- formatBytes: function formatBytes(amount)
- {
- var returnVal = { units: "B",
- value: "0"};
-
-
- if(amount < 1000)
- {
- returnVal.value = amount.toPrecision(3);;
- }
- else if(amount < 1000 * 1024)
- {
- returnVal.units = "KB";
- returnVal.value = (amount / 1024).toPrecision(3);
- }
- else if(amount < 1000 * 1024 * 1024)
- {
- returnVal.units = "MB";
- returnVal.value = (amount / (1024 * 1024)).toPrecision(3);
- }
- else if(amount < 1000 * 1024 * 1024 * 1024)
- {
- returnVal.units = "GB";
- returnVal.value = (amount / (1024 * 1024 * 1024)).toPrecision(3);
- }
-
- return returnVal;
-
- },
-
- formatTime: function formatTime(amount)
- {
- var returnVal = { units: "ms",
- value: "0"};
-
- if(amount < 1000)
- {
- returnVal.units = "ms";
- returnVal.value = amount.toString();
- }
- else if(amount < 1000 * 60)
- {
- returnVal.units = "s";
- returnVal.value = (amount / 1000).toPrecision(3);
- }
- else if(amount < 1000 * 60 * 60)
- {
- returnVal.units = "min";
- returnVal.value = (amount / (1000 * 60)).toPrecision(3);
- }
- else if(amount < 1000 * 60 * 60 * 24)
- {
- returnVal.units = "hr";
- returnVal.value = (amount / (1000 * 60 * 60)).toPrecision(3);
- }
- else if(amount < 1000 * 60 * 60 * 24 * 7)
- {
- returnVal.units = "d";
- returnVal.value = (amount / (1000 * 60 * 60 * 24)).toPrecision(3);
- }
- else if(amount < 1000 * 60 * 60 * 24 * 365)
- {
- returnVal.units = "wk";
- returnVal.value = (amount / (1000 * 60 * 60 * 24 * 7)).toPrecision(3);
- }
- else
- {
- returnVal.units = "yr";
- returnVal.value = (amount / (1000 * 60 * 60 * 24 * 365)).toPrecision(3);
- }
-
- return returnVal;
- }
- };
-});
\ No newline at end of file
+define(function ()
+ {
+ return {
+
+ formatBytes: function formatBytes(amount)
+ {
+ var returnVal = {
+ units: "B",
+ value: "0"
+ };
+
+ if (amount < 1000)
+ {
+ returnVal.value = amount.toPrecision(3);
+ ;
+ }
+ else if (amount < 1000 * 1024)
+ {
+ returnVal.units = "KB";
+ returnVal.value = (amount / 1024).toPrecision(3);
+ }
+ else if (amount < 1000 * 1024 * 1024)
+ {
+ returnVal.units = "MB";
+ returnVal.value = (amount / (1024 * 1024)).toPrecision(3);
+ }
+ else if (amount < 1000 * 1024 * 1024 * 1024)
+ {
+ returnVal.units = "GB";
+ returnVal.value = (amount / (1024 * 1024 * 1024)).toPrecision(3);
+ }
+
+ return returnVal;
+
+ },
+
+ formatTime: function formatTime(amount)
+ {
+ var returnVal = {
+ units: "ms",
+ value: "0"
+ };
+
+ if (amount < 1000)
+ {
+ returnVal.units = "ms";
+ returnVal.value = amount.toString();
+ }
+ else if (amount < 1000 * 60)
+ {
+ returnVal.units = "s";
+ returnVal.value = (amount / 1000).toPrecision(3);
+ }
+ else if (amount < 1000 * 60 * 60)
+ {
+ returnVal.units = "min";
+ returnVal.value = (amount / (1000 * 60)).toPrecision(3);
+ }
+ else if (amount < 1000 * 60 * 60 * 24)
+ {
+ returnVal.units = "hr";
+ returnVal.value = (amount / (1000 * 60 * 60)).toPrecision(3);
+ }
+ else if (amount < 1000 * 60 * 60 * 24 * 7)
+ {
+ returnVal.units = "d";
+ returnVal.value = (amount / (1000 * 60 * 60 * 24)).toPrecision(3);
+ }
+ else if (amount < 1000 * 60 * 60 * 24 * 365)
+ {
+ returnVal.units = "wk";
+ returnVal.value = (amount / (1000 * 60 * 60 * 24 * 7)).toPrecision(3);
+ }
+ else
+ {
+ returnVal.units = "yr";
+ returnVal.value = (amount / (1000 * 60 * 60 * 24 * 365)).toPrecision(3);
+ }
+
+ return returnVal;
+ }
+ };
+ });
\ No newline at end of file
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/ColumnDefDialog.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/ColumnDefDialog.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/ColumnDefDialog.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/ColumnDefDialog.js Fri Apr 29 11:04:40 2016
@@ -19,127 +19,136 @@
*
*/
-define([
- "dojo/_base/declare",
- "dojo/_base/event",
- "dojo/_base/array",
- "dojo/_base/lang",
- "dojo/parser",
- "dojo/dom-construct",
- "dojo/query",
- "dijit/registry",
- "dijit/form/Button",
- "dijit/form/CheckBox",
- "dojox/grid/enhanced/plugins/Dialog",
- "dojo/text!../../../grid/showColumnDefDialog.html",
- "dojo/domReady!"
-], function(declare, event, array, lang, parser, dom, query, registry, Button, CheckBox, Dialog, template ){
-
-
-return declare("qpid.common.grid.ColumnDefDialog", null, {
-
- grid: null,
- containerNode: null,
- _columns: [],
- _dialog: null,
-
- constructor: function(args){
- var grid = this.grid = args.grid;
- var that = this;
- this.containerNode = dom.create("div", {innerHTML: template});
- parser.parse(this.containerNode).then(function(instances)
- {
- that._postParse();
- });
- },
- _postParse: function()
- {
- var submitButton = registry.byNode(query(".displayButton", this.containerNode)[0]);
- this.closeButton = registry.byNode(query(".cancelButton", this.containerNode)[0]);
- var columnsContainer = query(".columnList", this.containerNode)[0];
-
- this._buildColumnWidgets(columnsContainer);
-
- this._dialog = new Dialog({
- "refNode": this.grid.domNode,
- "title": "Grid Columns",
- "content": this.containerNode
- });
-
- var self = this;
- submitButton.on("click", function(e){self._onColumnsSelect(e); });
- this.closeButton.on("click", function(e){self._dialog.hide(); });
-
- this._dialog.startup();
- },
-
- destroy: function(){
- this._dialog.destroyRecursive();
- this._dialog = null;
- this.grid = null;
- this.containerNode = null;
- this._columns = null;
- },
-
- showDialog: function(){
- this._initColumnWidgets();
- this._dialog.show();
- },
-
- _initColumnWidgets: function()
- {
- var cells = this.grid.layout.cells;
- for(var i in cells)
- {
- var cell = cells[i];
- this._columns[cell.name].checked = !cell.hidden;
- }
- },
-
- _onColumnsSelect: function(evt){
- event.stop(evt);
- var grid = this.grid;
- grid.beginUpdate();
- var cells = grid.layout.cells;
- try
- {
- for(var i in cells)
- {
- var cell = cells[i];
- var widget = this._columns[cell.name];
- grid.layout.setColumnVisibility(i, widget.checked);
- }
- }
- finally
- {
- grid.endUpdate();
- this._dialog.hide();
- }
- },
-
- _buildColumnWidgets: function(columnsContainer)
- {
- var cells = this.grid.layout.cells;
- for(var i in cells)
- {
- var cell = cells[i];
- var widget = new dijit.form.CheckBox({
- required: false,
- checked: !cell.hidden,
- label: cell.name,
- name: this.grid.id + "_cchb_ " + i
- });
-
- this._columns[cell.name] = widget;
-
- var div = dom.create("div");
- div.appendChild(widget.domNode);
- div.appendChild(dom.create("span", {innerHTML: cell.name}));
-
- columnsContainer.appendChild(div);
- }
- }
+define(["dojo/_base/declare",
+ "dojo/_base/event",
+ "dojo/_base/array",
+ "dojo/_base/lang",
+ "dojo/parser",
+ "dojo/dom-construct",
+ "dojo/query",
+ "dijit/registry",
+ "dijit/form/Button",
+ "dijit/form/CheckBox",
+ "dojox/grid/enhanced/plugins/Dialog",
+ "dojo/text!../../../grid/showColumnDefDialog.html",
+ "dojo/domReady!"],
+ function (declare, event, array, lang, parser, dom, query, registry, Button, CheckBox, Dialog, template)
+ {
+
+ return declare("qpid.common.grid.ColumnDefDialog", null, {
+
+ grid: null,
+ containerNode: null,
+ _columns: [],
+ _dialog: null,
+
+ constructor: function (args)
+ {
+ var grid = this.grid = args.grid;
+ var that = this;
+ this.containerNode = dom.create("div", {innerHTML: template});
+ parser.parse(this.containerNode).then(function (instances)
+ {
+ that._postParse();
+ });
+ },
+ _postParse: function ()
+ {
+ var submitButton = registry.byNode(query(".displayButton", this.containerNode)[0]);
+ this.closeButton = registry.byNode(query(".cancelButton", this.containerNode)[0]);
+ var columnsContainer = query(".columnList", this.containerNode)[0];
+
+ this._buildColumnWidgets(columnsContainer);
+
+ this._dialog = new Dialog({
+ "refNode": this.grid.domNode,
+ "title": "Grid Columns",
+ "content": this.containerNode
+ });
+
+ var self = this;
+ submitButton.on("click", function (e)
+ {
+ self._onColumnsSelect(e);
+ });
+ this.closeButton.on("click", function (e)
+ {
+ self._dialog.hide();
+ });
+
+ this._dialog.startup();
+ },
+
+ destroy: function ()
+ {
+ this._dialog.destroyRecursive();
+ this._dialog = null;
+ this.grid = null;
+ this.containerNode = null;
+ this._columns = null;
+ },
+
+ showDialog: function ()
+ {
+ this._initColumnWidgets();
+ this._dialog.show();
+ },
+
+ _initColumnWidgets: function ()
+ {
+ var cells = this.grid.layout.cells;
+ for (var i in cells)
+ {
+ var cell = cells[i];
+ this._columns[cell.name].checked = !cell.hidden;
+ }
+ },
+
+ _onColumnsSelect: function (evt)
+ {
+ event.stop(evt);
+ var grid = this.grid;
+ grid.beginUpdate();
+ var cells = grid.layout.cells;
+ try
+ {
+ for (var i in cells)
+ {
+ var cell = cells[i];
+ var widget = this._columns[cell.name];
+ grid.layout.setColumnVisibility(i, widget.checked);
+ }
+ }
+ finally
+ {
+ grid.endUpdate();
+ this._dialog.hide();
+ }
+ },
+
+ _buildColumnWidgets: function (columnsContainer)
+ {
+ var cells = this.grid.layout.cells;
+ for (var i in cells)
+ {
+ var cell = cells[i];
+ var widget = new dijit.form.CheckBox({
+ required: false,
+ checked: !cell.hidden,
+ label: cell.name,
+ name: this.grid.id + "_cchb_ " + i
+ });
+
+ this._columns[cell.name] = widget;
+
+ var div = dom.create("div");
+ div.appendChild(widget.domNode);
+ div.appendChild(dom.create("span", {innerHTML: cell.name}));
+
+ columnsContainer.appendChild(div);
+ }
+ }
- });
+ });
-});
+ });
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/EnhancedFilter.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/EnhancedFilter.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/EnhancedFilter.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/EnhancedFilter.js Fri Apr 29 11:04:40 2016
@@ -19,213 +19,235 @@
*
*/
-define([
- "dojo/_base/declare",
- "dojo/_base/lang",
- "dojo/_base/array",
- "dijit/Toolbar",
- "dojox/grid/enhanced/_Plugin",
- "dojox/grid/enhanced/plugins/Dialog",
- "dojox/grid/enhanced/plugins/filter/FilterLayer",
- "dojox/grid/enhanced/plugins/filter/FilterDefDialog",
- "dojox/grid/enhanced/plugins/filter/FilterStatusTip",
- "dojox/grid/enhanced/plugins/filter/ClearFilterConfirm",
- "dojox/grid/EnhancedGrid",
- "dojo/i18n!dojox/grid/enhanced/nls/Filter",
- "qpid/common/grid/EnhancedFilterTools"
-], function(declare, lang, array, Toolbar, _Plugin,
- Dialog, FilterLayer, FilterDefDialog, FilterStatusTip, ClearFilterConfirm, EnhancedGrid, nls, EnhancedFilterTools){
-
- // override CriteriaBox#_getColumnOptions to show criteria for hidden columns with EnhancedFilter
- dojo.extend(dojox.grid.enhanced.plugins.filter.CriteriaBox, {
- _getColumnOptions: function(){
- var colIdx = this.dlg.curColIdx >= 0 ? String(this.dlg.curColIdx) : "anycolumn";
- var filterHidden = this.plugin.filterHidden;
- return array.map(array.filter(this.plugin.grid.layout.cells, function(cell){
- return !(cell.filterable === false || (!filterHidden && cell.hidden));
- }), function(cell){
- return {
- label: cell.name || cell.field,
- value: String(cell.index),
- selected: colIdx == String(cell.index)
- };
- });
- }
- });
-
- // Enhanced filter has extra functionality for refreshing, limiting rows, displaying/hiding columns in the grid
- var EnhancedFilter = declare("qpid.common.grid.EnhancedFilter", _Plugin, {
- // summary:
- // Accept the same plugin parameters as dojox.grid.enhanced.plugins.Filter and the following:
- //
- // filterHidden: boolean:
- // Whether to display filtering criteria for hidden columns. Default to true.
- //
- // defaulGridRowLimit: int:
- // Default limit for numbers of items to cache in the gris dtore
- //
- // disableFiltering: boolean:
- // Whether to disable a filtering including filter button, clear filter button and filter summary.
- //
- // toolbar: dijit.Toolbar:
- // An instance of toolbar to add the enhanced filter widgets.
-
-
- // name: String
- // plugin name
- name: "enhancedFilter",
-
- // filterHidden: Boolean
- // whether to filter hidden columns
- filterHidden: true,
-
- constructor: function(grid, args){
- // summary:
- // See constructor of dojox.grid.enhanced._Plugin.
- this.grid = grid;
- this.nls = nls;
- this.userPreferences = args.userPreferences;
- args = this.args = lang.isObject(args) ? args : {};
- if(typeof args.ruleCount != 'number' || args.ruleCount < 0){
- args.ruleCount = 0;
- }
- this.ruleCountToConfirmClearFilter = args.ruleCountToConfirmClearFilter || 5;
-
- if (args.filterHidden){
- this.filterHidden = args.filterHidden;
- }
- this.defaulGridRowLimit = args.defaulGridRowLimit;
- this.disableFiltering = args.disableFiltering;
- this.displayLastUpdateTime = args.displayLastUpdateTime;
-
- //Install UI components
- var obj = { "plugin": this };
-
- this.filterBar = ( args.toolbar && args.toolbar instanceof dijit.Toolbar) ? args.toolbar: new Toolbar();
-
- if (!this.disableFiltering)
- {
- //Install filter layer
- this._wrapStore();
-
- this.clearFilterDialog = new Dialog({
- refNode: this.grid.domNode,
- title: this.nls["clearFilterDialogTitle"],
- content: new ClearFilterConfirm(obj)
- });
-
- this.filterDefDialog = new FilterDefDialog(obj);
- this.filterDefDialog.filterDefPane._clearFilterBtn.set("label", "Clear Filter");
-
- nls["statusTipTitleNoFilter"] = "Filter is not set";
- nls["statusTipMsg"] = "Click on 'Set Filter' button to specify filtering conditions";
- this.filterStatusTip = new FilterStatusTip(obj);
-
- var self = this;
- var toggleClearFilterBtn = function (arg){ self.enhancedFilterTools.toggleClearFilterBtn(arg); };
-
- this.filterBar.toggleClearFilterBtn = toggleClearFilterBtn;
-
- this.grid.isFilterBarShown = function (){return true};
-
- this.connect(this.grid.layer("filter"), "onFilterDefined", function(filter){
- toggleClearFilterBtn(true);
- });
-
- //Expose the layer event to grid.
- grid.onFilterDefined = function(){};
- this.connect(grid.layer("filter"), "onFilterDefined", function(filter){
- grid.onFilterDefined(grid.getFilter(), grid.getFilterRelation());
- });
- }
-
- // add extra buttons into toolbar
- this.enhancedFilterTools = new EnhancedFilterTools({
- grid: grid,
- toolbar: this.filterBar,
- filterStatusTip: this.filterStatusTip,
- clearFilterDialog: this.clearFilterDialog,
- filterDefDialog: this.filterDefDialog,
- defaulGridRowLimit: this.defaulGridRowLimit,
- disableFiltering: this.disableFiltering,
- displayLastUpdateTime: this.displayLastUpdateTime,
- nls: nls,
- ruleCountToConfirmClearFilter: this.ruleCountToConfirmClearFilter,
- userPreferences: this.userPreferences
- });
-
- this.filterBar.placeAt(this.grid.viewsHeaderNode, "before");
- this.filterBar.startup();
-
- },
-
- destroy: function(){
- this.inherited(arguments);
- try
- {
- if (this.filterDefDialog)
- {
- this.filterDefDialog.destroy();
- this.filterDefDialog = null;
- }
- if (this.grid)
- {
- this.grid.unwrap("filter");
- this.grid = null;
- }
- if (this.filterBar)
- {
- this.filterBar.destroyRecursive();
- this.filterBar = null;
- }
- if (this.enhancedFilterTools)
- {
- this.enhancedFilterTools.destroy();
- this.enhancedFilterTools = null;
- }
- if (this.clearFilterDialog)
- {
- this.clearFilterDialog.destroyRecursive();
- this.clearFilterDialog = null;
- }
- if (this.filterStatusTip)
- {
- this.filterStatusTip.destroy();
- this.filterStatusTip = null;
- }
- this.args = null;
-
- }catch(e){
- console.warn("Filter.destroy() error:",e);
- }
- },
-
- _wrapStore: function(){
- var g = this.grid;
- var args = this.args;
- var filterLayer = args.isServerSide ? new FilterLayer.ServerSideFilterLayer(args) :
- new FilterLayer.ClientSideFilterLayer({
- cacheSize: args.filterCacheSize,
- fetchAll: args.fetchAllOnFirstFilter,
- getter: this._clientFilterGetter
- });
- FilterLayer.wrap(g, "_storeLayerFetch", filterLayer);
-
- this.connect(g, "_onDelete", lang.hitch(filterLayer, "invalidate"));
- },
-
- onSetStore: function(store){
- this.filterDefDialog.clearFilter(true);
- },
-
- _clientFilterGetter: function(/* data item */ datarow,/* cell */cell, /* int */rowIndex){
- return cell.get(rowIndex, datarow);
- }
+define(["dojo/_base/declare",
+ "dojo/_base/lang",
+ "dojo/_base/array",
+ "dijit/Toolbar",
+ "dojox/grid/enhanced/_Plugin",
+ "dojox/grid/enhanced/plugins/Dialog",
+ "dojox/grid/enhanced/plugins/filter/FilterLayer",
+ "dojox/grid/enhanced/plugins/filter/FilterDefDialog",
+ "dojox/grid/enhanced/plugins/filter/FilterStatusTip",
+ "dojox/grid/enhanced/plugins/filter/ClearFilterConfirm",
+ "dojox/grid/EnhancedGrid",
+ "dojo/i18n!dojox/grid/enhanced/nls/Filter",
+ "qpid/common/grid/EnhancedFilterTools"],
+ function (declare, lang, array, Toolbar, _Plugin, Dialog, FilterLayer, FilterDefDialog, FilterStatusTip, ClearFilterConfirm, EnhancedGrid, nls, EnhancedFilterTools)
+ {
+
+ // override CriteriaBox#_getColumnOptions to show criteria for hidden columns with EnhancedFilter
+ dojo.extend(dojox.grid.enhanced.plugins.filter.CriteriaBox, {
+ _getColumnOptions: function ()
+ {
+ var colIdx = this.dlg.curColIdx >= 0 ? String(this.dlg.curColIdx) : "anycolumn";
+ var filterHidden = this.plugin.filterHidden;
+ return array.map(array.filter(this.plugin.grid.layout.cells, function (cell)
+ {
+ return !(cell.filterable === false || (!filterHidden && cell.hidden));
+ }), function (cell)
+ {
+ return {
+ label: cell.name || cell.field,
+ value: String(cell.index),
+ selected: colIdx == String(cell.index)
+ };
+ });
+ }
+ });
+
+ // Enhanced filter has extra functionality for refreshing, limiting rows, displaying/hiding columns in the grid
+ var EnhancedFilter = declare("qpid.common.grid.EnhancedFilter", _Plugin, {
+ // summary:
+ // Accept the same plugin parameters as dojox.grid.enhanced.plugins.Filter and the following:
+ //
+ // filterHidden: boolean:
+ // Whether to display filtering criteria for hidden columns. Default to true.
+ //
+ // defaulGridRowLimit: int:
+ // Default limit for numbers of items to cache in the gris dtore
+ //
+ // disableFiltering: boolean:
+ // Whether to disable a filtering including filter button, clear filter button and filter summary.
+ //
+ // toolbar: dijit.Toolbar:
+ // An instance of toolbar to add the enhanced filter widgets.
+
+ // name: String
+ // plugin name
+ name: "enhancedFilter",
+
+ // filterHidden: Boolean
+ // whether to filter hidden columns
+ filterHidden: true,
+
+ constructor: function (grid, args)
+ {
+ // summary:
+ // See constructor of dojox.grid.enhanced._Plugin.
+ this.grid = grid;
+ this.nls = nls;
+ this.userPreferences = args.userPreferences;
+ args = this.args = lang.isObject(args) ? args : {};
+ if (typeof args.ruleCount != 'number' || args.ruleCount < 0)
+ {
+ args.ruleCount = 0;
+ }
+ this.ruleCountToConfirmClearFilter = args.ruleCountToConfirmClearFilter || 5;
+
+ if (args.filterHidden)
+ {
+ this.filterHidden = args.filterHidden;
+ }
+ this.defaulGridRowLimit = args.defaulGridRowLimit;
+ this.disableFiltering = args.disableFiltering;
+ this.displayLastUpdateTime = args.displayLastUpdateTime;
+
+ //Install UI components
+ var obj = {"plugin": this};
+
+ this.filterBar =
+ ( args.toolbar && args.toolbar instanceof dijit.Toolbar) ? args.toolbar : new Toolbar();
+
+ if (!this.disableFiltering)
+ {
+ //Install filter layer
+ this._wrapStore();
+
+ this.clearFilterDialog = new Dialog({
+ refNode: this.grid.domNode,
+ title: this.nls["clearFilterDialogTitle"],
+ content: new ClearFilterConfirm(obj)
+ });
+
+ this.filterDefDialog = new FilterDefDialog(obj);
+ this.filterDefDialog.filterDefPane._clearFilterBtn.set("label", "Clear Filter");
+
+ nls["statusTipTitleNoFilter"] = "Filter is not set";
+ nls["statusTipMsg"] = "Click on 'Set Filter' button to specify filtering conditions";
+ this.filterStatusTip = new FilterStatusTip(obj);
+
+ var self = this;
+ var toggleClearFilterBtn = function (arg)
+ {
+ self.enhancedFilterTools.toggleClearFilterBtn(arg);
+ };
+
+ this.filterBar.toggleClearFilterBtn = toggleClearFilterBtn;
+
+ this.grid.isFilterBarShown = function ()
+ {
+ return true
+ };
+
+ this.connect(this.grid.layer("filter"), "onFilterDefined", function (filter)
+ {
+ toggleClearFilterBtn(true);
+ });
+
+ //Expose the layer event to grid.
+ grid.onFilterDefined = function ()
+ {
+ };
+ this.connect(grid.layer("filter"), "onFilterDefined", function (filter)
+ {
+ grid.onFilterDefined(grid.getFilter(), grid.getFilterRelation());
+ });
+ }
+
+ // add extra buttons into toolbar
+ this.enhancedFilterTools = new EnhancedFilterTools({
+ grid: grid,
+ toolbar: this.filterBar,
+ filterStatusTip: this.filterStatusTip,
+ clearFilterDialog: this.clearFilterDialog,
+ filterDefDialog: this.filterDefDialog,
+ defaulGridRowLimit: this.defaulGridRowLimit,
+ disableFiltering: this.disableFiltering,
+ displayLastUpdateTime: this.displayLastUpdateTime,
+ nls: nls,
+ ruleCountToConfirmClearFilter: this.ruleCountToConfirmClearFilter,
+ userPreferences: this.userPreferences
+ });
+
+ this.filterBar.placeAt(this.grid.viewsHeaderNode, "before");
+ this.filterBar.startup();
+
+ },
+
+ destroy: function ()
+ {
+ this.inherited(arguments);
+ try
+ {
+ if (this.filterDefDialog)
+ {
+ this.filterDefDialog.destroy();
+ this.filterDefDialog = null;
+ }
+ if (this.grid)
+ {
+ this.grid.unwrap("filter");
+ this.grid = null;
+ }
+ if (this.filterBar)
+ {
+ this.filterBar.destroyRecursive();
+ this.filterBar = null;
+ }
+ if (this.enhancedFilterTools)
+ {
+ this.enhancedFilterTools.destroy();
+ this.enhancedFilterTools = null;
+ }
+ if (this.clearFilterDialog)
+ {
+ this.clearFilterDialog.destroyRecursive();
+ this.clearFilterDialog = null;
+ }
+ if (this.filterStatusTip)
+ {
+ this.filterStatusTip.destroy();
+ this.filterStatusTip = null;
+ }
+ this.args = null;
+
+ }
+ catch (e)
+ {
+ console.warn("Filter.destroy() error:", e);
+ }
+ },
+
+ _wrapStore: function ()
+ {
+ var g = this.grid;
+ var args = this.args;
+ var filterLayer = args.isServerSide
+ ? new FilterLayer.ServerSideFilterLayer(args)
+ : new FilterLayer.ClientSideFilterLayer({
+ cacheSize: args.filterCacheSize,
+ fetchAll: args.fetchAllOnFirstFilter,
+ getter: this._clientFilterGetter
+ });
+ FilterLayer.wrap(g, "_storeLayerFetch", filterLayer);
+
+ this.connect(g, "_onDelete", lang.hitch(filterLayer, "invalidate"));
+ },
+
+ onSetStore: function (store)
+ {
+ this.filterDefDialog.clearFilter(true);
+ },
+
+ _clientFilterGetter: function (/* data item */ datarow, /* cell */cell, /* int */rowIndex)
+ {
+ return cell.get(rowIndex, datarow);
+ }
- });
+ });
- EnhancedGrid.registerPlugin(EnhancedFilter);
+ EnhancedGrid.registerPlugin(EnhancedFilter);
- return EnhancedFilter;
+ return EnhancedFilter;
-});
+ });
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/EnhancedFilterTools.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/EnhancedFilterTools.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/EnhancedFilterTools.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/EnhancedFilterTools.js Fri Apr 29 11:04:40 2016
@@ -19,293 +19,342 @@
*
*/
-define([
- "dojo/_base/declare",
- "dojo/_base/event",
- "dojo/dom-construct",
- "dojo/date/locale",
- "dijit/form/Button",
- "dijit/form/ToggleButton",
- "qpid/common/grid/RowNumberLimitDialog",
- "qpid/common/grid/ColumnDefDialog",
- "qpid/common/grid/FilterSummary"
-], function(declare, event, domConstruct, locale, Button, ToggleButton, RowNumberLimitDialog, ColumnDefDialog, FilterSummary){
-
- var _stopEvent = function (evt){
- try{
- if(evt && evt.preventDefault){
- event.stop(evt);
- }
- }catch(e){}
- };
-
- return declare("qpid.common.grid.EnhancedFilterTools", null, {
-
- grid: null,
- filterBar: null,
- filterStatusTip: null,
- clearFilterDialog: null,
- filterDefDialog: null,
-
- columnDefDialog: null,
- columnDefButton: null,
- filterDefButton: null,
- clearFilterButton: null,
- filterSummary: null,
- setRowNumberLimitButton: null,
- setRowNumberLimitDialog: null,
- refreshButton: null,
- autoRefreshButton: null,
-
- constructor: function(params)
- {
- this.inherited(arguments);
-
- this.userPreferences = params.userPreferences;
- this.filterBar = params.toolbar;
- this.grid = params.grid;
- this.filterStatusTip= params.filterStatusTip;
- this.clearFilterDialog = params.clearFilterDialog;
- this.filterDefDialog = params.filterDefDialog;
- this.ruleCountToConfirmClearFilter = params.ruleCountToConfirmClearFilter;
- this.displayLastUpdateTime = params.hasOwnProperty("displayLastUpdateTime")?params.displayLastUpdateTime:true;
-
- this._addRefreshButtons();
- this._addRowLimitButton(params.defaulGridRowLimit);
- this._addColumnsButton();
-
- if (!params.disableFiltering)
- {
- this._addFilteringTools(params.nls);
- }
- },
-
- toggleClearFilterBtn: function(clearFlag)
- {
- var filterLayer = this.grid.layer("filter");
- var filterSet = filterLayer && filterLayer.filterDef && filterLayer.filterDef();
- this.clearFilterButton.set("disabled", !filterSet);
- },
-
- destroy: function()
- {
- this.inherited(arguments);
-
- if (this.columnDefDialog)
- {
- this.columnDefDialog.destroy();
- this.columnDefDialog = null;
- }
- if (this.columnDefButton)
- {
- this.columnDefButton.destroy();
- this.columnDefButton = null;
- }
- if (this.filterDefButton)
- {
- this.filterDefButton.destroy();
- this.filterDefButton = null;
- }
- if (this.clearFilterButton)
- {
- this.clearFilterButton.destroy();
- this.clearFilterButton = null;
- }
- if (this.filterSummary)
- {
- this.filterSummary.destroy();
- this.filterSummary = null;
- }
- if (this.setRowNumberLimitButton)
- {
- this.setRowNumberLimitButton.destroy();
- this.setRowNumberLimitButton = null;
- }
- if (this.setRowNumberLimitDialog)
- {
- this.setRowNumberLimitDialog.destroy();
- this.setRowNumberLimitDialog = null;
- }
- if (this.refreshButton)
- {
- this.refreshButton.destroy();
- this.refreshButton = null;
- }
- if (this.autoRefreshButton)
- {
- this.autoRefreshButton.destroy();
- this.autoRefreshButton = null;
- }
-
- this.grid = null;
- this.filterBar = null;
- this.filterStatusTip = null;
- this.clearFilterDialog = null;
- this.filterDefDialog = null;
- },
-
- _addRefreshButtons: function()
- {
- var self = this;
- this.refreshButton = new dijit.form.Button({
- label: "Refresh",
- type: "button",
- iconClass: "gridRefreshIcon",
- title: "Manual Refresh"
- });
-
- this.autoRefreshButton = new dijit.form.ToggleButton({
- label: "Auto Refresh",
- type: "button",
- iconClass: "gridAutoRefreshIcon",
- title: "Auto Refresh"
- });
-
- this.autoRefreshButton.on("change", function(value){
- self.grid.updater.updatable=value;
- self.refreshButton.set("disabled", value);
- });
-
- this.refreshButton.on("click", function(value){
- self.grid.updater.performUpdate();
- });
-
- this.filterBar.addChild(this.autoRefreshButton);
- this.filterBar.addChild(this.refreshButton);
-
- if (this.displayLastUpdateTime)
- {
- var updateStatusPanel = domConstruct.create("div");
- var updateTimeLabel = domConstruct.create("span", {innerHTML: "Update time: ", "class": "formLabel-labelCell", "style": "padding-right: 5px;padding-left: 5px"}, updateStatusPanel);
- var updateTimeLabelPreferredTZ = domConstruct.create("span", {innerHTML: "Preferred timezone:", "style": "padding-right: 5px"}, updateStatusPanel);
- var updateTimePreferredTZ = domConstruct.create("span", {"style": "padding-right: 5px"}, updateStatusPanel);
- var updateTimeLabelBrowserTZ = domConstruct.create("span", {innerHTML: "Browser timezone:", "style": "padding-right: 5px"}, updateStatusPanel);
- var updateTimeBrowserTZ = domConstruct.create("span", {"style": "padding-right: 5px"}, updateStatusPanel);
-
- var userPreferences = this.userPreferences;
- var lastUpdateTimeUpdater = function(data)
- {
- var userTimeZone = userPreferences.timeZone;
- var displayStyle = userTimeZone? "inline" : "none";
- updateTimeLabelPreferredTZ.style.display = displayStyle;
- updateTimePreferredTZ.style.display = displayStyle;
- var formatOptions = {selector: "time", timePattern: "HH:mm:ss.SSS", appendTimeZone: true, addOffset: true};
- var updateTime = new Date();
- updateTimePreferredTZ.innerHTML = userPreferences.formatDateTime(updateTime.getTime(), formatOptions);
- updateTimeBrowserTZ.innerHTML = locale.format(updateTime, formatOptions);
- };
-
- if (self.grid.updater.store)
- {
- // data have been already provided/or fetched
- // set last update time to current time
- lastUpdateTimeUpdater();
- }
-
- self.grid.updater.addOnUpdate(lastUpdateTimeUpdater);
- domConstruct.place(updateStatusPanel, this.grid.viewsHeaderNode, "before");
- }
- },
-
- _addRowLimitButton: function(defaulGridRowLimit)
- {
- var self = this;
- this.setRowNumberLimitButton = new dijit.form.Button({
- label: "Set Row Limit",
- type: "button",
- iconClass: "rowNumberLimitIcon",
- title: "Set Row Number Limit"
- });
- this.setRowNumberLimitButton.set("title", "Set Row Number Limit (Current: " + defaulGridRowLimit +")");
-
- this.setRowNumberLimitDialog = new RowNumberLimitDialog(this.grid.domNode, function(newLimit){
- if (newLimit > 0 && self.grid.updater.appendLimit != newLimit )
- {
- self.grid.updater.appendLimit = newLimit;
- self.grid.updater.performRefresh([]);
- self.setRowNumberLimitButton.set("title", "Set Row Number Limit (Current: " + newLimit +")");
- }
- });
-
- this.setRowNumberLimitButton.on("click", function(evt){
- self.setRowNumberLimitDialog.showDialog(self.grid.updater.appendLimit);
- });
-
- this.filterBar.addChild(this.setRowNumberLimitButton);
- },
-
- _addColumnsButton: function()
- {
- var self = this;
- this.columnDefDialog = new ColumnDefDialog({grid: this.grid});
-
- this.columnDefButton = new dijit.form.Button({
- label: "Display Columns",
- type: "button",
- iconClass: "columnDefDialogButtonIcon",
- title: "Show/Hide Columns"
- });
-
- this.columnDefButton.on("click", function(e){
- _stopEvent(e);
- self.columnDefDialog.showDialog();
- });
-
- this.filterBar.addChild(this.columnDefButton);
- },
-
- _addFilteringTools: function(nls)
- {
- var self = this;
-
- this.filterDefButton = new dijit.form.Button({
- "class": "dojoxGridFBarBtn",
- label: "Set Filter",
- iconClass: "dojoxGridFBarDefFilterBtnIcon",
- showLabel: "true",
- title: "Define filter"
- });
-
- this.clearFilterButton = new dijit.form.Button({
- "class": "dojoxGridFBarBtn",
- label: "Clear filter",
- iconClass: "dojoxGridFBarClearFilterButtontnIcon",
- showLabel: "true",
- title: "Clear filter",
- disabled: true
- });
-
-
- this.filterDefButton.on("click", function(e){
- _stopEvent(e);
-
- // a bit of a hack to force dialog to rebuild the criteria controls in order to get rid from empty rule controls
- self.filterDefDialog._criteriasChanged = true;
- self.filterDefDialog.showDialog();
- });
-
- this.clearFilterButton.on("click", function(e){
- _stopEvent(e);
- if (self.ruleCountToConfirmClearFilter && self.filterDefDialog.getCriteria() >= self.ruleCountToConfirmClearFilter)
- {
- self.clearFilterDialog.show();
- }
- else
- {
- self.grid.layer("filter").filterDef(null);
- self.toggleClearFilterBtn(true)
- }
- });
-
- this.filterSummary = new FilterSummary({grid: this.grid, filterStatusTip: this.filterStatusTip, nls: nls});
-
- this.filterBar.addChild(this.filterDefButton);
- this.filterBar.addChild(this.clearFilterButton);
-
- this.filterBar.addChild(new dijit.ToolbarSeparator());
- this.filterBar.addChild(this.filterSummary, "last");
- this.filterBar.getColumnIdx = function(coordX){return self.filterSummary._getColumnIdx(coordX);};
-
- }
- });
-});
\ No newline at end of file
+define(["dojo/_base/declare",
+ "dojo/_base/event",
+ "dojo/dom-construct",
+ "dojo/date/locale",
+ "dijit/form/Button",
+ "dijit/form/ToggleButton",
+ "qpid/common/grid/RowNumberLimitDialog",
+ "qpid/common/grid/ColumnDefDialog",
+ "qpid/common/grid/FilterSummary"],
+ function (declare, event, domConstruct, locale, Button, ToggleButton, RowNumberLimitDialog, ColumnDefDialog, FilterSummary)
+ {
+
+ var _stopEvent = function (evt)
+ {
+ try
+ {
+ if (evt && evt.preventDefault)
+ {
+ event.stop(evt);
+ }
+ }
+ catch (e)
+ {
+ }
+ };
+
+ return declare("qpid.common.grid.EnhancedFilterTools", null, {
+
+ grid: null,
+ filterBar: null,
+ filterStatusTip: null,
+ clearFilterDialog: null,
+ filterDefDialog: null,
+
+ columnDefDialog: null,
+ columnDefButton: null,
+ filterDefButton: null,
+ clearFilterButton: null,
+ filterSummary: null,
+ setRowNumberLimitButton: null,
+ setRowNumberLimitDialog: null,
+ refreshButton: null,
+ autoRefreshButton: null,
+
+ constructor: function (params)
+ {
+ this.inherited(arguments);
+
+ this.userPreferences = params.userPreferences;
+ this.filterBar = params.toolbar;
+ this.grid = params.grid;
+ this.filterStatusTip = params.filterStatusTip;
+ this.clearFilterDialog = params.clearFilterDialog;
+ this.filterDefDialog = params.filterDefDialog;
+ this.ruleCountToConfirmClearFilter = params.ruleCountToConfirmClearFilter;
+ this.displayLastUpdateTime =
+ params.hasOwnProperty("displayLastUpdateTime") ? params.displayLastUpdateTime : true;
+
+ this._addRefreshButtons();
+ this._addRowLimitButton(params.defaulGridRowLimit);
+ this._addColumnsButton();
+
+ if (!params.disableFiltering)
+ {
+ this._addFilteringTools(params.nls);
+ }
+ },
+
+ toggleClearFilterBtn: function (clearFlag)
+ {
+ var filterLayer = this.grid.layer("filter");
+ var filterSet = filterLayer && filterLayer.filterDef && filterLayer.filterDef();
+ this.clearFilterButton.set("disabled", !filterSet);
+ },
+
+ destroy: function ()
+ {
+ this.inherited(arguments);
+
+ if (this.columnDefDialog)
+ {
+ this.columnDefDialog.destroy();
+ this.columnDefDialog = null;
+ }
+ if (this.columnDefButton)
+ {
+ this.columnDefButton.destroy();
+ this.columnDefButton = null;
+ }
+ if (this.filterDefButton)
+ {
+ this.filterDefButton.destroy();
+ this.filterDefButton = null;
+ }
+ if (this.clearFilterButton)
+ {
+ this.clearFilterButton.destroy();
+ this.clearFilterButton = null;
+ }
+ if (this.filterSummary)
+ {
+ this.filterSummary.destroy();
+ this.filterSummary = null;
+ }
+ if (this.setRowNumberLimitButton)
+ {
+ this.setRowNumberLimitButton.destroy();
+ this.setRowNumberLimitButton = null;
+ }
+ if (this.setRowNumberLimitDialog)
+ {
+ this.setRowNumberLimitDialog.destroy();
+ this.setRowNumberLimitDialog = null;
+ }
+ if (this.refreshButton)
+ {
+ this.refreshButton.destroy();
+ this.refreshButton = null;
+ }
+ if (this.autoRefreshButton)
+ {
+ this.autoRefreshButton.destroy();
+ this.autoRefreshButton = null;
+ }
+
+ this.grid = null;
+ this.filterBar = null;
+ this.filterStatusTip = null;
+ this.clearFilterDialog = null;
+ this.filterDefDialog = null;
+ },
+
+ _addRefreshButtons: function ()
+ {
+ var self = this;
+ this.refreshButton = new dijit.form.Button({
+ label: "Refresh",
+ type: "button",
+ iconClass: "gridRefreshIcon",
+ title: "Manual Refresh"
+ });
+
+ this.autoRefreshButton = new dijit.form.ToggleButton({
+ label: "Auto Refresh",
+ type: "button",
+ iconClass: "gridAutoRefreshIcon",
+ title: "Auto Refresh"
+ });
+
+ this.autoRefreshButton.on("change", function (value)
+ {
+ self.grid.updater.updatable = value;
+ self.refreshButton.set("disabled", value);
+ });
+
+ this.refreshButton.on("click", function (value)
+ {
+ self.grid.updater.performUpdate();
+ });
+
+ this.filterBar.addChild(this.autoRefreshButton);
+ this.filterBar.addChild(this.refreshButton);
+
+ if (this.displayLastUpdateTime)
+ {
+ var updateStatusPanel = domConstruct.create("div");
+ var updateTimeLabel = domConstruct.create("span",
+ {
+ innerHTML: "Update time: ",
+ "class": "formLabel-labelCell",
+ "style": "padding-right: 5px;padding-left: 5px"
+ },
+ updateStatusPanel);
+ var updateTimeLabelPreferredTZ = domConstruct.create("span",
+ {
+ innerHTML: "Preferred timezone:",
+ "style": "padding-right: 5px"
+ },
+ updateStatusPanel);
+ var updateTimePreferredTZ = domConstruct.create("span",
+ {"style": "padding-right: 5px"},
+ updateStatusPanel);
+ var updateTimeLabelBrowserTZ = domConstruct.create("span",
+ {
+ innerHTML: "Browser timezone:",
+ "style": "padding-right: 5px"
+ },
+ updateStatusPanel);
+ var updateTimeBrowserTZ = domConstruct.create("span",
+ {"style": "padding-right: 5px"},
+ updateStatusPanel);
+
+ var userPreferences = this.userPreferences;
+ var lastUpdateTimeUpdater = function (data)
+ {
+ var userTimeZone = userPreferences.timeZone;
+ var displayStyle = userTimeZone ? "inline" : "none";
+ updateTimeLabelPreferredTZ.style.display = displayStyle;
+ updateTimePreferredTZ.style.display = displayStyle;
+ var formatOptions = {
+ selector: "time",
+ timePattern: "HH:mm:ss.SSS",
+ appendTimeZone: true,
+ addOffset: true
+ };
+ var updateTime = new Date();
+ updateTimePreferredTZ.innerHTML =
+ userPreferences.formatDateTime(updateTime.getTime(), formatOptions);
+ updateTimeBrowserTZ.innerHTML = locale.format(updateTime, formatOptions);
+ };
+
+ if (self.grid.updater.store)
+ {
+ // data have been already provided/or fetched
+ // set last update time to current time
+ lastUpdateTimeUpdater();
+ }
+
+ self.grid.updater.addOnUpdate(lastUpdateTimeUpdater);
+ domConstruct.place(updateStatusPanel, this.grid.viewsHeaderNode, "before");
+ }
+ },
+
+ _addRowLimitButton: function (defaulGridRowLimit)
+ {
+ var self = this;
+ this.setRowNumberLimitButton = new dijit.form.Button({
+ label: "Set Row Limit",
+ type: "button",
+ iconClass: "rowNumberLimitIcon",
+ title: "Set Row Number Limit"
+ });
+ this.setRowNumberLimitButton.set("title",
+ "Set Row Number Limit (Current: " + defaulGridRowLimit + ")");
+
+ this.setRowNumberLimitDialog = new RowNumberLimitDialog(this.grid.domNode, function (newLimit)
+ {
+ if (newLimit > 0 && self.grid.updater.appendLimit != newLimit)
+ {
+ self.grid.updater.appendLimit = newLimit;
+ self.grid.updater.performRefresh([]);
+ self.setRowNumberLimitButton.set("title",
+ "Set Row Number Limit (Current: " + newLimit + ")");
+ }
+ });
+
+ this.setRowNumberLimitButton.on("click", function (evt)
+ {
+ self.setRowNumberLimitDialog.showDialog(self.grid.updater.appendLimit);
+ });
+
+ this.filterBar.addChild(this.setRowNumberLimitButton);
+ },
+
+ _addColumnsButton: function ()
+ {
+ var self = this;
+ this.columnDefDialog = new ColumnDefDialog({grid: this.grid});
+
+ this.columnDefButton = new dijit.form.Button({
+ label: "Display Columns",
+ type: "button",
+ iconClass: "columnDefDialogButtonIcon",
+ title: "Show/Hide Columns"
+ });
+
+ this.columnDefButton.on("click", function (e)
+ {
+ _stopEvent(e);
+ self.columnDefDialog.showDialog();
+ });
+
+ this.filterBar.addChild(this.columnDefButton);
+ },
+
+ _addFilteringTools: function (nls)
+ {
+ var self = this;
+
+ this.filterDefButton = new dijit.form.Button({
+ "class": "dojoxGridFBarBtn",
+ label: "Set Filter",
+ iconClass: "dojoxGridFBarDefFilterBtnIcon",
+ showLabel: "true",
+ title: "Define filter"
+ });
+
+ this.clearFilterButton = new dijit.form.Button({
+ "class": "dojoxGridFBarBtn",
+ label: "Clear filter",
+ iconClass: "dojoxGridFBarClearFilterButtontnIcon",
+ showLabel: "true",
+ title: "Clear filter",
+ disabled: true
+ });
+
+ this.filterDefButton.on("click", function (e)
+ {
+ _stopEvent(e);
+
+ // a bit of a hack to force dialog to rebuild the criteria controls in order to get rid from empty rule controls
+ self.filterDefDialog._criteriasChanged = true;
+ self.filterDefDialog.showDialog();
+ });
+
+ this.clearFilterButton.on("click", function (e)
+ {
+ _stopEvent(e);
+ if (self.ruleCountToConfirmClearFilter && self.filterDefDialog.getCriteria()
+ >= self.ruleCountToConfirmClearFilter)
+ {
+ self.clearFilterDialog.show();
+ }
+ else
+ {
+ self.grid.layer("filter").filterDef(null);
+ self.toggleClearFilterBtn(true)
+ }
+ });
+
+ this.filterSummary = new FilterSummary({
+ grid: this.grid,
+ filterStatusTip: this.filterStatusTip,
+ nls: nls
+ });
+
+ this.filterBar.addChild(this.filterDefButton);
+ this.filterBar.addChild(this.clearFilterButton);
+
+ this.filterBar.addChild(new dijit.ToolbarSeparator());
+ this.filterBar.addChild(this.filterSummary, "last");
+ this.filterBar.getColumnIdx = function (coordX)
+ {
+ return self.filterSummary._getColumnIdx(coordX);
+ };
+
+ }
+ });
+ });
\ No newline at end of file
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/FilterSummary.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/FilterSummary.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/FilterSummary.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/FilterSummary.js Fri Apr 29 11:04:40 2016
@@ -19,155 +19,186 @@
*
*/
-define([
- "dojo/_base/declare",
- "dojo/_base/lang",
- "dojo/_base/html",
- "dojo/query",
- "dojo/dom-construct",
- "dojo/string",
- "dojo/on",
- "dijit/_WidgetBase"
-], function(declare, lang, html, query, domConstruct, string, on, _WidgetBase){
-
-return declare("qpid.common.grid.FilterSummary", [_WidgetBase], {
-
- domNode: null,
- itemName: null,
- filterStatusTip: null,
- grid: null,
- _handle_statusTooltip: null,
- _timeout_statusTooltip: 300,
- _nls: null,
-
- constructor: function(params)
- {
- this.inherited(arguments);
- this.itemName = params.itemsName;
- this.initialize(params.filterStatusTip, params.grid);
- this._nls = params.nls;
- },
-
- buildRendering: function(){
- this.inherited(arguments);
- var itemsName = this.itemName || this._nls["defaultItemsName"];
- var message = string.substitute(this._nls["filterBarMsgNoFilterTemplate"], [0, itemsName ]);
- this.domNode = domConstruct.create("span", {innerHTML: message, "class": "dijit dijitReset dijitInline dijitButtonInline", role: "presentation" });
- },
-
- postCreate: function(){
- this.inherited(arguments);
- on(this.domNode, "mouseenter", lang.hitch(this, this._onMouseEnter));
- on(this.domNode, "mouseleave", lang.hitch(this, this._onMouseLeave));
- on(this.domNode, "mousemove", lang.hitch(this, this._onMouseMove));
- },
-
- destroy: function()
- {
- this.inherited(arguments);
- this.itemName = null;
- this.filterStatusTip = null;
- this.grid = null;
- this._handle_statusTooltip = null;
- this._filteredClass = null;
- this._nls = null;
- },
-
- initialize: function(filterStatusTip, grid)
- {
- this.filterStatusTip = filterStatusTip;
- this.grid = grid;
- if (this.grid)
- {
- var filterLayer = grid.layer("filter");
- this.connect(filterLayer, "onFiltered", this.onFiltered);
- }
- },
-
- onFiltered: function(filteredSize, originSize)
- {
- try
- {
- var itemsName = this.itemName || this._nls["defaultItemsName"],
- msg = "", g = this.grid,
- filterLayer = g.layer("filter");
- if(filterLayer.filterDef()){
- msg = string.substitute(this._nls["filterBarMsgHasFilterTemplate"], [filteredSize, originSize, itemsName]);
- }else{
- msg = string.substitute(this._nls["filterBarMsgNoFilterTemplate"], [originSize, itemsName]);
- }
- this.domNode.innerHTML = msg;
- }
- catch(e)
- {
- // swallow and log exception
- // otherwise grid rendering is screwed
- console.error(e);
- }
- },
-
- _getColumnIdx: function(coordX){
- var headers = query("[role='columnheader']", this.grid.viewsHeaderNode);
- var idx = -1;
- for(var i = headers.length - 1; i >= 0; --i){
- var coord = html.position(headers[i]);
- if(coordX >= coord.x && coordX < coord.x + coord.w){
- idx = i;
- break;
- }
- }
- if(idx >= 0 && this.grid.layout.cells[idx].filterable !== false){
- return idx;
- }else{
- return -1;
- }
- },
-
- _setStatusTipTimeout: function(){
- this._clearStatusTipTimeout();
- this._handle_statusTooltip = setTimeout(lang.hitch(this,this._showStatusTooltip),this._timeout_statusTooltip);
- },
-
- _clearStatusTipTimeout: function(){
- if (this._handle_statusTooltip){
- clearTimeout(this._handle_statusTooltip);
- }
- this._handle_statusTooltip = null;
- },
-
- _showStatusTooltip: function(){
- this._handle_statusTooltip = null;
- if(this.filterStatusTip){
- this.filterStatusTip.showDialog(this._tippos.x, this._tippos.y, this._getColumnIdx(this._tippos.x));
- }
- },
-
- _updateTipPosition: function(evt){
- this._tippos = {
- x: evt.pageX,
- y: evt.pageY
- };
- },
-
- _onMouseEnter: function(e){
- this._updateTipPosition(e);
- if(this.filterStatusTip){
- this._setStatusTipTimeout();
- }
- },
-
- _onMouseMove: function(e){
- if(this.filterStatusTip){
- this._setStatusTipTimeout();
- if(this._handle_statusTooltip){
- this._updateTipPosition(e);
- }
- }
- },
-
- _onMouseLeave: function(e){
- this._clearStatusTipTimeout();
- }
- });
+define(["dojo/_base/declare",
+ "dojo/_base/lang",
+ "dojo/_base/html",
+ "dojo/query",
+ "dojo/dom-construct",
+ "dojo/string",
+ "dojo/on",
+ "dijit/_WidgetBase"], function (declare, lang, html, query, domConstruct, string, on, _WidgetBase)
+ {
+
+ return declare("qpid.common.grid.FilterSummary", [_WidgetBase], {
+
+ domNode: null,
+ itemName: null,
+ filterStatusTip: null,
+ grid: null,
+ _handle_statusTooltip: null,
+ _timeout_statusTooltip: 300,
+ _nls: null,
+
+ constructor: function (params)
+ {
+ this.inherited(arguments);
+ this.itemName = params.itemsName;
+ this.initialize(params.filterStatusTip, params.grid);
+ this._nls = params.nls;
+ },
+
+ buildRendering: function ()
+ {
+ this.inherited(arguments);
+ var itemsName = this.itemName || this._nls["defaultItemsName"];
+ var message = string.substitute(this._nls["filterBarMsgNoFilterTemplate"], [0, itemsName]);
+ this.domNode = domConstruct.create("span",
+ {
+ innerHTML: message,
+ "class": "dijit dijitReset dijitInline dijitButtonInline",
+ role: "presentation"
+ });
+ },
+
+ postCreate: function ()
+ {
+ this.inherited(arguments);
+ on(this.domNode, "mouseenter", lang.hitch(this, this._onMouseEnter));
+ on(this.domNode, "mouseleave", lang.hitch(this, this._onMouseLeave));
+ on(this.domNode, "mousemove", lang.hitch(this, this._onMouseMove));
+ },
+
+ destroy: function ()
+ {
+ this.inherited(arguments);
+ this.itemName = null;
+ this.filterStatusTip = null;
+ this.grid = null;
+ this._handle_statusTooltip = null;
+ this._filteredClass = null;
+ this._nls = null;
+ },
+
+ initialize: function (filterStatusTip, grid)
+ {
+ this.filterStatusTip = filterStatusTip;
+ this.grid = grid;
+ if (this.grid)
+ {
+ var filterLayer = grid.layer("filter");
+ this.connect(filterLayer, "onFiltered", this.onFiltered);
+ }
+ },
+
+ onFiltered: function (filteredSize, originSize)
+ {
+ try
+ {
+ var itemsName = this.itemName
+ || this._nls["defaultItemsName"], msg = "", g = this.grid, filterLayer = g.layer(
+ "filter");
+ if (filterLayer.filterDef())
+ {
+ msg = string.substitute(this._nls["filterBarMsgHasFilterTemplate"],
+ [filteredSize, originSize, itemsName]);
+ }
+ else
+ {
+ msg = string.substitute(this._nls["filterBarMsgNoFilterTemplate"], [originSize, itemsName]);
+ }
+ this.domNode.innerHTML = msg;
+ }
+ catch (e)
+ {
+ // swallow and log exception
+ // otherwise grid rendering is screwed
+ console.error(e);
+ }
+ },
+
+ _getColumnIdx: function (coordX)
+ {
+ var headers = query("[role='columnheader']", this.grid.viewsHeaderNode);
+ var idx = -1;
+ for (var i = headers.length - 1; i >= 0; --i)
+ {
+ var coord = html.position(headers[i]);
+ if (coordX >= coord.x && coordX < coord.x + coord.w)
+ {
+ idx = i;
+ break;
+ }
+ }
+ if (idx >= 0 && this.grid.layout.cells[idx].filterable !== false)
+ {
+ return idx;
+ }
+ else
+ {
+ return -1;
+ }
+ },
+
+ _setStatusTipTimeout: function ()
+ {
+ this._clearStatusTipTimeout();
+ this._handle_statusTooltip =
+ setTimeout(lang.hitch(this, this._showStatusTooltip), this._timeout_statusTooltip);
+ },
+
+ _clearStatusTipTimeout: function ()
+ {
+ if (this._handle_statusTooltip)
+ {
+ clearTimeout(this._handle_statusTooltip);
+ }
+ this._handle_statusTooltip = null;
+ },
+
+ _showStatusTooltip: function ()
+ {
+ this._handle_statusTooltip = null;
+ if (this.filterStatusTip)
+ {
+ this.filterStatusTip.showDialog(this._tippos.x,
+ this._tippos.y,
+ this._getColumnIdx(this._tippos.x));
+ }
+ },
+
+ _updateTipPosition: function (evt)
+ {
+ this._tippos = {
+ x: evt.pageX,
+ y: evt.pageY
+ };
+ },
+
+ _onMouseEnter: function (e)
+ {
+ this._updateTipPosition(e);
+ if (this.filterStatusTip)
+ {
+ this._setStatusTipTimeout();
+ }
+ },
+
+ _onMouseMove: function (e)
+ {
+ if (this.filterStatusTip)
+ {
+ this._setStatusTipTimeout();
+ if (this._handle_statusTooltip)
+ {
+ this._updateTipPosition(e);
+ }
+ }
+ },
+
+ _onMouseLeave: function (e)
+ {
+ this._clearStatusTipTimeout();
+ }
+ });
-});
\ No newline at end of file
+ });
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org