[pve-devel] r5830 - in pve-manager/pve2/www/new: . panel tree
svn-commits at proxmox.com
svn-commits at proxmox.com
Wed Apr 20 08:26:53 CEST 2011
Author: dietmar
Date: 2011-04-20 08:26:52 +0200 (Wed, 20 Apr 2011)
New Revision: 5830
Modified:
pve-manager/pve2/www/new/StateProvider.js
pve-manager/pve2/www/new/Workspace.js
pve-manager/pve2/www/new/panel/NodeConfig.js
pve-manager/pve2/www/new/panel/StatusPanel.js
pve-manager/pve2/www/new/tree/ResourceTree.js
Log:
fix history handling
Modified: pve-manager/pve2/www/new/StateProvider.js
===================================================================
--- pve-manager/pve2/www/new/StateProvider.js 2011-04-20 04:47:30 UTC (rev 5829)
+++ pve-manager/pve2/www/new/StateProvider.js 2011-04-20 06:26:52 UTC (rev 5830)
@@ -15,6 +15,24 @@
Ext.define('PVE.StateProvider', {
extend: 'Ext.state.Provider',
+ // private
+ setHV: function(name, newvalue, fireEvents) {
+ var self = this;
+
+ var changes = false;
+ var oldtext = Ext.encode(self.UIState[name]);
+ var newtext = Ext.encode(newvalue);
+ if (newtext != oldtext) {
+ changes = true;
+ self.UIState[name] = newvalue;
+ //console.log("changed old " + name + " " + oldtext);
+ //console.log("changed new " + name + " " + newtext);
+ if (fireEvents)
+ self.fireEvent("statechange", self, name, { value: newvalue });
+ }
+ return changes;
+ },
+
constructor: function(config){
var self = this;
@@ -33,11 +51,13 @@
var defaults = {
view: 'server',
ltab: 'clog',
- ctab: 'search'
+ ctab: 'search',
+ rid: ''
};
Ext.Array.each(list, function(name) {
- self.UIState[name] = defaults[name] || null;
+ self.UIState[name] = Ext.isDefined(defaults[name]) ?
+ defaults[name] : null;
});
var history_change_cb = function(token) {
@@ -45,6 +65,7 @@
if (!token) {
PVE.StopPageUnload = true;
Ext.History.back();
+ Ext.History.forward();
return;
}
PVE.StopPageUnload = false;
@@ -52,17 +73,7 @@
Ext.Array.each(list, function(name) {
if (typeof newstate[name] == "undefined")
return;
-
- var oldvalue = { value: self.UIState[name] };
- var newvalue = { value: newstate[name] };
- var newtext = Ext.encode(newvalue);
- var oldtext = Ext.encode(oldvalue);
- if (newtext != oldtext) {
- self.UIState[name] = newstate[name];
- //console.log("changed old " + name + " " + oldtext);
- //console.log("changed new " + name + " " + newtext);
- self.fireEvent("statechange", self, name, newvalue);
- }
+ self.setHV(name, newstate[name], true);
});
};
@@ -88,7 +99,7 @@
}
}
- // console.log("GET " + name + " " + Ext.encode(data));
+ //console.log("GET " + name + " " + Ext.encode(data));
return data;
},
@@ -110,12 +121,11 @@
//console.log("SET " + name + " " + Ext.encode(value));
if (typeof self.UIState[name] != "undefined") {
- if (name !== 'rid' && !self.UIState.rid)
- return;
- var cstate = Ext.clone(self.UIState);
- cstate[name] = value ? value.value : null;
- var htext = Ext.urlEncode(cstate);
- Ext.History.add(htext);
+ var newvalue = value ? value.value : null;
+ if (self.setHV(name, newvalue, false)) {
+ var htext = Ext.urlEncode(self.UIState);
+ Ext.History.add(htext);
+ }
} else {
window.localStorage.setItem(name, Ext.encode(value));
self.fireEvent("statechange", self, name, value);
Modified: pve-manager/pve2/www/new/Workspace.js
===================================================================
--- pve-manager/pve2/www/new/Workspace.js 2011-04-20 04:47:30 UTC (rev 5829)
+++ pve-manager/pve2/www/new/Workspace.js 2011-04-20 06:26:52 UTC (rev 5830)
@@ -143,21 +143,24 @@
split: true,
selModel: new Ext.selection.TreeModel({
listeners: {
- select: function(sm, n) {
+ selectionchange: function(sm, selected) {
+ var comp;
var tlckup = {
node: 'pveNodeConfig'
};
- var comp = {
- xtype: tlckup[n.data.type] || 'pveConfigPanel',
- layout: 'fit',
- border: false,
- showSearch: (n.data.id === 'root') ||
- Ext.isDefined(n.data.groupbyid),
- pveSelNode: n
- };
+ if (selected.length > 0) {
+ var n = selected[0];
+ comp = {
+ xtype: tlckup[n.data.type] || 'pveConfigPanel',
+ layout: 'fit',
+ border: false,
+ showSearch: (n.data.id === 'root') ||
+ Ext.isDefined(n.data.groupbyid),
+ pveSelNode: n
+ };
+ }
-
self.setView(comp);
}
}
Modified: pve-manager/pve2/www/new/panel/NodeConfig.js
===================================================================
--- pve-manager/pve2/www/new/panel/NodeConfig.js 2011-04-20 04:47:30 UTC (rev 5829)
+++ pve-manager/pve2/www/new/panel/NodeConfig.js 2011-04-20 06:26:52 UTC (rev 5830)
@@ -11,6 +11,7 @@
Ext.apply(me, {
title: "Node '" + nodename + "'",
+
items: [
{
title: 'Summary',
Modified: pve-manager/pve2/www/new/panel/StatusPanel.js
===================================================================
--- pve-manager/pve2/www/new/panel/StatusPanel.js 2011-04-20 04:47:30 UTC (rev 5829)
+++ pve-manager/pve2/www/new/panel/StatusPanel.js 2011-04-20 06:26:52 UTC (rev 5830)
@@ -12,6 +12,11 @@
var stateid = 'ltab';
var sp = Ext.state.Manager.getProvider();
+ var state = sp.get(stateid);
+ if (state && state.value) {
+ me.activeTab = state.value;
+ }
+
Ext.apply(me, {
listeners: {
tabchange: function() {
@@ -32,11 +37,6 @@
]
});
- var state = sp.get(stateid);
- if (state && state.value) {
- me.activeTab = state.value;
- }
-
me.callParent();
var statechange = function(sp, key, state) {
Modified: pve-manager/pve2/www/new/tree/ResourceTree.js
===================================================================
--- pve-manager/pve2/www/new/tree/ResourceTree.js 2011-04-20 04:47:30 UTC (rev 5829)
+++ pve-manager/pve2/www/new/tree/ResourceTree.js 2011-04-20 06:26:52 UTC (rev 5830)
@@ -299,6 +299,7 @@
self.getSelectionModel().deselectAll();
},
applyState : function(state) {
+ var sm = self.getSelectionModel();
if (state && state.value) {
var rootnode = self.store.getRootNode();
var node;
@@ -308,7 +309,6 @@
node = rootnode.findChild('id', state.value, true);
if (node) {
- var sm = self.getSelectionModel();
if (!sm.isSelected(node)) {
sm.select(node);
var cn = node;
@@ -318,6 +318,8 @@
}
}
}
+ } else {
+ sm.deselectAll();
}
}
});
More information about the pve-devel
mailing list