[pve-devel] r5787 - in pve-manager/pve2/www/new: . tree

svn-commits at proxmox.com svn-commits at proxmox.com
Tue Apr 5 13:19:58 CEST 2011


Author: dietmar
Date: 2011-04-05 13:19:58 +0200 (Tue, 05 Apr 2011)
New Revision: 5787

Added:
   pve-manager/pve2/www/new/tree/ResourceTree.js
Removed:
   pve-manager/pve2/www/new/ResourceTree.js
Modified:
   pve-manager/pve2/www/new/Makefile.am
Log:


Modified: pve-manager/pve2/www/new/Makefile.am
===================================================================
--- pve-manager/pve2/www/new/Makefile.am	2011-04-05 11:19:34 UTC (rev 5786)
+++ pve-manager/pve2/www/new/Makefile.am	2011-04-05 11:19:58 UTC (rev 5787)
@@ -9,7 +9,7 @@
 	form/RealmComboBox.js				\
 	form/ViewSelector.js				\
 	window/LoginWindow.js				\
-	ResourceTree.js					\
+	tree/ResourceTree.js				\
 	Workspace.js
 
 pvemanagerlib.js: ${JSSRC}

Deleted: pve-manager/pve2/www/new/ResourceTree.js
===================================================================
--- pve-manager/pve2/www/new/ResourceTree.js	2011-04-05 11:19:34 UTC (rev 5786)
+++ pve-manager/pve2/www/new/ResourceTree.js	2011-04-05 11:19:58 UTC (rev 5787)
@@ -1,296 +0,0 @@
-Ext.define('PVE.tree.ResourceTree', {
-    extend: 'Ext.tree.TreePanel',
-    requires: ['Ext.tree.*', 'PVE.Utils', 
-	       'PVE.form.ViewSelector', 
-	       'PVE.data.ResourceStore'],
-    alias: ['widget.pveResourceTree'],
-
-    statics: {
-	typeDefaults: {
-	    node: { 
-		iconCls: 'x-tree-node-server',
-		text: 'Node list'
-	    },
-	    storage: {
-		iconCls: 'x-tree-node-harddisk',
-		text: 'Storage list'
-	    },
-	    qemu: {
-		iconCls: 'x-tree-node-computer',
-		text: 'Virtual machines'
-	    },
-	    openvz: {
-		iconCls: 'x-tree-node-computer',
-		text: 'OpenVZ containers'
-	    } 
-	}
-    },
-
-    // private
-    nodeSortFn: function(node1, node2) {
-	var n1 = node1.data;
-	var n2 = node2.data;
-
-	if ((n1.groupbyid && n2.groupbyid) ||
-	    !(n1.groupbyid || n2.groupbyid)) {
-
-	    var tcmp;
-
-	    var v1 = n1.type;
-	    var v2 = n2.type;
-
-	    if ((tcmp = v1 > v2 ? 1 : (v1 < v2 ? -1 : 0)) != 0)
-		return tcmp;
-
-	    // numeric compare for VM IDs
-	    if (v1 === 'qemu' || v1 === 'openvz') {
-		v1 = n1.vmid;
-		v2 = n2.vmid;
-		if ((tcmp = v1 > v2 ? 1 : (v1 < v2 ? -1 : 0)) != 0)
-		    return tcmp;
-	    }
-
-	    return n1.text > n2.text ? 1 : (n1.text < n2.text ? -1 : 0);
-	} else if (n1.groupbyid) {
-	    return -1;
-	} else if (n2.groupbyid) {
-	    return 1;
-	}
-    },
-
-    // private: fast binary search
-    findInsertIndex: function(node, child, start, end) {
-	var self = this;
-
-	var diff = end - start;
-
-	var mid = start + (diff>>1);
-
-	if (diff <= 0)
-	    return start;
-
-	var res = self.nodeSortFn(child, node.childNodes[mid]);
-	if (res <= 0)
-	    return self.findInsertIndex(node, child, start, mid);
-	else
-	    return self.findInsertIndex(node, child, mid + 1, end);
-    },
-
-    // private
-    addChildSorted: function(node, info) {
-	var self = this;
-
-	var statics = self.statics();
-	var defaults = statics.typeDefaults[info.type];
-	if (defaults && defaults.iconCls)
-	    info.iconCls = defaults.iconCls;
-
-	if (info.type === 'node') {
-	    info.text = info.node;
-	} else if (info.type === 'storage') {
-	    info.text = info.storage + ' (' + info.node + ')';
-	} else  if (info.type === 'qemu' || info.type === 'openvz') {
-	    info.text = info.vmid;
-	    if (info.name)
-		info.text += " (" + info.name + ')';
-	} else if (info.type === 'type') {
-	    defaults = statics.typeDefaults[info.groupbyid];
-	    if (defaults && defaults.text)
-		info.text = defaults.text;
-	    else 
-		info.text = info.groupbyid;	    
-	} else {
-	    info.text = info.id;
-	}
-
-	var child = Ext.ModelMgr.create(info, 'PVETree', info.id);
-
-        var cs = node.childNodes;
-	var pos;
-	if (cs) {
-            var len = cs.length;
-            index = self.findInsertIndex(node, child, 0, len);
-	    pos = cs[index];
-	}
-
-	//var expanded = node.isExpanded();
-	//if (expanded)
-	//node.collapse();		    
-	node.insertBefore(child, pos);
-	//if (expanded)
-	//node.expand();
-
-	return child;
-    },
-
-    // private
-    groupChild: function(node, info, groups, level) {
-	var self = this;
-
-	var groupby = groups[level];
-	var v = info[groupby];
-
-	if (v) {
-            var group = node.findChild('groupbyid', v);
-	    if (!group) {
-		var groupinfo;
-		if (info.type === groupby) {
-		    groupinfo = info;
-		} else {
-		    groupinfo = {
-			type: groupby,
-			id : groupby + "/" + v
-		    };
-		    if (groupby !== 'type')
-			groupinfo[groupby] = v;
-		}
-		groupinfo.leaf = false;
-		groupinfo.groupbyid = v; 
-		group = self.addChildSorted(node, groupinfo);
-		// fixme: remove when EXTJS has fixed those bugs?!
-		group.expand(); group.collapse();
-	    }
-	    if (info.type === groupby)
-		return group;
-	    if (group)
-		return self.groupChild(group, info, groups, level + 1);
-	}
-
-	return self.addChildSorted(node, info);
-    },
-
-    initComponent : function() {
-	var self = this;
-
-	var rstore = PVE.data.ResourceStore;
-
-	var pdata = {
-	    view: {},
-	    dataIndex: {},
-	    updateCount: 0
-	};
-
-	var store = Ext.create('Ext.data.TreeStore', {
-	    model: 'PVETree',
-	    root: {
-		expanded: true,
-		id: 'root',
-		text: "Datacenter"
-	    }
-	});
-
-	var updateTree = function() {
-
-	    var rootnode = self.store.node;
-
-	    var index = pdata.dataIndex;
-
-	    var groups = [].concat(pdata.view.groups);
-
-	    // remove vanished or changed items
-	    for (var key in index) {
-		if (!index.hasOwnProperty(key))
-		    continue;
-
-		var olditem = index[key];
-
-		// getById() use find(), which is slow (ExtJS4 DP5) 
-		//var item = rstore.getById(olditem.data.id);
-		var item = rstore.data.get(olditem.data.id);
-
-		var changed = false;
-		if (item) {
-		    // test if any grouping attributes changed
-		    for (var i = 0, len = groups.length; i < len; i++) {
-			var attr = groups[i];
-			if (item.data[attr] != olditem.data[attr]) {
-			    console.log("changed " + attr);
-			    changed = true;
-			    break;
-			}
-		    }
-		    // fixme: also test filterfn()?
-		}
-
-		if (!item || changed) {
-		    console.log("REM UID: " + key + " ITEM " + olditem.data.id);
-		    delete index[key];
-		    var parentNode = olditem.parentNode;
-		    //var expanded = parentNode.isExpanded();
-		    //if (expanded)
-		    //parentNode.collapse();		    
-		    parentNode.removeChild(olditem, true);
-		    //if (expanded) 
-		    //parentNode.expand();
-		}
-	    }
-
- 	    // add new items
-            rstore.each(function(item) {
-		var olditem = index[item.data.id];
-		if (olditem)
-		    return;
-
-		console.log("ADD UID: " + item.data.id);
-
-		var info = Ext.apply({ leaf: true }, item.data);
-		var child = self.groupChild(rootnode, info, groups, 0);
-		if (child)
-		    index[item.data.id] = child;
-	    });
-
-	    if (!pdata.updateCount) {
-		rootnode.collapse();
-		rootnode.expand();
-	    }
-
-	    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();
-
-	Ext.apply(self, {
-	    store: store,
-	    //useArrows: true,
-            //rootVisible: false,
-            title: 'Resource Tree',
-	    tbar: [ ' ', selview ],
-	    listeners: {
-		destroy: function() {
-		    rstore.un("load", updateTree)
-		}
-	    },
-
-	    setView: function(view) {
-		var self = this;
-	
-		pdata.view = view;
-
-		var rootnode = self.store.node;
-		rootnode.collapse();
-		rootnode.removeAll(true);
-		pdata.dataIndex = {};
-		updateTree();
-		rootnode.expand();
-	    }
-	});
-
-	self.callParent();
-
-	rstore.on("load", updateTree);
-	rstore.startUpdate();
-	//rstore.stopUpdate();
-    }
-
-});

Copied: pve-manager/pve2/www/new/tree/ResourceTree.js (from rev 5785, pve-manager/pve2/www/new/ResourceTree.js)
===================================================================
--- pve-manager/pve2/www/new/tree/ResourceTree.js	                        (rev 0)
+++ pve-manager/pve2/www/new/tree/ResourceTree.js	2011-04-05 11:19:58 UTC (rev 5787)
@@ -0,0 +1,296 @@
+Ext.define('PVE.tree.ResourceTree', {
+    extend: 'Ext.tree.TreePanel',
+    requires: ['Ext.tree.*', 'PVE.Utils', 
+	       'PVE.form.ViewSelector', 
+	       'PVE.data.ResourceStore'],
+    alias: ['widget.pveResourceTree'],
+
+    statics: {
+	typeDefaults: {
+	    node: { 
+		iconCls: 'x-tree-node-server',
+		text: 'Node list'
+	    },
+	    storage: {
+		iconCls: 'x-tree-node-harddisk',
+		text: 'Storage list'
+	    },
+	    qemu: {
+		iconCls: 'x-tree-node-computer',
+		text: 'Virtual machines'
+	    },
+	    openvz: {
+		iconCls: 'x-tree-node-computer',
+		text: 'OpenVZ containers'
+	    } 
+	}
+    },
+
+    // private
+    nodeSortFn: function(node1, node2) {
+	var n1 = node1.data;
+	var n2 = node2.data;
+
+	if ((n1.groupbyid && n2.groupbyid) ||
+	    !(n1.groupbyid || n2.groupbyid)) {
+
+	    var tcmp;
+
+	    var v1 = n1.type;
+	    var v2 = n2.type;
+
+	    if ((tcmp = v1 > v2 ? 1 : (v1 < v2 ? -1 : 0)) != 0)
+		return tcmp;
+
+	    // numeric compare for VM IDs
+	    if (v1 === 'qemu' || v1 === 'openvz') {
+		v1 = n1.vmid;
+		v2 = n2.vmid;
+		if ((tcmp = v1 > v2 ? 1 : (v1 < v2 ? -1 : 0)) != 0)
+		    return tcmp;
+	    }
+
+	    return n1.text > n2.text ? 1 : (n1.text < n2.text ? -1 : 0);
+	} else if (n1.groupbyid) {
+	    return -1;
+	} else if (n2.groupbyid) {
+	    return 1;
+	}
+    },
+
+    // private: fast binary search
+    findInsertIndex: function(node, child, start, end) {
+	var self = this;
+
+	var diff = end - start;
+
+	var mid = start + (diff>>1);
+
+	if (diff <= 0)
+	    return start;
+
+	var res = self.nodeSortFn(child, node.childNodes[mid]);
+	if (res <= 0)
+	    return self.findInsertIndex(node, child, start, mid);
+	else
+	    return self.findInsertIndex(node, child, mid + 1, end);
+    },
+
+    // private
+    addChildSorted: function(node, info) {
+	var self = this;
+
+	var statics = self.statics();
+	var defaults = statics.typeDefaults[info.type];
+	if (defaults && defaults.iconCls)
+	    info.iconCls = defaults.iconCls;
+
+	if (info.type === 'node') {
+	    info.text = info.node;
+	} else if (info.type === 'storage') {
+	    info.text = info.storage + ' (' + info.node + ')';
+	} else  if (info.type === 'qemu' || info.type === 'openvz') {
+	    info.text = info.vmid;
+	    if (info.name)
+		info.text += " (" + info.name + ')';
+	} else if (info.type === 'type') {
+	    defaults = statics.typeDefaults[info.groupbyid];
+	    if (defaults && defaults.text)
+		info.text = defaults.text;
+	    else 
+		info.text = info.groupbyid;	    
+	} else {
+	    info.text = info.id;
+	}
+
+	var child = Ext.ModelMgr.create(info, 'PVETree', info.id);
+
+        var cs = node.childNodes;
+	var pos;
+	if (cs) {
+            var len = cs.length;
+            index = self.findInsertIndex(node, child, 0, len);
+	    pos = cs[index];
+	}
+
+	//var expanded = node.isExpanded();
+	//if (expanded)
+	//node.collapse();		    
+	node.insertBefore(child, pos);
+	//if (expanded)
+	//node.expand();
+
+	return child;
+    },
+
+    // private
+    groupChild: function(node, info, groups, level) {
+	var self = this;
+
+	var groupby = groups[level];
+	var v = info[groupby];
+
+	if (v) {
+            var group = node.findChild('groupbyid', v);
+	    if (!group) {
+		var groupinfo;
+		if (info.type === groupby) {
+		    groupinfo = info;
+		} else {
+		    groupinfo = {
+			type: groupby,
+			id : groupby + "/" + v
+		    };
+		    if (groupby !== 'type')
+			groupinfo[groupby] = v;
+		}
+		groupinfo.leaf = false;
+		groupinfo.groupbyid = v; 
+		group = self.addChildSorted(node, groupinfo);
+		// fixme: remove when EXTJS has fixed those bugs?!
+		group.expand(); group.collapse();
+	    }
+	    if (info.type === groupby)
+		return group;
+	    if (group)
+		return self.groupChild(group, info, groups, level + 1);
+	}
+
+	return self.addChildSorted(node, info);
+    },
+
+    initComponent : function() {
+	var self = this;
+
+	var rstore = PVE.data.ResourceStore;
+
+	var pdata = {
+	    view: {},
+	    dataIndex: {},
+	    updateCount: 0
+	};
+
+	var store = Ext.create('Ext.data.TreeStore', {
+	    model: 'PVETree',
+	    root: {
+		expanded: true,
+		id: 'root',
+		text: "Datacenter"
+	    }
+	});
+
+	var updateTree = function() {
+
+	    var rootnode = self.store.node;
+
+	    var index = pdata.dataIndex;
+
+	    var groups = [].concat(pdata.view.groups);
+
+	    // remove vanished or changed items
+	    for (var key in index) {
+		if (!index.hasOwnProperty(key))
+		    continue;
+
+		var olditem = index[key];
+
+		// getById() use find(), which is slow (ExtJS4 DP5) 
+		//var item = rstore.getById(olditem.data.id);
+		var item = rstore.data.get(olditem.data.id);
+
+		var changed = false;
+		if (item) {
+		    // test if any grouping attributes changed
+		    for (var i = 0, len = groups.length; i < len; i++) {
+			var attr = groups[i];
+			if (item.data[attr] != olditem.data[attr]) {
+			    console.log("changed " + attr);
+			    changed = true;
+			    break;
+			}
+		    }
+		    // fixme: also test filterfn()?
+		}
+
+		if (!item || changed) {
+		    console.log("REM UID: " + key + " ITEM " + olditem.data.id);
+		    delete index[key];
+		    var parentNode = olditem.parentNode;
+		    //var expanded = parentNode.isExpanded();
+		    //if (expanded)
+		    //parentNode.collapse();		    
+		    parentNode.removeChild(olditem, true);
+		    //if (expanded) 
+		    //parentNode.expand();
+		}
+	    }
+
+ 	    // add new items
+            rstore.each(function(item) {
+		var olditem = index[item.data.id];
+		if (olditem)
+		    return;
+
+		console.log("ADD UID: " + item.data.id);
+
+		var info = Ext.apply({ leaf: true }, item.data);
+		var child = self.groupChild(rootnode, info, groups, 0);
+		if (child)
+		    index[item.data.id] = child;
+	    });
+
+	    if (!pdata.updateCount) {
+		rootnode.collapse();
+		rootnode.expand();
+	    }
+
+	    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();
+
+	Ext.apply(self, {
+	    store: store,
+	    //useArrows: true,
+            //rootVisible: false,
+            title: 'Resource Tree',
+	    tbar: [ ' ', selview ],
+	    listeners: {
+		destroy: function() {
+		    rstore.un("load", updateTree)
+		}
+	    },
+
+	    setView: function(view) {
+		var self = this;
+	
+		pdata.view = view;
+
+		var rootnode = self.store.node;
+		rootnode.collapse();
+		rootnode.removeAll(true);
+		pdata.dataIndex = {};
+		updateTree();
+		rootnode.expand();
+	    }
+	});
+
+	self.callParent();
+
+	rstore.on("load", updateTree);
+	rstore.startUpdate();
+	//rstore.stopUpdate();
+    }
+
+});



More information about the pve-devel mailing list