[pve-devel] r5834 - in pve-manager/pve2/www/new: . form grid panel tree

svn-commits at proxmox.com svn-commits at proxmox.com
Wed Apr 20 11:34:35 CEST 2011


Author: dietmar
Date: 2011-04-20 11:34:35 +0200 (Wed, 20 Apr 2011)
New Revision: 5834

Modified:
   pve-manager/pve2/www/new/Workspace.js
   pve-manager/pve2/www/new/form/ViewSelector.js
   pve-manager/pve2/www/new/grid/ResourceGrid.js
   pve-manager/pve2/www/new/panel/ConfigPanel.js
   pve-manager/pve2/www/new/tree/ResourceTree.js
Log:
fix filter handling


Modified: pve-manager/pve2/www/new/Workspace.js
===================================================================
--- pve-manager/pve2/www/new/Workspace.js	2011-04-20 07:20:13 UTC (rev 5833)
+++ pve-manager/pve2/www/new/Workspace.js	2011-04-20 09:34:35 UTC (rev 5834)
@@ -4,21 +4,22 @@
 	'Ext.selection.*',
 	'PVE.window.LoginWindow', 
 	'PVE.Utils', 
+	'PVE.form.ViewSelector', 
 	'PVE.data.ResourceStore',
 	'PVE.tree.ResourceTree'],
 
     // private
-    defaultView: {
+    defaultContent: {
 	title: 'Nothing selected',
 	border: false,
 	region:'center'
     },
 
-    setView: function(comp) {
+    setContent: function(comp) {
 	var self = this;
 	
 	if (!comp) 
-	    comp = self.defaultView;
+	    comp = self.defaultContent;
 
 	var cont = self.child('#content');
 	cont.removeAll(true);
@@ -73,6 +74,51 @@
 	    }
 	});
 
