You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2013/11/10 13:56:24 UTC
svn commit: r1540470 - in
/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management:
Broker.js Preferences.js UserPreferences.js VirtualHost.js controller.js
groupprovider/FileGroupManager.js treeView.js
Author: orudyy
Date: Sun Nov 10 12:56:23 2013
New Revision: 1540470
URL: http://svn.apache.org/r1540470
Log:
QPID-5325: [Java Broker] Add ability to save web management console open tabs in user preferences
Modified:
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/FileGroupManager.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/treeView.js
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js?rev=1540470&r1=1540469&r2=1540470&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js Sun Nov 10 12:56:23 2013
@@ -354,7 +354,7 @@ define(["dojo/_base/xhr",
var logViewerButton = query(".logViewer", contentPane.containerNode)[0];
registry.byNode(logViewerButton).on("click", function(evt){
- that.controller.show("logViewer", null, null);
+ that.controller.show("logViewer", "");
});
@@ -553,7 +553,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var name = obj.dataStore.getValue(theItem,"name");
- that.controller.show("virtualhost", name, brokerObj);
+ that.controller.show("virtualhost", name, brokerObj, theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -572,7 +572,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var name = obj.dataStore.getValue(theItem,"name");
- that.controller.show("port", name, brokerObj);
+ that.controller.show("port", name, brokerObj, theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -598,7 +598,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var name = obj.dataStore.getValue(theItem,"name");
- that.controller.show("authenticationprovider", name, brokerObj);
+ that.controller.show("authenticationprovider", name, brokerObj, theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -615,7 +615,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var name = obj.dataStore.getValue(theItem,"name");
- that.controller.show("keystore", name, brokerObj);
+ that.controller.show("keystore", name, brokerObj, theItem.id);
});
}, gridProperties, EnhancedGrid);
@@ -636,7 +636,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var name = obj.dataStore.getValue(theItem,"name");
- that.controller.show("truststore", name, brokerObj);
+ that.controller.show("truststore", name, brokerObj, theItem.id);
});
}, gridProperties, EnhancedGrid);
that.groupProvidersGrid =
@@ -650,7 +650,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var name = obj.dataStore.getValue(theItem,"name");
- that.controller.show("groupprovider", name, brokerObj);
+ that.controller.show("groupprovider", name, brokerObj, theItem.id);
});
}, gridProperties, EnhancedGrid);
var aclData = that.brokerData.accesscontrolproviders ? that.brokerData.accesscontrolproviders :[];
@@ -665,7 +665,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var name = obj.dataStore.getValue(theItem,"name");
- that.controller.show("accesscontrolprovider", name, brokerObj);
+ that.controller.show("accesscontrolprovider", name, brokerObj, theItem.id);
});
}, gridProperties, EnhancedGrid);
that.displayACLWarnMessage(aclData);
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js?rev=1540470&r1=1540469&r2=1540470&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js Sun Nov 10 12:56:23 2013
@@ -164,7 +164,7 @@ function (declare, xhr, event, connect,
}
that._toggleSetButtons();
},
- function(error){alert("Error:" + error);}
+ UserPreferences.defaultErrorHandler
);
}
},
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js?rev=1540470&r1=1540469&r2=1540470&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js Sun Nov 10 12:56:23 2013
@@ -31,6 +31,7 @@ define(["dojo/_base/xhr",
/* set time zone to 'UTC' by default*/
timeZone: "UTC",
+ tabs: [],
loadPreferences : function(callbackSuccessFunction, callbackErrorFunction)
{
@@ -60,12 +61,12 @@ define(["dojo/_base/xhr",
});
},
- setPreferences : function(preferences, callbackSuccessFunction, callbackErrorFunction)
+ setPreferences : function(preferences, callbackSuccessFunction, callbackErrorFunction, noSync)
{
var that = this;
xhr.post({
url: "rest/preferences",
- sync: true,
+ sync: !noSync,
handleAs: "json",
headers: { "Content-Type": "application/json"},
postData: json.stringify(preferences),
@@ -237,8 +238,68 @@ define(["dojo/_base/xhr",
result += " (" + this.getTimeZoneDescription(tzi) + ")";
}
return result;
- }
+ },
+
+ defaultErrorHandler: function(error)
+ {
+ if (error.status == 404)
+ {
+ alert("Cannot perform preferences operation: authentication provider is not configured");
+ }
+ else
+ {
+ alert("Cannot perform preferences operation:" + error);
+ }
+ },
+
+ appendTab: function(tab)
+ {
+ if (!this.tabs)
+ {
+ this.tabs = [];
+ }
+ if (!this.isTabStored(tab))
+ {
+ this.tabs.push(tab);
+ this.setPreferences({tabs: this.tabs}, null, this.defaultErrorHandler, true);
+ }
+ },
+ removeTab: function(tab)
+ {
+ if (this.tabs)
+ {
+ var index = this._getTabIndex(tab);
+ if (index != -1)
+ {
+ this.tabs.splice(index, 1);
+ this.setPreferences({tabs: this.tabs}, null, this.defaultErrorHandler, true);
+ }
+ }
+ },
+
+ isTabStored: function(tab)
+ {
+ return this._getTabIndex(tab) != -1;
+ },
+
+ _getTabIndex: function(tab)
+ {
+ var index = -1;
+ if (this.tabs)
+ {
+ for(var i = 0 ; i < this.tabs.length ; i++)
+ {
+ var t = this.tabs[i];
+ if ( t.objectId == tab.objectId && t.objectType == tab.objectType )
+ {
+ index = i;
+ break;
+ }
+ }
+ }
+ return index;
+ }
};
UserPreferences.loadPreferences(null,
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js?rev=1540470&r1=1540469&r2=1540470&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js Sun Nov 10 12:56:23 2013
@@ -184,7 +184,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var queueName = obj.dataStore.getValue(theItem,"name");
- controller.show("queue", queueName, vhost);
+ controller.show("queue", queueName, vhost, theItem.id);
});
} , gridProperties, EnhancedGrid);
@@ -201,7 +201,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var exchangeName = obj.dataStore.getValue(theItem,"name");
- controller.show("exchange", exchangeName, vhost);
+ controller.show("exchange", exchangeName, vhost, theItem.id);
});
} , gridProperties, EnhancedGrid);
@@ -229,7 +229,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var connectionName = obj.dataStore.getValue(theItem,"name");
- controller.show("connection", connectionName, vhost);
+ controller.show("connection", connectionName, vhost, theItem.id);
});
} );
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js?rev=1540470&r1=1540469&r2=1540470&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js Sun Nov 10 12:56:23 2013
@@ -21,6 +21,8 @@
define(["dojo/dom",
"dijit/registry",
"dijit/layout/ContentPane",
+ "dijit/form/CheckBox",
+ "qpid/management/UserPreferences",
"dojox/html/entities",
"qpid/management/Broker",
"qpid/management/VirtualHost",
@@ -39,7 +41,7 @@ define(["dojo/dom",
"qpid/management/PreferencesProvider",
"dojo/ready",
"dojo/domReady!"],
- function (dom, registry, ContentPane, entities, Broker, VirtualHost, Exchange, Queue, Connection, AuthProvider,
+ function (dom, registry, ContentPane, CheckBox, UserPreferences, entities, Broker, VirtualHost, Exchange, Queue, Connection, AuthProvider,
GroupProvider, Group, KeyStore, TrustStore, AccessControlProvider, Port, Plugin, LogViewer, PreferencesProvider, ready) {
var controller = {};
@@ -59,7 +61,7 @@ define(["dojo/dom",
controller.viewedObjects = {};
- controller.show = function(objType, name, parent) {
+ controller.show = function(objType, name, parent, objectId) {
function generateName(obj)
{
@@ -76,16 +78,23 @@ define(["dojo/dom",
}
return name + parent.type +":" + parent.name + "/"
}
+ return "";
}
var that = this;
var objId = generateName(parent) + objType+":"+name;
- if( this.viewedObjects[ objId ] ) {
- this.tabContainer.selectChild(this.viewedObjects[ objId ].contentPane);
+
+ var obj = this.viewedObjects[ objId ];
+ if(obj) {
+ this.tabContainer.selectChild(obj.contentPane);
} else {
var Constructor = constructors[ objType ];
if(Constructor) {
- var obj = new Constructor(name, parent, this);
+ obj = new Constructor(name, parent, this);
+ obj.tabData = {
+ objectId: objectId,
+ objectType: objType
+ };
this.viewedObjects[ objId ] = obj;
var contentPane = new ContentPane({ region: "center" ,
@@ -98,6 +107,25 @@ define(["dojo/dom",
}
});
this.tabContainer.addChild( contentPane );
+ if (objType != "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 console start-up"
+ });
+ var tabs = this.tabContainer.tablist.getChildren();
+ preferencesCheckBox.placeAt(tabs[tabs.length-1].titleNode, "first");
+ preferencesCheckBox.on("change", function(value){
+ if (value)
+ {
+ UserPreferences.appendTab(obj.tabData);
+ }
+ else
+ {
+ UserPreferences.removeTab(obj.tabData);
+ }
+ });
+ }
obj.open(contentPane);
contentPane.startup();
if(obj.startup) {
@@ -110,10 +138,6 @@ define(["dojo/dom",
};
- ready(function() {
- controller.show("broker","");
- });
-
return controller;
});
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/FileGroupManager.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/FileGroupManager.js?rev=1540470&r1=1540469&r2=1540470&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/FileGroupManager.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/FileGroupManager.js Sun Nov 10 12:56:23 2013
@@ -117,7 +117,7 @@ define(["dojo/_base/xhr",
var idx = evt.rowIndex,
theItem = this.getItem(idx);
var name = obj.dataStore.getValue(theItem,"name");
- that.controller.show("group", name, groupProviderObj);
+ that.controller.show("group", name, groupProviderObj, theItem.id);
});
}, gridProperties, EnhancedGrid);
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/treeView.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/treeView.js?rev=1540470&r1=1540469&r2=1540470&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/treeView.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/treeView.js Sun Nov 10 12:56:23 2013
@@ -25,8 +25,10 @@ define(["dojo/_base/xhr",
"qpid/common/util",
"qpid/common/updater",
"qpid/management/controller",
+ "qpid/management/UserPreferences",
+ "dojo/ready",
"dojo/domReady!"],
- function (xhr, query, ioQuery, Tree, util, updater, controller) {
+ function (xhr, query, ioQuery, Tree, util, updater, controller, UserPreferences, ready) {
function TreeViewModel(queryString) {
this.query = queryString;
@@ -259,33 +261,33 @@ define(["dojo/_base/xhr",
findItemDetails(theItem, details, "broker", this.model);
if (details.type == "broker") {
- controller.show("broker", "");
+ controller.show("broker", "", null, theItem.id);
} else if (details.type == "virtualhost") {
- controller.show("virtualhost", details.virtualhost, {type:"broker", name:""});
+ controller.show("virtualhost", details.virtualhost, {type:"broker", name:""}, theItem.id);
} else if (details.type == "exchange") {
- controller.show("exchange", details.exchange, { type: "virtualhost", name: details.virtualhost, parent: {broker: {type:"broker", name:""}}});
+ controller.show("exchange", details.exchange, { type: "virtualhost", name: details.virtualhost, parent: {type:"broker", name:""}}, theItem.id);
} else if (details.type == "queue") {
- controller.show("queue", details.queue, { type: "virtualhost", name: details.virtualhost, parent: {broker: {type:"broker", name:""}}});
+ controller.show("queue", details.queue, { type: "virtualhost", name: details.virtualhost, parent: {type:"broker", name:""}}, theItem.id);
} else if (details.type == "connection") {
- controller.show("connection", details.connection, { type: "virtualhost", name: details.virtualhost, parent: {broker: {type:"broker", name:""}}});
+ controller.show("connection", details.connection, { type: "virtualhost", name: details.virtualhost, parent: {type:"broker", name:""}}, theItem.id);
} else if (details.type == 'port') {
- controller.show("port", details.port, { type: "virtualhost", name: details.virtualhost, parent: {broker: {type:"broker", name:""}}});
+ controller.show("port", details.port, { type: "virtualhost", name: details.virtualhost, parent: {type:"broker", name:""}}, theItem.id);
} else if (details.type == 'authenticationprovider') {
- controller.show("authenticationprovider", details.authenticationprovider, {broker: {type:"broker", name:""}});
+ controller.show("authenticationprovider", details.authenticationprovider, {type:"broker", name:""}, theItem.id);
} else if (details.type == 'groupprovider') {
- controller.show("groupprovider", details.groupprovider, {broker: {type:"broker", name:""}});
+ controller.show("groupprovider", details.groupprovider, {type:"broker", name:""}, theItem.id);
} else if (details.type == 'group') {
- controller.show("group", details.group, { type: "groupprovider", name: details.groupprovider, parent: {broker: {type:"broker", name:""}}});
+ controller.show("group", details.group, { type: "groupprovider", name: details.groupprovider, parent: {type:"broker", name:""}}, theItem.id);
} else if (details.type == 'keystore') {
- controller.show("keystore", details.keystore, {broker: {type:"broker", name:""}});
+ controller.show("keystore", details.keystore, {type:"broker", name:""}, theItem.id);
} else if (details.type == 'truststore') {
- controller.show("truststore", details.truststore, {broker: {type:"broker", name:""}});
+ controller.show("truststore", details.truststore, {type:"broker", name:""}, theItem.id);
} else if (details.type == 'accesscontrolprovider') {
- controller.show("accesscontrolprovider", details.accesscontrolprovider, {broker: {type:"broker", name:""}});
+ controller.show("accesscontrolprovider", details.accesscontrolprovider, {type:"broker", name:""}, theItem.id);
} else if (details.type == 'plugin') {
- controller.show("plugin", details.plugin, {broker: {type:"broker", name:""}});
+ controller.show("plugin", details.plugin, {type:"broker", name:""}, theItem.id);
} else if (details.type == "preferencesprovider") {
- controller.show("preferencesprovider", details.preferencesprovider, { type: "authenticationprovider", name: details.authenticationprovider, parent: {broker: {type:"broker", name:""}}});
+ controller.show("preferencesprovider", details.preferencesprovider, { type: "authenticationprovider", name: details.authenticationprovider, parent: {type:"broker", name:""}}, theItem.id);
}
};
@@ -317,6 +319,38 @@ define(["dojo/_base/xhr",
}, true);
tree.startup();
updater.add( treeModel );
+
+ ready(function() {
+ controller.show("broker","");
+
+ var tabs = UserPreferences.tabs;
+ if (tabs)
+ {
+ for(var i in tabs)
+ {
+ var tab = tabs[i], modelObject;
+ if (tab.objectType != "broker")
+ {
+ if (tab.objectId)
+ {
+ modelObject = treeModel.fetchItemByIdentity(tab.objectId);
+ if (modelObject)
+ {
+ treeModel.relocate(modelObject);
+ }
+ else
+ {
+ UserPreferences.removeTab(tab);
+ }
+ }
+ else
+ {
+ controller.show(tab.objectType, "");
+ }
+ }
+ }
+ }
+ });
});
return TreeViewModel;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org