Author: kwall
Date: Mon Jul 25 15:13:24 2016
New Revision: 1754027
URL: http://svn.apache.org/viewvc?rev=1754027&view=rev
Log:
QPID-7360 : [Java Broker] Replace usages of the old preference system with new
one
Added:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/userpreference/
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/userpreference/UserPreferenceForm.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/userpreference/
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/userpreference/UserPreferenceForm.html
Removed:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showPreferences.html
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/common/TimeZoneSelector.html
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TimeZoneSelector.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/updater.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/LogViewer.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/treeView.js
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/common/TimeZoneSelector.html
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/common/TimeZoneSelector.html?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/common/TimeZoneSelector.html
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/common/TimeZoneSelector.html
Mon Jul 25 15:13:24 2016
@@ -18,49 +18,34 @@
- under the License.
-
-->
-<table cellpadding="0" cellspacing="2">
- <tr>
- <td class="labelClass"><strong>Use UTC time:</strong></td>
- <td>
- <input type="checkbox" class='utcSelector' name="utc"
data-dojo-type="dijit/form/CheckBox" value="UTC"></input>
- </td>
- </tr>
- <tr>
- <td class="labelClass"><strong>Time Zone:</strong></td>
- <td>
- <table cellpadding="0" cellspacing="2">
- <tr>
- <td>Region</td>
- <td><select class='timezoneRegion' name="region"
data-dojo-type="dijit/form/FilteringSelect"
+<div>
+ <div class="clear">
+ <input id="${id}_utcSelector"
+ class="formLabel-controlCell tableContainer-valueCell"
+ type="checkbox"
+ data-dojo-type="dijit/form/CheckBox"
+ data-dojo-attach-point="utcSelector" value="UTC"/>
+ <label for="${id}_utcSelector">Use UTC time</label>
+ </div>
+ <div class="clear">
+ <select data-dojo-type="dijit/form/FilteringSelect"
data-dojo-props="
placeholder: 'Select region',
required: true,
missingMessage: 'A region must be supplied',
title: 'Select region',
- autoComplete: true,
- value:'undefined'">
- <option value="undefined">Undefined</option>
- <option value="Africa">Africa</option>
- <option value="America">America</option>
- <option value="Antarctica">Antarctica</option>
- <option value="Arctic">Arctic</option>
- <option value="Asia">Asia</option>
- <option value="Atlantic">Atlantic</option>
- <option value="Australia">Australia</option>
- <option value="Europe">Europe</option>
- <option value="Indian">Indian</option>
- <option value="Pacific">Pacific</option>
- </select></td>
- <td>City</td>
- <td><select class='timezoneCity' name="city"
data-dojo-type="dijit/form/FilteringSelect"
+ autoComplete: true"
+ data-dojo-attach-point="regionSelector">
+ </select>
+ </div>
+ <div class="clear">
+ <select data-dojo-type="dijit/form/FilteringSelect"
data-dojo-props="
placeholder: 'Select city',
required: true,
missingMessage: 'A city must be supplied',
- title: 'Select city'">
- </select></td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
\ No newline at end of file
+ title: 'Select city'"
+ data-dojo-attach-point="citySelector">
+ </select>
+ </div>
+</div>
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
Mon Jul 25 15:13:24 2016
@@ -29,7 +29,6 @@ define(["dojo/query",
"dojo/domReady!"], function (query, registry, entities, Structure,
updater, Management, util, Dialog)
{
- var preferencesDialog = null;
var helpURL = null;
var queryCreateDialog = null;
var queryCreateDialogForm = null;
@@ -37,22 +36,7 @@ define(["dojo/query",
return {
showPreferencesDialog: function ()
{
- if (preferencesDialog == null)
- {
- var management = this.management;
- require(["qpid/management/Preferences", "dojo/ready"],
function (PreferencesDialog, ready)
- {
- ready(function ()
- {
- preferencesDialog = new PreferencesDialog(management);
- preferencesDialog.showDialog();
- });
- });
- }
- else
- {
- preferencesDialog.showDialog();
- }
+ this.management.userPreferences.showEditor();
},
getHelpUrl: function (callback)
{
@@ -123,7 +107,14 @@ define(["dojo/query",
queryCreateDialogForm.on("create", function (e)
{
queryCreateDialog.hide();
- controller.show("query", e.preference,
e.parentObject);
+ var tabData = {
+ tabType: "query",
+ parent: e.parentObject,
+ configuredObjectId: e.parentObject.id,
+ data: e.preference,
+ preferenceId: e.preference.id
+ };
+ controller.showTab(tabData);
});
queryCreateDialogForm.on("cancel", function (e)
{
@@ -142,7 +133,9 @@ define(["dojo/query",
},
showQueryBrowser: function (e)
{
- this.controller.show("queryBrowser", "QueueBrowser");
+ this.controller.showTab({
+ tabType: "queryBrowser"
+ });
},
init: function (controller, TreeView)
{
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TimeZoneSelector.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TimeZoneSelector.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TimeZoneSelector.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TimeZoneSelector.js
Mon Jul 25 15:13:24 2016
@@ -19,22 +19,19 @@
*
*/
define(["dojo/_base/declare",
- "dojo/_base/array",
- "dojo/dom-construct",
- "dojo/parser",
- "dojo/query",
- "dojo/dom-style",
+ "dojo/_base/lang",
+ "dojo/Evented",
"dojo/store/Memory",
- "dijit/_WidgetBase",
- "dijit/registry",
"dojo/text!common/TimeZoneSelector.html",
- "dijit/form/ComboBox",
+ "dijit/_WidgetBase",
+ "dijit/_TemplatedMixin",
+ "dijit/_WidgetsInTemplateMixin",
"dijit/form/FilteringSelect",
"dijit/form/CheckBox",
"dojox/validate/us",
"dojox/validate/web",
"dojo/domReady!"],
- function (declare, array, domConstruct, parser, query, domStyle, Memory,
_WidgetBase, registry, template)
+ function (declare, lang, Evented, Memory, template)
{
var preferencesRegions = ["Africa",
@@ -50,10 +47,7 @@ define(["dojo/_base/declare",
function initSupportedRegions()
{
- var supportedRegions = [{
- "id": "undefined",
- "name": "Undefined"
- }];
+ var supportedRegions = [];
for (var j = 0; j < preferencesRegions.length; j++)
{
supportedRegions.push({
@@ -64,168 +58,118 @@ define(["dojo/_base/declare",
return supportedRegions;
}
- return declare("qpid.common.TimeZoneSelector", [_WidgetBase], {
-
+ return declare("qpid.common.TimeZoneSelector", [dijit._WidgetBase,
+ dijit._TemplatedMixin,
+
dijit._WidgetsInTemplateMixin,
+ Evented], {
+ templateString: template.replace(/<!--[\s\S]*?-->/g, ""),
+
+ /**
+ * template fields
+ */
value: null,
- domNode: null,
- _regionSelector: null,
- _citySelector: null,
- _utcSelector: null,
-
- constructor: function (args)
- {
- this._args = args;
- this.timezones = args.timezones;
- },
-
- buildRendering: function ()
- {
- this.domNode = domConstruct.create("div", {innerHTML:
template});
- parser.parse(this.domNode);
- },
+ regionSelector: null,
+ citySelector: null,
+ utcSelector: null,
+
+ /**
+ * internal fields
+ */
+ _supportedRegions: null,
postCreate: function ()
{
this.inherited(arguments);
- var self = this;
- if (this._args.labelStyle)
- {
- var nl = query(".labelClass", this.domNode);
- array.forEach(nl, function (entry, i)
- {
- domStyle.set(entry, self._args.labelStyle)
- });
- }
- var supportedTimeZones = this.timezones;
-
- this._utcSelector = registry.byNode(query(".utcSelector",
this.domNode)[0]);
- this._citySelector = registry.byNode(query(".timezoneCity",
this.domNode)[0]);
- this._citySelector.set("searchAttr", "city");
- this._citySelector.set("query", {region: /.*/});
- this._citySelector.set("labelAttr", "city");
- if (this.timezones)
- {
- this._setTimezonesAttr(this.timezones);
- }
-
- this._regionSelector =
registry.byNode(query(".timezoneRegion", this.domNode)[0]);
- var supportedRegions = initSupportedRegions();
- this._regionSelector.set("store", new Memory({data:
supportedRegions}));
-
- this._utcSelector.on("change", function (value)
- {
- var checked = this.get("checked");
+ this.citySelector.set("searchAttr", "city");
+ this.citySelector.set("query", {region: /.*/});
+ this.citySelector.set("labelAttr", "city");
+ this._supportedRegions = initSupportedRegions();
+ this.regionSelector.set("store", new Memory({data:
this._supportedRegions}));
+
+ this.utcSelector.on("change", lang.hitch(this, function (value)
+ {
+ var checked = this.utcSelector.get("checked");
+ this.citySelector.set("disabled", checked);
+ this.regionSelector.set("disabled", checked);
if (checked)
{
- self.value = "UTC";
+ this.value = "UTC";
+ this.regionSelector.reset();
+ this.citySelector.reset();
+ this._handleOnChange(this.value);
}
else
{
- if (self._citySelector.value &&
self._regionSelector.value)
- {
- self.value = self._citySelector.value;
- }
- else
- {
- self.value = null;
- }
+ this._defaultRegionAndCity();
}
- self._citySelector.set("disabled", checked);
- self._regionSelector.set("disabled", checked);
- self._handleOnChange(self.value);
- });
- this._regionSelector.on("change", function (value)
+
+ }));
+ this.regionSelector.on("change", lang.hitch(this, function
(value)
{
- if (value == "undefined")
- {
- self._citySelector.set("disabled", true);
- self._citySelector.query.region = /.*/;
- self.value = null;
- self._citySelector.set("value", null);
- self._handleOnChange(self.value);
- }
- else
+ if (value)
{
- self._citySelector.set("disabled", false);
- self._citySelector.query.region = value || /.*/;
- if (this.timeZone)
- {
- self._citySelector.set("value", this.timeZone);
- this.timeZone = null;
- }
- else
- {
- self._citySelector.set("value", null);
- }
+ this.citySelector.set("disabled", false);
+ this.citySelector.query.region = value;
+ var store = this.citySelector.get("store");
+ var cities = store.query({region: value});
+ this.citySelector.set("value", cities[0].id, true);
}
- });
+ }));
- this._citySelector.on("change", function (value)
+ this.citySelector.on("change", lang.hitch(this, function
(value)
{
- self.value = value;
- self._handleOnChange(value);
- });
+ if (value)
+ {
+ this.value = value;
+ this._handleOnChange(value);
+ }
+ }));
+ },
- this._setValueAttr(this._args.value);
+ _defaultRegionAndCity: function ()
+ {
+ var firstRegion = this._supportedRegions[0];
+ this.regionSelector.set("value", firstRegion.id, false);
+ var store = this.citySelector.get("store");
+ var cities = store.query({region: firstRegion.id});
+ this.citySelector.set("value", cities[0].id, true);
},
_setTimezonesAttr: function (supportedTimeZones)
{
- this._citySelector.set("store", new Memory({data:
supportedTimeZones}));
- if (this._args.name)
- {
- this._citySelector.set("name", this._args.name);
- }
+ this.citySelector.set("store", new Memory({data:
supportedTimeZones}));
},
_setValueAttr: function (value)
{
+ this._lastValueReported = value;
if (value)
{
if (value == "UTC")
{
- this._utcSelector.set("checked", true);
+ this.utcSelector.set("checked", true);
}
else
{
- this._utcSelector.set("checked", false);
+ this.utcSelector.set("checked", false);
var elements = value.split("/");
if (elements.length > 1)
{
- this._regionSelector.timeZone = value;
- this._regionSelector.set("value", elements[0]);
- this._citySelector.set("value", value);
+ this.regionSelector.timeZone = value;
+ this.regionSelector.set("value", elements[0],
false);
+ this.citySelector.set("value", value, true);
}
else
{
- this._regionSelector.set("value", "undefined");
+ this._defaultRegionAndCity();
}
}
}
else
{
- this._utcSelector.set("checked", false);
- this._regionSelector.set("value", "undefined");
- }
- this.value = value;
- this._handleOnChange(value);
- },
-
- destroy: function ()
- {
- if (this.domNode)
- {
- this.domNode.destroy();
- this.domNode = null;
+ this._defaultRegionAndCity();
}
- _regionSelector: null;
- _citySelector: null;
- _utcSelector: null;
- },
-
- onChange: function (newValue)
- {
},
_handleOnChange: function (newValue)
@@ -233,15 +177,7 @@ define(["dojo/_base/declare",
if (this._lastValueReported != newValue)
{
this._lastValueReported = newValue;
- if (this._onChangeHandle)
- {
- this._onChangeHandle.remove();
- }
- this._onChangeHandle = this.defer(function ()
- {
- this._onChangeHandle = null;
- this.onChange(newValue);
- });
+ this.emit("change", newValue);
}
}
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
Mon Jul 25 15:13:24 2016
@@ -107,7 +107,21 @@ define(["dojo/_base/array", "dojox/lang/
{
var metaData = this.getMetaData(category, type);
return metaData ? metaData.validChildTypes[childCategory] : [];
- }
+ };
+
+ Metadata.prototype.isCategory = function (category)
+ {
+ var categoryLower = category ? category.toLowerCase() : null;
+ for (var fieldName in this.metadata)
+ {
+ if (new String(fieldName).toLowerCase() === categoryLower)
+ {
+ return true;
+ }
+ }
+ return false;
+ };
+
return Metadata;
});
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/updater.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/updater.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/updater.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/updater.js
Mon Jul 25 15:13:24 2016
@@ -36,11 +36,11 @@ define([], function ()
var timer = setInterval(invokeUpdates, updatePeriod * 1000);
var updateIntervalListener = {
- onPreferencesChange: function (preferences)
+ onPreferenceChange: function (preference)
{
- if (preferences.updatePeriod && preferences.updatePeriod !=
updatePeriod)
+ if (preference.value && preference.value.updatePeriod &&
preference.value.updatePeriod != updatePeriod)
{
- updatePeriod = preferences.updatePeriod;
+ updatePeriod = preference.value.updatePeriod;
clearInterval(timer);
timer = setInterval(invokeUpdates, updatePeriod * 1000);
}
@@ -50,7 +50,7 @@ define([], function ()
return {
registerUpdateIntervalListener: function (userPreferences)
{
- userPreferences.addListener(updateIntervalListener);
+ userPreferences.addListener(updateIntervalListener,
userPreferences.updatePeriodPreferenceName);
},
add: function (obj)
{
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
Mon Jul 25 15:13:24 2016
@@ -406,7 +406,7 @@ define(["dojo/parser",
var idx = evt.rowIndex, theItem = this.getItem(idx);
if (theItem.vhId)
{
- that.showVirtualHost(theItem, that.brokerObj);
+ that.showVirtualHost(theItem);
}
});
}, gridProperties, EnhancedGrid, true);
@@ -437,7 +437,7 @@ define(["dojo/parser",
var data = that.vhostsGrid.grid.selection.getSelected();
if (data.length == 1)
{
- that.showVirtualHost(data[0], that.brokerObj);
+ that.showVirtualHost(data[0]);
that.vhostsGrid.grid.selection.clear();
}
});
@@ -448,7 +448,7 @@ define(["dojo/parser",
if (data.length == 1)
{
var item = data[0];
- that.controller.show("virtualhostnode", item.name,
that.brokerObj, item.id);
+ that.controller.showById(item.id);
that.vhostsGrid.grid.selection.clear();
}
});
@@ -588,9 +588,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid, function
(evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- that.controller.show("port", name, that.brokerObj,
theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ that.controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -641,9 +640,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid,
function (evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- that.controller.show("authenticationprovider", name,
that.brokerObj, theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ that.controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -668,9 +666,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid,
function (evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- that.controller.show("keystore", name, that.brokerObj,
theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ that.controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -703,9 +700,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid,
function (evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- that.controller.show("truststore", name,
that.brokerObj, theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ that.controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
this.groupProvidersGrid =
@@ -725,9 +721,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid,
function (evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- that.controller.show("groupprovider", name,
that.brokerObj, theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ that.controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
this.accessControlProvidersGrid =
@@ -751,9 +746,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid,
function (evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- that.controller.show("accesscontrolprovider", name,
that.brokerObj, theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ that.controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -789,9 +783,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid, function
(evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- that.controller.show("brokerlogger", name, that.brokerObj,
theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ that.controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
this.update(function ()
@@ -800,14 +793,9 @@ define(["dojo/parser",
});
}
- BrokerUpdater.prototype.showVirtualHost = function (item, brokerObj)
+ BrokerUpdater.prototype.showVirtualHost = function (item)
{
- var nodeObject = {
- type: "virtualhostnode",
- name: item.name,
- parent: brokerObj
- };
- this.controller.show("virtualhost", item.vhId ? item.vhName :
item.name, nodeObject, item.vhId);
+ this.controller.showById(item.vhId);
}
BrokerUpdater.prototype.updateHeader = function ()
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js
Mon Jul 25 15:13:24 2016
@@ -483,13 +483,14 @@ define(["dojo/_base/lang",
Management.prototype.init = function (callback)
{
var that = this;
+ // todo : change invoked methods to return promise and execute
requests in parallel using promise.all
this.getAuthenticatedUserAndGroups(function()
{
that.loadMetadata(function ()
{
that.loadTimezones(function ()
{
- that.loadUserPreferences(callback);
+ that.loadUserPreferences().then(callback, callback);
});
});
});
@@ -558,12 +559,12 @@ define(["dojo/_base/lang",
// summary:
// Loads user preferences and store them under 'userPreferences'
field as object of type qpid.management.UserPreferences
- // Callback is invoked on both successful and unsuccessful
preferences request
+ // Returns promise
//
- Management.prototype.loadUserPreferences = function (callback)
+ Management.prototype.loadUserPreferences = function ()
{
this.userPreferences = new UserPreferences(this);
- this.userPreferences.load(callback, callback);
+ return this.userPreferences.load();
};
var saslServiceUrl = "service/sasl";
@@ -662,6 +663,11 @@ define(["dojo/_base/lang",
return this.put({url: url}, preference);
};
+ Management.prototype.savePreferences = function(parentObject,
preferences)
+ {
+ var url = this.buildPreferenceUrl(parentObject);
+ return this.post({url: url}, preferences);
+ };
Management.prototype.getPreference = function(parentObject, type, name)
{
@@ -669,6 +675,12 @@ define(["dojo/_base/lang",
return this.get({url: url});
};
+ Management.prototype.getPreferenceById = function(parentObject,
preferenceId)
+ {
+ var url = this.buildPreferenceUrl(parentObject, null, null, true,
preferenceId);
+ return this.get({url: url});
+ };
+
Management.prototype.getUserPreferences = function(parentObject, type)
{
var url = this.buildPreferenceUrl(parentObject, type);
@@ -687,12 +699,23 @@ define(["dojo/_base/lang",
return this.del({url: url});
};
- Management.prototype.buildPreferenceUrl = function (parentObject,
type, name, visiblePreferences)
+ Management.prototype.buildPreferenceUrl = function (parentObject,
type, name, visiblePreferences, id)
{
- return this.objectToURL(parentObject)
- + (visiblePreferences ? "/visiblepreferences/" :
"/userpreferences/")
- + encodeURIComponent(encodeURIComponent(type))
- + (name ? "/" +
encodeURIComponent(encodeURIComponent(name)) : "" );
+ var url = this.objectToURL(parentObject);
+ url = url + (visiblePreferences ? "/visiblepreferences" :
"/userpreferences");
+ if (type)
+ {
+ url = url + "/" + encodeURIComponent(encodeURIComponent(type));
+ if (name)
+ {
+ url = url + "/" +
encodeURIComponent(encodeURIComponent(name));
+ }
+ }
+ else if (id)
+ {
+ url = url + "?id=" +
encodeURIComponent(encodeURIComponent(id));
+ }
+ return url;
};
Management.prototype.getGroups = function ()
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js
Mon Jul 25 15:13:24 2016
@@ -62,7 +62,15 @@ define(["dojo/parser",
this.queryBrowserWidget.on("openQuery",
function (event)
{
- that.controller.show("query", event.preference,
event.parentObject, event.preference.id);
+ var tabData = {
+ tabType: "query",
+ data: event.preference,
+ name: event.preference.name,
+ parent: event.parentObject,
+ configuredObjectId: event.parentObject.id,
+ preferenceId: event.preference.id
+ };
+ that.controller.showTab(tabData);
});
this.queryBrowserWidget.startup();
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
Mon Jul 25 15:13:24 2016
@@ -19,13 +19,16 @@
*
*/
define(["dojo/parser",
+ "dojo/_base/lang",
+ "dojo/promise/all",
+ "dojo/Deferred",
"dojo/query",
"dojo/json",
"qpid/common/util",
"dojo/text!showQueryTab.html",
"qpid/management/query/QueryWidget",
"dojo/domReady!"],
- function (parser, query, json, util, template, QueryWidget)
+ function (parser, lang, all, Deferred, query, json, util, template,
QueryWidget)
{
function getPath(object)
{
@@ -42,41 +45,80 @@ define(["dojo/parser",
return "";
}
- function QueryTab(data, parent, controller)
+ function QueryTab(name, parent, controller)
{
this.controller = controller;
this.management = controller.management;
this.parent = parent;
- this.preference = data;
}
QueryTab.prototype.getTitle = function (changed)
{
+ if (this.tabData.preferenceId && !this.tabData.data)
+ {
+ return "Loading...";
+ }
var category = "";
- if (this.preference && this.preference.value &&
this.preference.value.category)
+ if (this.tabData.data && this.tabData.data.value &&
this.tabData.data.value.category)
{
- category = this.preference.value.category;
+ category = this.tabData.data.value.category;
category = category.charAt(0).toUpperCase() +
category.substring(1);
}
- var name = this.preference.id ? this.preference.name : "New";
- var prefix = this.preference.id && !changed ? "" : "*";
+ var name = this.tabData.data.name ? this.tabData.data.name : "New";
+ var prefix = this.tabData.data.name && !changed ? "" : "*";
var path = getPath(this.parent);
return prefix + category + " query:" + name + path;
};
QueryTab.prototype.open = function (contentPane)
{
- var that = this;
this.contentPane = contentPane;
contentPane.containerNode.innerHTML = template;
- parser.parse(contentPane.containerNode)
- .then(function (instances)
+ var parserPromise = parser.parse(contentPane.containerNode);
+ var preferencePromise = null;
+ if (this.tabData.preferenceId && !this.tabData.data)
+ {
+ preferencePromise =
this.management.getPreferenceById(this.parent, this.tabData.preferenceId);
+ }
+ else
+ {
+ var deferred = new Deferred();
+ var obj = {};
+ obj[this.tabData.data.type] = [this.tabData.data];
+ deferred.resolve(obj);
+ preferencePromise = deferred.promise;
+ }
+ all({parser: parserPromise, preference: preferencePromise})
+ .then(lang.hitch(this, function (data)
{
- that.onOpen(contentPane.containerNode)
- }, function (e)
+ for (var type in data.preference)
+ {
+ var preferences = data.preference[type];
+ if (preferences[0])
+ {
+ this.tabData.data = preferences[0];
+ }
+ if (preferences.length !== 1)
+ {
+ console.warn("Unexpected number of preferences
returned for id "
+ + this.tabData.preferenceId);
+ }
+ }
+
+ if (this.tabData.data)
+ {
+ this.onOpen(contentPane.containerNode)
+ }
+ else
+ {
+
this.management.userPreferences.removeTab(this.tabData);
+ this.destroy();
+ }
+
+ }), lang.hitch(this, function (e)
{
- console.error("Unexpected error on parsing query tab
template", e);
- });
+ this.management.errorHandler(e);
+ }));
};
QueryTab.prototype.onOpen = function (containerNode)
@@ -85,33 +127,35 @@ define(["dojo/parser",
this.queryWidget = new QueryWidget({
management: this.management,
parentObject: this.parent,
- preference: this.preference,
+ preference: this.tabData.data,
controller: this.controller
}, this.queryWidgetNode);
- var that = this;
- this.queryWidget.on("save", function(e)
- {
- if (that.preference.name != e.preference.name)
- {
- that.controller.update(that, e.preference.name,
that.parent, e.preference.id);
- }
- that.preference = e.preference;
- var title = that.getTitle();
- that.contentPane.set("title", title);
- });
- this.queryWidget.on("change", function(e)
- {
- var title = that.getTitle(true);
- that.contentPane.set("title", title);
- });
- this.queryWidget.on("delete", function(e)
- {
- that.destroy();
- });
- this.queryWidget.on("clone", function(e)
+ this.contentPane.set("title", this.getTitle());
+ this.queryWidget.on("save", lang.hitch(this, function(e)
{
- that.controller.show("query", e.preference, e.parentObject);
- });
+ this.tabData.data = e.preference;
+ var title = this.getTitle();
+ this.contentPane.set("title", title);
+ }));
+ this.queryWidget.on("change", lang.hitch(this, function(e)
+ {
+ var title = this.getTitle(true);
+ this.contentPane.set("title", title);
+ }));
+ this.queryWidget.on("delete", lang.hitch(this, function(e)
+ {
+ this.management.userPreferences.removeTab(this.tabData);
+ this.destroy();
+ }));
+ this.queryWidget.on("clone", lang.hitch(this, function(e)
+ {
+ this.controller.showTab({
+ tabType: "query",
+ data: e.preference,
+ parent: e.parentObject,
+ configuredObjectId: e.parentObject.id
+ });
+ }));
this.queryWidget.startup();
};
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
Mon Jul 25 15:13:24 2016
@@ -214,7 +214,6 @@ define(["dojo/_base/declare",
event.stop(evt);
editQueue.show(that.management, that.modelObj);
});
- userPreferences.addListener(that);
that.queueUpdater.update(function ()
{
updater.add(that.queueUpdater);
@@ -321,12 +320,6 @@ define(["dojo/_base/declare",
Queue.prototype.close = function ()
{
updater.remove(this.queueUpdater);
- this.management.userPreferences.removeListener(this);
- };
-
- Queue.prototype.onPreferencesChange = function (data)
- {
- //this.grid._refresh();
};
var queueTypeKeys = {
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
Mon Jul 25 15:13:24 2016
@@ -18,92 +18,108 @@
* under the License.
*
*/
-define(["dojo/date", "dojo/date/locale", "dojo/number"], function (date,
locale, number)
+define(["dojo/_base/lang",
+ "dojo/Deferred",
+ "dojo/date",
+ "dojo/date/locale",
+ "dojo/number"], function (lang, Deferred, date, locale, number)
{
-
+ var timeZonePreferenceName = "Time Zone";
+ var updatePeriodPreferenceName = "Update Period";
+ var tabsPreferenceName = "Tabs";
+ var defaultPreferences = [
+ {name: timeZonePreferenceName, type: "X-TimeZone", value: {timeZone:
"UTC"} },
+ {name: updatePeriodPreferenceName, type: "X-UpdatePeriod", value:
{updatePeriod: 5} },
+ {name: tabsPreferenceName, type: "X-Tabs", value: {tabs: []} }
+ ];
function UserPreferences(management)
{
- this.listeners = [];
- /* set time zone to 'UTC' by default*/
- this.timeZone = "UTC";
- this.tabs = [];
- this.management = management;
+ this.timeZonePreferenceName = timeZonePreferenceName;
+ this.updatePeriodPreferenceName = updatePeriodPreferenceName;
+ this.tabsPreferenceName = tabsPreferenceName;
this.preferences = {};
+ for(var i = 0; i< defaultPreferences.length; i++)
+ {
+ var preference = defaultPreferences[i];
+ this.preferences[preference.name] = preference;
+ }
+ this.management = management;
+ this.listeners = {};
}
- UserPreferences.prototype.load = function (successCallback,
failureCallback)
+ UserPreferences.prototype.load = function ()
{
- var that = this;
- this.management.get({url: "service/preferences"})
- .then(function (preferences)
- {
- that.preferences = preferences;
- for (var name in preferences)
- {
- that[name] = preferences[name];
- }
- if (successCallback)
- {
- successCallback();
- }
- }, function (error)
- {
- that.preferencesError = error;
- if (failureCallback)
- {
- failureCallback();
- }
- });
- }
+ var deferred = new Deferred();
+ management.getUserPreferences({type: "broker"}).then(lang.hitch(this,
function (preferences)
+ {
+ this._init(preferences);
+ deferred.resolve(preferences);
+ }),lang.hitch(this, function (error)
+ {
+ this.lastError = error;
+ deferred.reject(error);
+ }));
+ return deferred.promise;
+ };
- UserPreferences.prototype.save = function (preferences, successCallback,
failureCallback)
+ UserPreferences.prototype.getLastError = function ()
{
- var that = this;
- this.management.post({url: "service/preferences"}, preferences)
- .then(function (x)
- {
- that.preferences = preferences;
- for (var name in preferences)
- {
- if (preferences.hasOwnProperty(name))
- {
- that[name] = preferences[name];
- }
- }
- that._notifyListeners(preferences);
- if (successCallback)
- {
- successCallback(preferences);
- }
- }, failureCallback);
+ return this.lastError;
};
- var fields = ["preferencesError", "management", "listeners"];
- UserPreferences.prototype.resetPreferences = function ()
+ UserPreferences.prototype._init= function(preferences)
{
- var preferences = {};
- for (var name in this)
+ var timezone = preferences["X-TimeZone"];
+ if (timezone && timezone[0])
{
- if (this.hasOwnProperty(name) && typeof this[name] != "function")
- {
- if (fields.indexOf(name) != -1)
- {
- continue;
- }
- this[name] = null;
- preferences[name] = undefined;
- delete preferences[name];
- }
+ this.preferences[timeZonePreferenceName] = timezone[0];
+ }
+ var tabs = preferences["X-Tabs"];
+ if (tabs && tabs[0])
+ {
+ this.preferences[tabsPreferenceName] = tabs[0];
}
- this.timeZone = "UTC";
- this.preferences = preferences;
- this._notifyListeners(preferences);
+ var updatePeriod = preferences["X-UpdatePeriod"];
+ if (updatePeriod && updatePeriod[0])
+ {
+ this.preferences[updatePeriodPreferenceName] = updatePeriod[0];
+ }
+ };
+
+ UserPreferences.prototype.save = function (preferences)
+ {
+ var deferred = new Deferred();
+ var result = this.management.savePreferences({type: "broker"},
preferences);
+ result.then(lang.hitch(this, function ()
+ {
+ deferred.resolve(preferences);
+ this._notifyListeners(preferences);
+ }), lang.hitch(this, function (error)
+ {
+ this.lastError = error;
+ deferred.reject(error);
+ }));
+ return deferred.promise;
};
- UserPreferences.prototype.addListener = function (obj)
+ UserPreferences.prototype.addListener = function (listener, preferenceName)
{
- this.listeners.push(obj);
- this._notifyListener(obj, this.preferences);
+ var preference = this.preferences[preferenceName];
+ if (preference)
+ {
+ var preferenceListeners = this.listeners[preferenceName];
+ if (!preferenceListeners)
+ {
+ preferenceListeners = [];
+ this.listeners[preferenceName] = preferenceListeners;
+ }
+ preferenceListeners.push(listener);
+ this._notifyListener(listener, preference);
+ }
+ else
+ {
+ throw new Error("Unsupported preference '" + preferenceName + "'");
+ }
};
UserPreferences.prototype.removeListener = function (obj)
@@ -120,17 +136,30 @@ define(["dojo/date", "dojo/date/locale",
UserPreferences.prototype._notifyListeners = function (preferences)
{
- for (var i = 0; i < this.listeners.length; i++)
+ for( var type in preferences)
{
- this._notifyListener(this.listeners[i], preferences);
+ var typeList = preferences[type];
+ for(var i = 0; i < typeList.length; i++)
+ {
+ var preference = typeList[i];
+ var name = preference.name;
+ var listenerList = this.listeners[name];
+ if (listenerList)
+ {
+ for(var j=0; j < listenerList.length; j++)
+ {
+ this._notifyListener(listenerList[j], preference);
+ }
+ }
+ }
}
};
- UserPreferences.prototype._notifyListener = function (listener,
preferences)
+ UserPreferences.prototype._notifyListener = function (listener, preference)
{
try
{
- listener.onPreferencesChange(preferences);
+ listener.onPreferenceChange(preference);
}
catch (e)
{
@@ -141,11 +170,17 @@ define(["dojo/date", "dojo/date/locale",
}
};
+ UserPreferences.prototype.getPreferenceByName= function(preferenceName)
+ {
+ return this.preferences[preferenceName];
+ };
+
UserPreferences.prototype.getTimeZoneInfo = function (timeZoneName)
{
- if (!timeZoneName && this.timeZone)
+ var timeZonePreference =
this.getPreferenceByName(timeZonePreferenceName);
+ if (!timeZoneName && timeZonePreference.value &&
timeZonePreference.value.timeZone)
{
- timeZoneName = this.timeZone;
+ timeZoneName = timeZonePreference.value.timeZone;
}
if (!timeZoneName)
@@ -234,30 +269,49 @@ define(["dojo/date", "dojo/date/locale",
UserPreferences.prototype.appendTab = function (tab)
{
- if (!this.tabs)
- {
- this.tabs = [];
- }
if (!this.isTabStored(tab))
{
- this.tabs.push(tab);
- this.save({tabs: this.tabs});
+ var tabsPreference =
this.getPreferenceByName(this.tabsPreferenceName);
+ var tabs;
+ if (tabsPreference.value && tabsPreference.value.tabs)
+ {
+ tabs = tabsPreference.value.tabs;
+ }
+ else
+ {
+ tabs = [];
+ tabsPreference.value = {"tabs": tabs};
+ }
+ tabs.push({tabType: tab.tabType, configuredObjectId:
tab.configuredObjectId, preferenceId: tab.preferenceId});
+ this._savePreference(tabsPreference);
}
};
UserPreferences.prototype.removeTab = function (tab)
{
- if (this.tabs)
+ if (this.isTabStored(tab))
{
var index = this._getTabIndex(tab);
if (index != -1)
{
- this.tabs.splice(index, 1);
- this.save({tabs: this.tabs});
+ var tabsPreference =
this.getPreferenceByName(this.tabsPreferenceName);
+ tabsPreference.value.tabs.splice(index, 1);
+ this._savePreference(tabsPreference);
}
}
};
+ UserPreferences.prototype._savePreference = function (preference)
+ {
+ var preferences = {};
+ preferences[preference.type] = [preference];
+ var result = this.save(preferences);
+ if (!preference.id)
+ {
+ result.then(lang.hitch(this, this.load));
+ }
+ };
+
UserPreferences.prototype.isTabStored = function (tab)
{
return this._getTabIndex(tab) != -1;
@@ -266,12 +320,16 @@ define(["dojo/date", "dojo/date/locale",
UserPreferences.prototype._getTabIndex = function (tab)
{
var index = -1;
- if (this.tabs)
+ var tabsPreference = this.getPreferenceByName(this.tabsPreferenceName);
+ if (tabsPreference && tabsPreference.value &&
tabsPreference.value.tabs)
{
- for (var i = 0; i < this.tabs.length; i++)
+ var tabs = tabsPreference.value.tabs;
+ for (var i = 0; i < tabs.length; i++)
{
- var t = this.tabs[i];
- if (t.objectId == tab.objectId && t.objectType ==
tab.objectType)
+ var t = tabs[i];
+ if (t.configuredObjectId === tab.configuredObjectId
+ && t.tabType === tab.tabType
+ && (!tab.preferenceId && !t.preferenceId ||
tab.preferenceId === t.preferenceId ))
{
index = i;
break;
@@ -279,7 +337,72 @@ define(["dojo/date", "dojo/date/locale",
}
}
return index;
- }
+ };
+
+ UserPreferences.prototype.getSavedTabs = function ()
+ {
+ var tabsPreference = this.getPreferenceByName(this.tabsPreferenceName);
+ if (tabsPreference && tabsPreference.value &&
tabsPreference.value.tabs)
+ {
+ return lang.clone(tabsPreference.value.tabs);
+ }
+ return [];
+ };
+
+ var preferencesDialog = null, userPreferenceForm = null;
+ UserPreferences.prototype.showEditor = function ()
+ {
+ this.load().then(lang.hitch(this, function ()
+ {
+ var tzp = this.getPreferenceByName(timeZonePreferenceName);
+ var upp = this.getPreferenceByName(updatePeriodPreferenceName);
+ if (preferencesDialog)
+ {
+ userPreferenceForm.set("timezone", tzp.value ?
tzp.value.timeZone : "UTC");
+ userPreferenceForm.set("updatePeriod", upp.value ?
upp.value.updatePeriod : 5, false);
+ preferencesDialog.show();
+ }
+ else
+ {
+ require(["dojo/_base/lang",
"qpid/management/userpreference/UserPreferenceForm", "dijit/Dialog"],
+ lang.hitch(this, function (lang, UserPreferenceForm,
Dialog)
+ {
+ userPreferenceForm = new UserPreferenceForm({});
+ preferencesDialog = new Dialog({title: "User
preferences", content: userPreferenceForm});
+ userPreferenceForm.set("timezones",
this.management.timezone.getAllTimeZones());
+ userPreferenceForm.set("timezone", tzp.value ?
tzp.value.timeZone : "UTC");
+ userPreferenceForm.set("updatePeriod", upp.value ?
upp.value.updatePeriod : 5, false);
+ userPreferenceForm.on("cancel", lang.hitch(this,
function ()
+ {
+ preferencesDialog.hide();
+ }));
+ userPreferenceForm.on("save", lang.hitch(this,
function (event)
+ {
+ var timeZonePreference =
this.getPreferenceByName(timeZonePreferenceName);
+ var updatePeriodPreference =
this.getPreferenceByName(updatePeriodPreferenceName);
+ var preferences = {};
+ if (event.preferences.timeZone)
+ {
+ timeZonePreference.value = {timeZone:
event.preferences.timeZone};
+ preferences[timeZonePreference.type] =
[timeZonePreference];
+ }
+ if (event.preferences.updatePeriod)
+ {
+ updatePeriodPreference.value =
{updatePeriod: event.preferences.updatePeriod};
+ preferences[updatePeriodPreference.type] =
[updatePeriodPreference];
+ }
+
+ this.save(preferences)
+ .then(lang.hitch(this, function ()
+ {
+ preferencesDialog.hide();
+ }));
+ }));
+ preferencesDialog.show();
+ }));
+ }
+ }));
+ };
return UserPreferences;
-});
\ No newline at end of file
+});
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
Mon Jul 25 15:13:24 2016
@@ -318,9 +318,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid, function
(evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var queueName = obj.dataStore.getValue(theItem, "name");
- controller.show("queue", queueName, vhost, theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -340,9 +339,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid, function
(evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var exchangeName = obj.dataStore.getValue(theItem, "name");
- controller.show("exchange", exchangeName, vhost,
theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -421,9 +419,8 @@ define(["dojo/parser",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid, function
(evt)
{
- var idx = evt.rowIndex, theItem = this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- controller.show("virtualhostlogger", name, vhost,
theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
Mon Jul 25 15:13:24 2016
@@ -158,12 +158,12 @@ define(["dojo/parser",
{
updater.add(that.vhostNodeUpdater);
});
- }
+ };
VirtualHostNode.prototype.showVirtualHost = function (item)
{
- this.controller.show("virtualhost", item.name, this.modelObj,
item.id);
- }
+ this.controller.showById(item.id);
+ };
VirtualHostNode.prototype.close = function ()
{
@@ -173,10 +173,10 @@ define(["dojo/parser",
VirtualHostNode.prototype.destroy = function ()
{
this.close();
- this.contentPane.onClose()
+ this.contentPane.onClose();
this.controller.tabContainer.removeChild(this.contentPane);
this.contentPane.destroyRecursive();
- }
+ };
function Updater(virtualHostNode)
{
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
Mon Jul 25 15:13:24 2016
@@ -109,67 +109,78 @@ define(["dojo/dom",
controller.viewedObjects = {};
- var generateTabObjId = function(objType, name, parent)
+ var generateTabObjId = function(tabData)
{
- var parentPart = (parent ? util.generateName(parent) + "/" : "");
- var namePart = null;
- if (typeof name === 'string')
+ if (tabData.preferenceId)
{
- namePart = name;
+ return tabData.preferenceId;
}
- else if (name && typeof name === 'object' &&
name.hasOwnProperty("name"))
+ else if (tabData.configuredObjectId)
{
- namePart = name.name;
+ return tabData.configuredObjectId;
}
else
{
- namePart = "new-" + dojox.uuid.generateRandomUuid();
+ return tabData.tabType;
}
- return parentPart + objType + ":" + namePart;
};
- // TODO: find a better way how to pass business object into a tab
instead of passing it as a name
- controller.show = function (objType, nameOrObject, parent, objectId)
+ controller.showById = function(id)
{
+ var item = this.structure.findById(id);
+ if (item != null)
+ {
+ this.showTab({
+ tabType: item.type,
+ name: item.name,
+ parent: item.parent,
+ configuredObjectId: item.id
+ });
+ }
+ };
+
+ controller.showTab = function (tabData)
+ {
+ var tabType = tabData.tabType;
+ var name = tabData.name;
+ var parent = tabData.parent;
+
var that = this;
- var objId = generateTabObjId(objType, nameOrObject, parent);
+ var tabObjectId = generateTabObjId(tabData);
- var obj = this.viewedObjects[objId];
- if (obj)
+ var tabObject = this.viewedObjects[tabObjectId];
+ if (tabObject)
{
- this.tabContainer.selectChild(obj.contentPane);
+ this.tabContainer.selectChild(tabObject.contentPane);
}
else
{
- var Constructor = constructors[objType];
+ var Constructor = constructors[tabType];
if (Constructor)
{
- obj = new Constructor(nameOrObject, parent, this);
- obj.tabId = objId;
- obj.tabData = {
- objectId: objectId,
- objectType: objType
- };
- this.viewedObjects[objId] = obj;
+ tabObject = new Constructor(name, parent, this);
+ tabObject.tabId = tabObjectId;
+ tabObject.tabData = tabData;
+ this.viewedObjects[tabObjectId] = tabObject;
var contentPane = new ContentPane({
region: "center",
- title: entities.encode(obj.getTitle()),
+ title: entities.encode(tabObject.getTitle()),
closable: true,
onClose: function ()
{
- obj.close();
- delete that.viewedObjects[obj.tabId];
+ tabObject.close();
+ delete that.viewedObjects[tabObject.tabId];
return true;
}
});
this.tabContainer.addChild(contentPane);
var userPreferences = this.management.userPreferences;
- if (objType != "broker" && nameOrObject && typeof
nameOrObject === 'string')
+ if (tabType != "broker")
{
var preferencesCheckBox = new dijit.form.CheckBox({
- checked: userPreferences.isTabStored(obj.tabData),
- title: "If checked the tab is saved in user
preferences and restored on next login"
+ checked:
userPreferences.isTabStored(tabObject.tabData),
+ title: "If checked the tab will be restored on
next login"
});
var tabs = this.tabContainer.tablist.getChildren();
preferencesCheckBox.placeAt(tabs[tabs.length -
1].titleNode, "first");
@@ -177,19 +188,19 @@ define(["dojo/dom",
{
if (value)
{
- userPreferences.appendTab(obj.tabData);
+ userPreferences.appendTab(tabObject.tabData);
}
else
{
- userPreferences.removeTab(obj.tabData);
+ userPreferences.removeTab(tabObject.tabData);
}
});
}
- obj.open(contentPane);
+ tabObject.open(contentPane);
contentPane.startup();
- if (obj.startup)
+ if (tabObject.startup)
{
- obj.startup();
+ tabObject.startup();
}
this.tabContainer.selectChild(contentPane);
}
@@ -198,6 +209,56 @@ define(["dojo/dom",
};
+ var openTabs = function (controller, management, structure)
+ {
+ try
+ {
+ var brokers = structure.findByType("broker");
+ if (brokers[0])
+ {
+ controller.showById(brokers[0].id);
+ }
+
+ var tabs = management.userPreferences.getSavedTabs();
+ if (tabs)
+ {
+ for (var i in tabs)
+ {
+ var tab = tabs[i];
+ if (tab.configuredObjectId)
+ {
+ var modelObject =
structure.findById(tab.configuredObjectId);
+ if (modelObject)
+ {
+ if
(management.metadata.isCategory(tab.tabType))
+ {
+ tab.name = modelObject.name;
+ tab.parent = modelObject.parent;
+ }
+ else
+ {
+ tab.parent = modelObject;
+ }
+ controller.showTab(tab);
+ }
+ else
+ {
+ management.userPreferences.removeTab(tab);
+ }
+ }
+ else
+ {
+ controller.showTab(tab);
+ }
+ }
+ }
+ }
+ catch (e)
+ {
+ console.error(e);
+ }
+ };
+
controller.init = function (management, structure, treeView)
{
controller.management = management;
@@ -217,28 +278,20 @@ define(["dojo/dom",
initialUpdate.then(lang.hitch(this, function ()
{
updater.add({update : structureUpdate});
+
+ openTabs(controller, management, structure);
}));
};
- controller.update = function(tabObject, name, parent, objectId)
+ controller.update = function(tabObject, tabData)
{
- var objType = tabObject.tabData.objectType;
var tabId = tabObject.tabId;
delete this.viewedObjects[tabId];
- var newTabId = generateTabObjId(objType, name, parent);
+ var newTabId = generateTabObjId(tabData.tabType, tabData.name,
tabData.parent);
this.viewedObjects[newTabId] = tabObject;
- tabObject.tabData.objectId = objectId;
+ tabObject.tabData.preferenceId = tabData.preferenceId;
tabObject.tabId = newTabId;
};
- controller.showById = function(id)
- {
- var item = this.structure.findById(id);
- if (item != null)
- {
- this.show(item.type, item.name, item.parent, item.id);
- }
- };
-
return controller;
});
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
Mon Jul 25 15:13:24 2016
@@ -103,9 +103,8 @@ define(["dojo/dom",
{
connect.connect(obj.grid, "onRowDblClick", obj.grid,
function (evt)
{
- var idx = evt.rowIndex, theItem =
this.getItem(idx);
- var name = obj.dataStore.getValue(theItem, "name");
- that.controller.show("group", name,
groupProviderObj, theItem.id);
+ var theItem = this.getItem(evt.rowIndex);
+ that.controller.showById(theItem.id);
});
}, gridProperties, EnhancedGrid);
var addGroupButton = query(".addGroupButton", node)[0];
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/LogViewer.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/LogViewer.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/LogViewer.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/LogViewer.js
Mon Jul 25 15:13:24 2016
@@ -215,7 +215,7 @@ define(["dojo/_base/xhr",
};
this.grid.on("styleRow", onStyleRow);
this.grid.startup();
- userPreferences.addListener(this);
+ userPreferences.addListener(this,
userPreferences.timeZonePreferenceName);
}
catch (err)
{
@@ -226,7 +226,7 @@ define(["dojo/_base/xhr",
}
};
- LogViewer.prototype.onPreferencesChange = function (data)
+ LogViewer.prototype.onPreferenceChange = function (data)
{
var userPreferences = this.management.userPreferences;
currentTimeZone = userPreferences.getTimeZoneDescription();
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
Mon Jul 25 15:13:24 2016
@@ -24,6 +24,7 @@ define(["dojo/_base/declare",
"dojo/text!query/QueryCreateDialogForm.html",
"dojo/Evented",
"dojo/store/Memory",
+ "dojox/uuid/generateRandomUuid",
"dijit/form/Form",
"dijit/form/Button",
"dijit/form/FilteringSelect",
@@ -33,7 +34,7 @@ define(["dojo/_base/declare",
"dijit/_WidgetsInTemplateMixin",
"dojox/validate/us",
"dojox/validate/web",
- "dojo/domReady!"], function (declare, lang, template, Evented, Memory)
+ "dojo/domReady!"], function (declare, lang, template, Evented, Memory,
generateRandomUuid)
{
var getCategoryMetadata = function (management, value)
{
@@ -113,7 +114,7 @@ define(["dojo/_base/declare",
},
_postCreate: function ()
{
- this.initScope()
+ this.initScope();
this.cancelButton.on("click", lang.hitch(this,
this._onCancel));
this.okButton.on("click", lang.hitch(this,
this._onFormSubmit));
this.scope.on("change", lang.hitch(this, this._onChange));
@@ -137,7 +138,7 @@ define(["dojo/_base/declare",
if (getCategoryMetadata(this.management, category))
{
var data = {
- preference: {value: {category: category}},
+ preference: {value: {category: category}, id :
generateRandomUuid()},
parentObject:
this._scopeModelObjects[this.scope.value]
};
this.emit("create", data);
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js?rev=1754027&r1=1754026&r2=1754027&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js
Mon Jul 25 15:13:24 2016
@@ -452,11 +452,7 @@ define(["dojo/_base/declare",
},
_showModeSwitchWarningIfRequired: function ()
{
- var userPreferences = this.management.userPreferences;
- var displayWarning = (!userPreferences ||
!userPreferences.query
- ||
(userPreferences.query.displaySwitchModeWarning == undefined
- ||
userPreferences.query.displaySwitchModeWarning));
- if (this._standardMode && displayWarning &&
QueryWidget.showWarningOnModeChange)
+ if (this._standardMode &&
QueryWidget.showWarningOnModeChange)
{
if (!this._switchModeWarningDialog)
{
@@ -470,22 +466,7 @@ define(["dojo/_base/declare",
}, 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
- {
- QueryWidget.showWarningOnModeChange =
false;
- }
+ QueryWidget.showWarningOnModeChange =
!stopDisplaying;
this._modeChanged();
}));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]