+	var selview = new PVE.form.ViewSelector({
+	    listeners: {
+		select: function(combo, records) { 
+		    if (records && records.length) {
+			var view = combo.getViewFilter();
+			combo.up('pveResourceTree').setViewFilter(view);
+		    }
+		}
+	    }
+	});
+
+	var rtree = Ext.createWidget('pveResourceTree', {
+	    width: 200,
+	    region: 'west',
+	    margins: '0 0 0 5',
+	    split: true,
+	    viewFilter: selview.getViewFilter(),
+	    tbar: [ ' ', selview ],
+	    selModel: new Ext.selection.TreeModel({
+		listeners: {
+		    selectionchange: function(sm, selected) {
+			var comp;
+			var tlckup = {
+			    node: 'pveNodeConfig'
+			};
+			
+			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,
+				viewFilter: selview.getViewFilter()
+			    };
+			}
+
+			self.setContent(comp);
+		    }
+		}
+	    })
+	});
+
 	Ext.apply(self, {
  	    layout: 'border',
 	    border: false,
@@ -117,7 +163,7 @@
 			    handler: function() { 
 				PVE.data.ResourceStore.stopUpdate();
 				self.showLogin(); 
-				self.setView(); 
+				self.setContent(); 
 				var rt = self.down('pveResourceTree');
 				rt.clearTree();
 			    }
@@ -135,38 +181,8 @@
 		    margins:'0 5 0 0',
 		    items: self.defaultView
 		},
+		rtree,
 		{
-		    xtype: 'pveResourceTree',
-		    width: 200,
-		    region: 'west',
-		    margins: '0 0 0 5',
-		    split: true,
-		    selModel: new Ext.selection.TreeModel({
-			listeners: {
-			    selectionchange: function(sm, selected) {
-				var comp;
-				var tlckup = {
-				    node: 'pveNodeConfig'
-				};
-
-				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);
-			    }
-			}
-		    })
-		},
-		{
 		    xtype: 'pveStatusPanel',
 		    region: 'south',
 		    margins:'0 5 5 5',

Modified: pve-manager/pve2/www/new/form/ViewSelector.js
===================================================================
--- pve-manager/pve2/www/new/form/ViewSelector.js	2011-04-20 07:20:13 UTC (rev 5833)
+++ pve-manager/pve2/www/new/form/ViewSelector.js	2011-04-20 09:34:35 UTC (rev 5834)
@@ -51,7 +51,7 @@
 	    valueField: 'key',
 	    displayField: 'value',
 
-	    getViewSettings: function() {
+	    getViewFilter: function() {
 		var view = self.getValue();
 		return Ext.apply({ id: view }, default_views[view] || default_views.server);
 	    },

Modified: pve-manager/pve2/www/new/grid/ResourceGrid.js
===================================================================
--- pve-manager/pve2/www/new/grid/ResourceGrid.js	2011-04-20 07:20:13 UTC (rev 5833)
+++ pve-manager/pve2/www/new/grid/ResourceGrid.js	2011-04-20 09:34:35 UTC (rev 5834)
@@ -57,11 +57,11 @@
 	    return match;
 	};
 
-	var updateGrid = function(removeAll) {
+	var updateGrid = function() {
 
-	    var filterfn = null;
+	    var filterfn = me.viewFilter ? me.viewFilter.filterfn : null;
 	    
-	    //console.log("START GRID UPDATE " + removeAll);
+	    //console.log("START GRID UPDATE " +  me.viewFilter);
 
 	    store.suspendEvents();
 
@@ -73,7 +73,8 @@
 
 		var orgnode = rstore.data.get(cn.data.id);
 		if (orgnode) {
-		    if (!textfilter || textfilter_match(cn))
+		    if ((!filterfn || filterfn(cn)) &&
+			(!textfilter || textfilter_match(cn)))
 			nodeidx[cn.data.id] = orgnode;
 		}
 	    
@@ -147,11 +148,11 @@
 	var filter_task = new Ext.util.DelayedTask(function(){
 	    console.log("run filter " + textfilter);
 	    //store.filterBy(textfilter_match, store);
-	    updateGrid(true);
+	    updateGrid();
 	});
 
 
-	var load_cb = function() { updateGrid(false); };
+	var load_cb = function() { updateGrid(); };
 
 	Ext.apply(me, {
 	    title: 'Search',

Modified: pve-manager/pve2/www/new/panel/ConfigPanel.js
===================================================================
--- pve-manager/pve2/www/new/panel/ConfigPanel.js	2011-04-20 07:20:13 UTC (rev 5833)
+++ pve-manager/pve2/www/new/panel/ConfigPanel.js	2011-04-20 09:34:35 UTC (rev 5834)
@@ -17,12 +17,18 @@
 
 	Ext.applyIf(me, {
 	    title: me.pveSelNode.data.text,
-	    showSearch: true
+	    showSearch: true,
+	    defaults: {} 
 	});
 
+	// pass pveSelNode && viewFilter to all children
+	Ext.apply(me.defaults, {
+	    pveSelNode: me.pveSelNode,
+	    viewFilter: me.viewFilter
+	});
+
 	if (me.showSearch) {
 	    items.unshift({
-		pveSelNode: me.pveSelNode,
 		id: 'search',
 		itemId: 'search', 
 		border: false,

Modified: pve-manager/pve2/www/new/tree/ResourceTree.js
===================================================================
--- pve-manager/pve2/www/new/tree/ResourceTree.js	2011-04-20 07:20:13 UTC (rev 5833)
+++ pve-manager/pve2/www/new/tree/ResourceTree.js	2011-04-20 09:34:35 UTC (rev 5834)
@@ -3,7 +3,6 @@
     requires: ['Ext.tree.*', 
 	       'Ext.state.Manager',
 	       'PVE.Utils', 
-	       'PVE.form.ViewSelector', 
 	       'PVE.data.ResourceStore'],
     alias: ['widget.pveResourceTree'],
 
@@ -157,8 +156,10 @@
 	var rstore = PVE.data.ResourceStore;
 	var sp = Ext.state.Manager.getProvider();
 
+	if (!self.viewFilter)
+	    self.viewFilter = {};
+
 	var pdata = {
-	    view: {},
 	    dataIndex: {},
 	    updateCount: 0
 	};
@@ -182,8 +183,8 @@
 
 	    var index = pdata.dataIndex;
 
-	    var groups = pdata.view.groups;
-	    var filterfn = pdata.view.filterfn;
+	    var groups = self.viewFilter.groups || [];
+	    var filterfn = self.viewFilter.filterfn;
 
 	    // remove vanished or changed items
 	    for (var key in index) {
@@ -250,19 +251,6 @@
 	    pdata.updateCount++;
 	};
 
-	var selview = new PVE.form.ViewSelector({
-	    listeners: {
-		select: function(combo, records) { 
-		    if (records && records.length) {
-			var view = combo.getViewSettings();
-			self.setView(view);
-		    }
-		}
-	    }
-	});
-
-	pdata.view = selview.getViewSettings();
-
 	var statechange = function(sp, key, value) {
 	    if (key === stateid) {
 		self.applyState(value);
@@ -276,17 +264,13 @@
 	    //useArrows: true,
             //rootVisible: false,
             title: 'Resource Tree',
-	    tbar: [ ' ', selview ],
 	    listeners: {
 		destroy: function() {
 		    rstore.un("load", updateTree)
 		}
 	    },
-	    getViewID: function() {
-		return pdata.view.id;
-	    },
-	    setView: function(view) {
-		pdata.view = view;
+	    setViewFilter: function(view) {
+		self.viewFilter = view;
 		self.clearTree();
 		updateTree();
 	    },



More information about the pve-devel mailing list