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 [26/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/virtual...
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryBuilder.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryBuilder.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryBuilder.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryBuilder.js Fri Apr 29 11:04:40 2016
@@ -56,535 +56,622 @@ define(["dojo/_base/declare",
"dijit/TooltipDialog",
"dijit/Dialog",
"dojo/Deferred",
- "qpid/management/query/MessageDialog"
- ],
- function(declare,
- lang,
- parser,
- domConstruct,
- json,
- template,
- entities,
- Grid,
- Keyboard,
- Selection,
- Pagination,
- Selector,
- ColumnResizer,
- Memory,
- DstoreAdapter,
- QueryStore
- )
- {
- var predefinedCategories = [ {id: "queue", name: "Queue"}, {id: "connection", name: "Connection"} ];
-
- var QueryBuilder = declare( "qpid.management.query.QueryBuilder",
- [dijit._Widget, dijit._TemplatedMixin, dijit._WidgetsInTemplateMixin],
- {
- //Strip out the apache comment header from the template html as comments unsupported.
- templateString: template.replace(/<!--[\s\S]*?-->/g, ""),
-
- /**
- * Fields from template
- **/
- scope:null,
- categoryName: null,
- advancedSearch: null,
- advancedSelect: null,
- advancedWhere: null,
- standardSearch: null,
- standardSelectChooser: null,
- standardWhereChooser: null,
- searchButton: null,
- modeButton: null,
- standardWhereExpressionBuilder: null,
- queryResultGrid: null,
- advancedOrderBy: null,
-
- /**
- * constructor parameter
- */
- _management: null,
-
- /**
- * Inner fields
- */
- _standardMode: true,
- _scopeModelObjects: {},
- _categorySelector: null,
- _searchScopeSelector: null,
- _lastStandardModeSelect: [],
- _sort: [],
- _lastHeaders: [],
-
- constructor: function(args)
- {
- this._management = args.management;
- this.inherited(arguments);
- },
- postCreate: function()
- {
- this.inherited(arguments);
- this._postCreate();
- },
- _postCreate: function()
- {
- var promise = this._createScopeList();
- promise.then(lang.hitch(this, this. _postCreateScope));
- },
- _postCreateScope: function()
- {
- this._createCategoryList();
-
- // advanced mode widgets
- this.advancedSelect.on("change", lang.hitch(this, this._toggleSearchButton));
- this.advancedSelect.on("blur", lang.hitch(this, this._advancedModeSelectChanged));
- this.advancedWhere.on("blur", lang.hitch(this, this._advancedModeWhereChanged));
- this.advancedOrderBy.on("blur", lang.hitch(this, this._advancedModeOrderByChanged));
- this.advancedSelect.on("keyDown", lang.hitch(this, this._advancedModeKeyPressed));
- this.advancedWhere.on("keyDown", lang.hitch(this, this._advancedModeKeyPressed));
- this.advancedOrderBy.on("keyDown", lang.hitch(this, this._advancedModeKeyPressed));
-
- // standard mode widgets
- this.standardSelectChooser.on("change", lang.hitch(this, this._standardModeSelectChanged));
- this.standardSelectChooser.startup();
- this.standardWhereChooser.startup();
- this.standardWhereExpressionBuilder.set("whereFieldsSelector", this.standardWhereChooser );
- this.standardWhereExpressionBuilder.set("userPreferences", this._management.userPreferences );
- this.standardWhereExpressionBuilder.startup();
- this.standardWhereExpressionBuilder.on("change", lang.hitch(this, this._standardModeWhereChanged));
-
- // search & mode buttons
- this.searchButton.on("click", lang.hitch(this, this.search));
- this.modeButton.on("click", lang.hitch(this, this._showModeSwitchWarningIfRequired));
-
- this._buildGrid();
- this._categoryChanged();
- this._toggleSearchButton();
- },
- search: function()
- {
- var category = this._categorySelector.value.toLowerCase();
- var scope = this._searchScopeSelector.value;
- var modelObj = this._scopeModelObjects[scope];
- this._store.selectClause = this._store.selectClause;
- this._store.where = this._store.where;
- this._store.category = category;
- this._store.parent = modelObj;
- this._store.orderBy = this._store.orderBy;
- this._resultsGrid.refresh();
- },
- _showModeSwitchWarningIfRequired: function()
- {
- var userPreferences = this._management.userPreferences;
- var displayWarning = (!userPreferences || !userPreferences.query ||
- (userPreferences.query.displaySwitchModeWarning == undefined ||
- userPreferences.query.displaySwitchModeWarning));
- if (this._standardMode && displayWarning && QueryBuilder.showWarningOnModeChange)
- {
- if (!this._switchModeWarningDialog)
- {
- var formattedMessage = "<div>Switching to advanced mode is a one-way street,<br/>"
- + "switching back from advanced mode to standard mode will<br/>"
- + "completely reset the query.</div>";
- this._switchModeWarningDialog = new qpid.management.query.MessageDialog({
- title: "Warning!",
- message: formattedMessage},
- domConstruct.create("div"));
- this._switchModeWarningDialog.on("execute",
- lang.hitch(this, function(stopDisplaying)
- {
- if (stopDisplaying)
- {
- if (!userPreferences.query)
- {
- userPreferences.query = {};
- }
- userPreferences.query.displaySwitchModeWarning = false;
- userPreferences.save({query: userPreferences.query},
- null,
- function(error){console.log("Saving user preferences failed: " + error);}
- );
- }
- else
- {
- QueryBuilder.showWarningOnModeChange = false;
- }
- this._modeChanged();
- }));
- }
- this._switchModeWarningDialog.show();
- }
- else
- {
- this._modeChanged();
- }
- },
- _advancedModeSelectChanged: function()
- {
- this._store.selectClause = this.advancedSelect.value;
- },
- _advancedModeWhereChanged: function()
- {
- this._store.where = this.advancedWhere.value;
- },
- _advancedModeOrderByChanged: function()
- {
- this._store.orderBy = this.advancedOrderBy.value;
- this._sort = [];
- },
- _toggleSearchButton: function(select)
- {
- var criteriaNotSet = !select;
- this.searchButton.set("disabled",criteriaNotSet);
- this.searchButton.set("title", criteriaNotSet?"Please, choose fields to display in order to enable search":"Search");
- },
- _buildOrderByExpression: function()
- {
- var orderByExpression = "";
- if (this._sort && this._sort.length)
- {
- var orders = []
- for (var i = 0; i < this._sort.length; ++i)
- {
- orders.push(parseInt(this._sort[i].property) + (this._sort[i].descending? " desc" : ""));
- }
- orderByExpression = orders.join(",");
- }
- this.advancedOrderBy.set("value", orderByExpression);
- return orderByExpression;
- },
- _buildSelectExpression: function(value)
- {
- var expression = "";
- if (lang.isArray(value))
- {
- for(var i=0; i<value.length ;i++)
- {
- var selection = value[i] && value[i].hasOwnProperty("attributeName") ?
- value[i].attributeName : value[i];
- expression = expression + (i > 0 ? "," : "") + selection;
- }
- }
- return expression;
- },
- _normalizeSorting: function(selectedColumns)
- {
- var newSort = [];
- for (var i = 0; i < this._sort.length; ++i) {
- var sortColumnIndex = parseInt(this._sort[i].property) - 1;
- var sortDescending = this._sort[i].descending;
- if (sortColumnIndex < this._lastStandardModeSelect.length) {
- var oldSortedColumnName = this._lastStandardModeSelect[sortColumnIndex].attributeName;
- for (var j = 0; j < selectedColumns.length; ++j) {
- if (selectedColumns[j].attributeName === oldSortedColumnName) {
- newSort.push({
- property: "" + (j + 1),
- descending: sortDescending
- });
- break;
- }
- }
- }
- }
- this._sort = newSort;
- },
- _standardModeSelectChanged: function(selectedColumns)
- {
- this._normalizeSorting(selectedColumns);
- this._store.orderBy = this._buildOrderByExpression();
- this._store.selectClause = this._buildSelectExpression(selectedColumns);
- this._lastStandardModeSelect = lang.clone(selectedColumns);
- this._toggleSearchButton(this._store.selectClause);
- this.search();
- },
- _standardModeWhereChanged: function(result)
- {
- this._store.where = result;
- this.search();
- },
- _buildGrid: function()
- {
- this._store = new QueryStore({
- management: this.management,
- category: this._categorySelector.value.toLowerCase(),
- parent: this._scopeModelObjects[this._searchScopeSelector.value],
- zeroBased: false});
-
- var CustomGrid = declare([ Grid, Keyboard, Selection, Pagination, ColumnResizer ]);
-
- var grid = new CustomGrid({ collection: this._store,
- rowsPerPage: 100,
- selectionMode: 'single',
- cellNavigation: false,
- className: 'dgrid-autoheight',
- pageSizeOptions: [10,20,30,40,50,100,1000,10000,100000],
- adjustLastColumn: true
- },
- this.queryResultGrid);
- this._store.on("changeHeaders", lang.hitch(this, function(event) {
- this._store.useCachedResults = true;
- grid.set("columns", this._getColumns(event.headers));
- this._resultsGrid.resize();
- }));
- this._resultsGrid = grid;
- this._resultsGrid.startup();
- this._resultsGrid.on('.dgrid-row:dblclick', lang.hitch(this, this._onRowClick));
- this._resultsGrid.on("dgrid-sort", lang.hitch(this, function(event) {
- for (var i = 0; i < this._sort.length; ++i) {
- if (this._sort[i].property == event.sort[0].property) {
- this._sort.splice(i, 1);
- break;
- }
- }
- this._sort.splice(0, 0, event.sort[0]);
- this._store.orderBy = this._buildOrderByExpression();
- event.preventDefault();
- event.stopPropagation();
- this.search();
- }));
- this._resultsGrid.on("dgrid-refresh-complete",
- lang.hitch(this,
- function()
- {
- this._store.useCachedResults = false;
- this._resultsGrid.updateSortArrow(this._sort, true);
- }));
- },
- _onRowClick: function (event)
- {
- var row = this._resultsGrid.row(event);
- var promise = this._management.get({url:"service/structure"});
- var that = this;
- promise.then(function (data)
- {
- var findObject = function findObject(structure, parent, type)
+ "qpid/management/query/MessageDialog"],
+ function (declare, lang, parser, domConstruct, json, template, entities, Grid, Keyboard, Selection, Pagination, Selector, ColumnResizer, Memory, DstoreAdapter, QueryStore)
+ {
+ var predefinedCategories = [{
+ id: "queue",
+ name: "Queue"
+ },
+ {
+ id: "connection",
+ name: "Connection"
+ }];
+
+ var QueryBuilder = declare("qpid.management.query.QueryBuilder",
+ [dijit._Widget, dijit._TemplatedMixin, dijit._WidgetsInTemplateMixin],
+ {
+ //Strip out the apache comment header from the template html as comments unsupported.
+ templateString: template.replace(/<!--[\s\S]*?-->/g, ""),
+
+ /**
+ * Fields from template
+ **/
+ scope: null,
+ categoryName: null,
+ advancedSearch: null,
+ advancedSelect: null,
+ advancedWhere: null,
+ standardSearch: null,
+ standardSelectChooser: null,
+ standardWhereChooser: null,
+ searchButton: null,
+ modeButton: null,
+ standardWhereExpressionBuilder: null,
+ queryResultGrid: null,
+ advancedOrderBy: null,
+
+ /**
+ * constructor parameter
+ */
+ _management: null,
+
+ /**
+ * Inner fields
+ */
+ _standardMode: true,
+ _scopeModelObjects: {},
+ _categorySelector: null,
+ _searchScopeSelector: null,
+ _lastStandardModeSelect: [],
+ _sort: [],
+ _lastHeaders: [],
+
+ constructor: function (args)
+ {
+ this._management = args.management;
+ this.inherited(arguments);
+ },
+ postCreate: function ()
+ {
+ this.inherited(arguments);
+ this._postCreate();
+ },
+ _postCreate: function ()
+ {
+ var promise = this._createScopeList();
+ promise.then(lang.hitch(this, this._postCreateScope));
+ },
+ _postCreateScope: function ()
+ {
+ this._createCategoryList();
+
+ // advanced mode widgets
+ this.advancedSelect.on("change",
+ lang.hitch(this, this._toggleSearchButton));
+ this.advancedSelect.on("blur",
+ lang.hitch(this, this._advancedModeSelectChanged));
+ this.advancedWhere.on("blur",
+ lang.hitch(this, this._advancedModeWhereChanged));
+ this.advancedOrderBy.on("blur",
+ lang.hitch(this,
+ this._advancedModeOrderByChanged));
+ this.advancedSelect.on("keyDown",
+ lang.hitch(this, this._advancedModeKeyPressed));
+ this.advancedWhere.on("keyDown",
+ lang.hitch(this, this._advancedModeKeyPressed));
+ this.advancedOrderBy.on("keyDown",
+ lang.hitch(this, this._advancedModeKeyPressed));
+
+ // standard mode widgets
+ this.standardSelectChooser.on("change",
+ lang.hitch(this,
+ this._standardModeSelectChanged));
+ this.standardSelectChooser.startup();
+ this.standardWhereChooser.startup();
+ this.standardWhereExpressionBuilder.set("whereFieldsSelector",
+ this.standardWhereChooser);
+ this.standardWhereExpressionBuilder.set("userPreferences",
+ this._management.userPreferences);
+ this.standardWhereExpressionBuilder.startup();
+ this.standardWhereExpressionBuilder.on("change",
+ lang.hitch(this,
+ this._standardModeWhereChanged));
+
+ // search & mode buttons
+ this.searchButton.on("click", lang.hitch(this, this.search));
+ this.modeButton.on("click",
+ lang.hitch(this,
+ this._showModeSwitchWarningIfRequired));
+
+ this._buildGrid();
+ this._categoryChanged();
+ this._toggleSearchButton();
+ },
+ search: function ()
+ {
+ var category = this._categorySelector.value.toLowerCase();
+ var scope = this._searchScopeSelector.value;
+ var modelObj = this._scopeModelObjects[scope];
+ this._store.selectClause = this._store.selectClause;
+ this._store.where = this._store.where;
+ this._store.category = category;
+ this._store.parent = modelObj;
+ this._store.orderBy = this._store.orderBy;
+ this._resultsGrid.refresh();
+ },
+ _showModeSwitchWarningIfRequired: function ()
+ {
+ var userPreferences = this._management.userPreferences;
+ var displayWarning = (!userPreferences || !userPreferences.query
+ || (userPreferences.query.displaySwitchModeWarning
+ == undefined
+ || userPreferences.query.displaySwitchModeWarning));
+ if (this._standardMode && displayWarning
+ && QueryBuilder.showWarningOnModeChange)
+ {
+ if (!this._switchModeWarningDialog)
+ {
+ var formattedMessage = "<div>Switching to advanced mode is a one-way street,<br/>"
+ + "switching back from advanced mode to standard mode will<br/>"
+ + "completely reset the query.</div>";
+ this._switchModeWarningDialog =
+ new qpid.management.query.MessageDialog({
+ title: "Warning!",
+ message: formattedMessage
+ }, domConstruct.create("div"));
+ this._switchModeWarningDialog.on("execute",
+ lang.hitch(this,
+ function (stopDisplaying)
+ {
+ if (stopDisplaying)
+ {
+ if (!userPreferences.query)
+ {
+ userPreferences.query =
+ {};
+ }
+ userPreferences.query.displaySwitchModeWarning =
+ false;
+ userPreferences.save(
+ {query: userPreferences.query},
+ null,
+ function (error)
+ {
+ console.log(
+ "Saving user preferences failed: "
+ + error);
+ });
+ }
+ else
+ {
+ QueryBuilder.showWarningOnModeChange =
+ false;
+ }
+ this._modeChanged();
+ }));
+ }
+ this._switchModeWarningDialog.show();
+ }
+ else
+ {
+ this._modeChanged();
+ }
+ },
+ _advancedModeSelectChanged: function ()
+ {
+ this._store.selectClause = this.advancedSelect.value;
+ },
+ _advancedModeWhereChanged: function ()
+ {
+ this._store.where = this.advancedWhere.value;
+ },
+ _advancedModeOrderByChanged: function ()
+ {
+ this._store.orderBy = this.advancedOrderBy.value;
+ this._sort = [];
+ },
+ _toggleSearchButton: function (select)
+ {
+ var criteriaNotSet = !select;
+ this.searchButton.set("disabled", criteriaNotSet);
+ this.searchButton.set("title",
+ criteriaNotSet
+ ? "Please, choose fields to display in order to enable search"
+ : "Search");
+ },
+ _buildOrderByExpression: function ()
+ {
+ var orderByExpression = "";
+ if (this._sort && this._sort.length)
+ {
+ var orders = []
+ for (var i = 0; i < this._sort.length; ++i)
+ {
+ orders.push(parseInt(this._sort[i].property)
+ + (this._sort[i].descending ? " desc" : ""));
+ }
+ orderByExpression = orders.join(",");
+ }
+ this.advancedOrderBy.set("value", orderByExpression);
+ return orderByExpression;
+ },
+ _buildSelectExpression: function (value)
+ {
+ var expression = "";
+ if (lang.isArray(value))
+ {
+ for (var i = 0; i < value.length; i++)
+ {
+ var selection = value[i] && value[i].hasOwnProperty(
+ "attributeName") ? value[i].attributeName : value[i];
+ expression = expression + (i > 0 ? "," : "") + selection;
+ }
+ }
+ return expression;
+ },
+ _normalizeSorting: function (selectedColumns)
+ {
+ var newSort = [];
+ for (var i = 0; i < this._sort.length; ++i)
+ {
+ var sortColumnIndex = parseInt(this._sort[i].property) - 1;
+ var sortDescending = this._sort[i].descending;
+ if (sortColumnIndex < this._lastStandardModeSelect.length)
+ {
+ var oldSortedColumnName = this._lastStandardModeSelect[sortColumnIndex].attributeName;
+ for (var j = 0; j < selectedColumns.length; ++j)
+ {
+ if (selectedColumns[j].attributeName === oldSortedColumnName)
+ {
+ newSort.push({
+ property: "" + (j + 1),
+ descending: sortDescending
+ });
+ break;
+ }
+ }
+ }
+ }
+ this._sort = newSort;
+ },
+ _standardModeSelectChanged: function (selectedColumns)
+ {
+ this._normalizeSorting(selectedColumns);
+ this._store.orderBy = this._buildOrderByExpression();
+ this._store.selectClause = this._buildSelectExpression(selectedColumns);
+ this._lastStandardModeSelect = lang.clone(selectedColumns);
+ this._toggleSearchButton(this._store.selectClause);
+ this.search();
+ },
+ _standardModeWhereChanged: function (result)
+ {
+ this._store.where = result;
+ this.search();
+ },
+ _buildGrid: function ()
+ {
+ this._store = new QueryStore({
+ management: this.management,
+ category: this._categorySelector.value.toLowerCase(),
+ parent: this._scopeModelObjects[this._searchScopeSelector.value],
+ zeroBased: false
+ });
+
+ var CustomGrid = declare([Grid,
+ Keyboard,
+ Selection,
+ Pagination,
+ ColumnResizer]);
+
+ var grid = new CustomGrid({
+ collection: this._store,
+ rowsPerPage: 100,
+ selectionMode: 'single',
+ cellNavigation: false,
+ className: 'dgrid-autoheight',
+ pageSizeOptions: [10, 20, 30, 40, 50, 100, 1000, 10000, 100000],
+ adjustLastColumn: true
+ }, this.queryResultGrid);
+ this._store.on("changeHeaders", lang.hitch(this, function (event)
+ {
+ this._store.useCachedResults = true;
+ grid.set("columns", this._getColumns(event.headers));
+ this._resultsGrid.resize();
+ }));
+ this._resultsGrid = grid;
+ this._resultsGrid.startup();
+ this._resultsGrid.on('.dgrid-row:dblclick',
+ lang.hitch(this, this._onRowClick));
+ this._resultsGrid.on("dgrid-sort", lang.hitch(this, function (event)
+ {
+ for (var i = 0; i < this._sort.length; ++i)
+ {
+ if (this._sort[i].property == event.sort[0].property)
+ {
+ this._sort.splice(i, 1);
+ break;
+ }
+ }
+ this._sort.splice(0, 0, event.sort[0]);
+ this._store.orderBy = this._buildOrderByExpression();
+ event.preventDefault();
+ event.stopPropagation();
+ this.search();
+ }));
+ this._resultsGrid.on("dgrid-refresh-complete",
+ lang.hitch(this, function ()
+ {
+ this._store.useCachedResults = false;
+ this._resultsGrid.updateSortArrow(this._sort,
+ true);
+ }));
+ },
+ _onRowClick: function (event)
+ {
+ var row = this._resultsGrid.row(event);
+ var promise = this._management.get({url: "service/structure"});
+ var that = this;
+ promise.then(function (data)
+ {
+ var findObject = function findObject(structure, parent, type)
+ {
+ var item = {
+ id: structure.id,
+ name: structure.name,
+ type: type,
+ parent: parent
+ };
+ if (item.id == row.id)
+ {
+ return item;
+ }
+ else
+ {
+ for (var fieldName in structure)
+ {
+ var fieldValue = structure[fieldName];
+ if (lang.isArray(fieldValue))
+ {
+ var fieldType = fieldName.substring(0,
+ fieldName.length
+ - 1);
+ for (var i = 0;
+ i < fieldValue.length;
+ i++)
+ {
+ var object = fieldValue[i];
+ var result = findObject(object,
+ item,
+ fieldType);
+ if (result != null)
+ {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+ };
+
+ var item = findObject(data, null, "broker");
+ if (item != null)
+ {
+ that.controller.show(item.type,
+ item.name,
+ item.parent,
+ item.id);
+ }
+ });
+ },
+ _getColumns: function (headers)
+ {
+ this._lastHeaders = headers;
+ var columns = [];
+ if (headers)
+ {
+ for (var i = 0; i < headers.length; ++i)
+ {
+ var attribute = headers[i];
+ var column = {
+ label: attribute,
+ field: "" + (i + 1),
+ sortable: true
+ };
+ columns.push(column);
+ if (this._columns)
+ {
+ var columnData = this._columns[attribute];
+ if (columnData)
+ {
+ if (columnData.type == "Date")
+ {
+ var that = this;
+ column.formatter = function (value, object)
+ {
+ if (!isNaN(value) && parseInt(Number(value))
+ == value && !isNaN(parseInt(
+ value,
+ 10)))
+ {
+ return that._management.userPreferences.formatDateTime(
+ value,
+ {
+ addOffset: true,
+ appendTimeZone: true
+ });
+ }
+ return value
+ ? entities.encode(String(value))
+ : "";
+ };
+ }
+ else if (columnData.type == "Map")
{
- var item = {id:structure.id,
- name: structure.name,
- type: type,
- parent: parent};
- if (item.id == row.id)
+ column.renderCell = function (object, value, node)
{
- return item;
- }
- else
+ if (value)
+ {
+ var list = domConstruct.create("div",
+ {},
+ node);
+ for (var i in value)
+ {
+ domConstruct.create("div", {
+ innerHTML: entities.encode(String(i))
+ + ": " + entities.encode(
+ json.stringify(value[i]))
+ }, list);
+ }
+ return list;
+ }
+ return "";
+ };
+ }
+ else if (columnData.type == "List" || columnData.type
+ == "Set")
+ {
+ column.renderCell = function (object, value, node)
{
- for(var fieldName in structure)
+ if (value)
{
- var fieldValue = structure[fieldName];
- if (lang.isArray(fieldValue))
+ var list = domConstruct.create("div",
+ {},
+ node);
+ for (var i in value)
{
- var fieldType = fieldName.substring(0, fieldName.length - 1);
- for (var i = 0; i < fieldValue.length; i++)
- {
- var object = fieldValue[i];
- var result = findObject(object, item, fieldType);
- if (result != null)
- {
- return result;
- }
- }
+ domConstruct.create("div",
+ {
+ innerHTML: entities.encode(
+ json.stringify(
+ value[i]))
+ },
+ list)
}
+ return list;
}
- return null;
- }
- };
-
- var item = findObject(data, null, "broker");
- if (item != null)
+ return "";
+ };
+ }
+ }
+ }
+ }
+ }
+ return columns;
+ },
+ _createScopeList: function ()
+ {
+ var that = this;
+ var result = this._management.query({
+ select: "id, $parent.name as parentName, name",
+ category: "virtualhost"
+ });
+ var deferred = new dojo.Deferred();
+ result.then(function (data)
+ {
+ try
{
- that.controller.show(item.type, item.name, item.parent, item.id);
+ that._scopeDataReceived(data);
}
- });
- },
- _getColumns: function(headers)
- {
- this._lastHeaders = headers;
- var columns = [];
- if (headers)
- {
- for (var i = 0; i < headers.length; ++i)
+ finally
+ {
+ deferred.resolve(that._searchScopeSelector);
+ }
+ }, function (error)
+ {
+ deferred.reject(null);
+ console.error(error.message ? error.message : error);
+ });
+ return deferred.promise;
+ },
+ _scopeDataReceived: function (result)
+ {
+ this._scopeModelObjects = {};
+ var defaultValue = undefined;
+ var items = [{
+ id: undefined,
+ name: "Broker"
+ }];
+ var data = result.results;
+ for (var i = 0; i < data.length; i++)
+ {
+ var name = data[i][2];
+ var parentName = data[i][1];
+ items.push({
+ id: data[i][0],
+ name: "VH:" + parentName + "/" + name
+ });
+ this._scopeModelObjects[data[i][0]] = {
+ name: name,
+ type: "virtualhost",
+ parent: {
+ name: parentName,
+ type: "virtualhostnode",
+ parent: {type: "broker"}
+ }
+ };
+ if (this.parentModelObj && this.parentModelObj.type == "virtualhost"
+ && this.parentModelObj.name == name && this.parentModelObj.parent
+ && this.parentModelObj.parent.name == parentName)
{
- var attribute = headers[i];
- var column = {label: attribute, field: "" + (i + 1), sortable: true};
- columns.push(column);
- if (this._columns)
- {
- var columnData = this._columns[attribute];
- if (columnData)
- {
- if (columnData.type == "Date")
- {
- var that = this;
- column.formatter = function(value, object)
- {
- if (!isNaN(value) && parseInt(Number(value)) == value && !isNaN(parseInt(value, 10)))
- {
- return that._management.userPreferences.formatDateTime(value, {addOffset: true, appendTimeZone: true});
- }
- return value ? entities.encode(String(value)) : "";
- };
- }
- else if (columnData.type == "Map")
- {
- column.renderCell = function(object, value, node)
- {
- if (value)
- {
- var list = domConstruct.create("div", {}, node);
- for(var i in value)
- {
- domConstruct.create("div",
- {innerHTML: entities.encode(String(i))
- + ": "
- + entities.encode(json.stringify(value[i]))},
- list);
- }
- return list;
- }
- return "";
- };
- }
- else if (columnData.type == "List" || columnData.type == "Set")
- {
- column.renderCell = function(object,value, node)
- {
- if (value)
- {
- var list = domConstruct.create("div", {}, node);
- for(var i in value)
- {
- domConstruct.create("div", {innerHTML:entities.encode(json.stringify(value[i]))}, list)
- }
- return list;
- }
- return "";
- };
- }
- }
- }
+ defaultValue = data[i][0];
}
- }
- return columns;
- },
- _createScopeList: function()
- {
- var that = this;
- var result = this._management.query({select: "id, $parent.name as parentName, name",
- category : "virtualhost"});
- var deferred = new dojo.Deferred();
- result.then(function(data)
- {
- try
- {
- that._scopeDataReceived(data);
- }
- finally
- {
- deferred.resolve(that._searchScopeSelector);
- }
- },
- function(error)
- {
- deferred.reject(null);
- console.error(error.message ? error.message : error);
- });
- return deferred.promise;
- },
- _scopeDataReceived: function(result)
- {
- this._scopeModelObjects = {};
- var defaultValue = undefined;
- var items = [{id:undefined, name: "Broker"}];
- var data = result.results;
- for(var i =0 ; i<data.length;i++)
- {
- var name = data[i][2];
- var parentName = data[i][1];
- items.push({id: data[i][0], name: "VH:" + parentName + "/" + name});
- this._scopeModelObjects[data[i][0]] = {name: name,
- type: "virtualhost",
- parent: {name: parentName,
- type: "virtualhostnode",
- parent: {type: "broker"}
- }
- };
- if (this.parentModelObj &&
- this.parentModelObj.type == "virtualhost" &&
- this.parentModelObj.name == name &&
- this.parentModelObj.parent &&
- this.parentModelObj.parent.name == parentName)
- {
- defaultValue = data[i][0];
- }
- }
-
- var scopeStore = new DstoreAdapter (new Memory({data: items,
- idProperty: 'id'}));
- this._searchScopeSelector = new dijit.form.FilteringSelect({ name: "scope",
- placeHolder: "Select search scope",
- store: scopeStore,
- value: defaultValue,
- required: false
- },
- this.scope);
- this._searchScopeSelector.startup();
- },
- _createCategoryList: function()
- {
- var categoryStore = new DstoreAdapter(new Memory({idProperty: "id",
- data: predefinedCategories}));
- var categoryList = new dijit.form.ComboBox({name: "category",
- placeHolder: "Select Category",
- store: categoryStore,
- value: this._category || "Queue",
- required: true,
- invalidMessage: "Invalid category specified"
- },
- this.categoryName);
+ }
+
+ var scopeStore = new DstoreAdapter(new Memory({
+ data: items,
+ idProperty: 'id'
+ }));
+ this._searchScopeSelector = new dijit.form.FilteringSelect({
+ name: "scope",
+ placeHolder: "Select search scope",
+ store: scopeStore,
+ value: defaultValue,
+ required: false
+ }, this.scope);
+ this._searchScopeSelector.startup();
+ },
+ _createCategoryList: function ()
+ {
+ var categoryStore = new DstoreAdapter(new Memory({
+ idProperty: "id",
+ data: predefinedCategories
+ }));
+ var categoryList = new dijit.form.ComboBox({
+ name: "category",
+ placeHolder: "Select Category",
+ store: categoryStore,
+ value: this._category || "Queue",
+ required: true,
+ invalidMessage: "Invalid category specified"
+ }, this.categoryName);
categoryList.startup();
categoryList.on("change", lang.hitch(this, this._categoryChanged));
this._categorySelector = categoryList;
- },
- _categoryChanged: function()
- {
- this._resetSearch();
- var metadata = this._getCategoryMetadata(this._categorySelector.value);
- var disableMetadataDependant = !metadata;
- this.standardWhereChooser.set("disabled", disableMetadataDependant);
- this.standardSelectChooser.set("disabled", disableMetadataDependant);
- this.searchButton.set("disabled", disableMetadataDependant || !this._store.selectClause);
- this.modeButton.set("disabled", disableMetadataDependant);
- this.advancedSelect.set("disabled", disableMetadataDependant);
- this.advancedWhere.set("disabled", disableMetadataDependant);
- this.advancedOrderBy.set("disabled", disableMetadataDependant);
-
- if (disableMetadataDependant)
- {
- dijit.showTooltip(
- this._categorySelector.get("invalidMessage"),
- this._categorySelector.domNode,
- this._categorySelector.get("tooltipPosition"),
- !this._categorySelector.isLeftToRight()
- );
- }
- else
- {
- var data = this._combineTypeAttributesAndStatistics(metadata);
- this._columns = data.asObject;
- this.standardSelectChooser.set("data", {items: data.asArray,
- idProperty: "id",
- selected:[],
- nameProperty: "attributeName"});
- this.standardWhereChooser.set("data", {items: data.asArray,
- selected:[],
- idProperty: "id",
- nameProperty: "attributeName"});
- }
- },
- _advancedModeKeyPressed:function(evt)
- {
+ },
+ _categoryChanged: function ()
+ {
+ this._resetSearch();
+ var metadata = this._getCategoryMetadata(this._categorySelector.value);
+ var disableMetadataDependant = !metadata;
+ this.standardWhereChooser.set("disabled", disableMetadataDependant);
+ this.standardSelectChooser.set("disabled", disableMetadataDependant);
+ this.searchButton.set("disabled",
+ disableMetadataDependant
+ || !this._store.selectClause);
+ this.modeButton.set("disabled", disableMetadataDependant);
+ this.advancedSelect.set("disabled", disableMetadataDependant);
+ this.advancedWhere.set("disabled", disableMetadataDependant);
+ this.advancedOrderBy.set("disabled", disableMetadataDependant);
+
+ if (disableMetadataDependant)
+ {
+ dijit.showTooltip(this._categorySelector.get("invalidMessage"),
+ this._categorySelector.domNode,
+ this._categorySelector.get("tooltipPosition"),
+ !this._categorySelector.isLeftToRight());
+ }
+ else
+ {
+ var data = this._combineTypeAttributesAndStatistics(metadata);
[... 231 lines stripped ...]
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org