[pve-devel] r5810 - pve-manager/pve2/www/new/grid
svn-commits at proxmox.com
svn-commits at proxmox.com
Tue Apr 12 13:36:00 CEST 2011
Author: dietmar
Date: 2011-04-12 13:36:00 +0200 (Tue, 12 Apr 2011)
New Revision: 5810
Modified:
pve-manager/pve2/www/new/grid/ResourceGrid.js
Log:
use chunking feature
Modified: pve-manager/pve2/www/new/grid/ResourceGrid.js
===================================================================
--- pve-manager/pve2/www/new/grid/ResourceGrid.js 2011-04-12 09:12:53 UTC (rev 5809)
+++ pve-manager/pve2/www/new/grid/ResourceGrid.js 2011-04-12 11:36:00 UTC (rev 5810)
@@ -1,3 +1,18 @@
+// fixme: remove this fix
+// this hack is required for ExtJS beta2
+Ext.override(Ext.grid.feature.Chunking, {
+ attachEvents: function() {
+ console.log("TESTCF");
+ var grid = this.view.up('gridpanel'),
+ scroller = grid.down('gridscroller[dock=right]');
+ if (scroller === null ) {
+ grid.on("afterlayout", this.attachEvents, this, { single : true });
+ return false;
+ }
+ scroller.el.on('scroll', this.onBodyScroll, this, {buffer: 300});
+ }
+});
+
Ext.define('PVE.grid.ResourceGrid', {
extend: 'Ext.grid.GridPanel',
requires: [
@@ -2,11 +17,11 @@
'Ext.grid.*',
+ 'Ext.grid.feature.Chunking',
'Ext.data.*',
- 'Ext.data.BufferStore',
+ 'Ext.data.Store',
'Ext.util.*',
- 'Ext.grid.PagingScroller',
'PVE.Utils',
'PVE.data.ResourceStore'
],
alias: ['widget.pveResourceGrid'],
-
+ features: [ {ftype: 'chunking'}],
@@ -19,10 +34,8 @@
var coldef = rstore.defaultColums();
- var store = Ext.create('Ext.data.BufferStore', {
- pageSize: 50,
- purgePageCount: 0,
- model: 'PVEResources',
+ var store = Ext.create('Ext.data.Store', {
+ model: 'PVEResources',
proxy: { type: 'memory' }
});
@@ -63,11 +76,11 @@
for (; i < len; i++) {
n = cs[i];
- //if (textfilter && !textfilter_match(n))
- //continue;
+ if (textfilter && !textfilter_match(n))
+ continue;
var orgnode = rstore.data.get(n.data.id);
- if (orgnode)
+ if (orgnode)
nodeidx[n.data.id] = rstore.data.get(n.data.id);
gather_child_nodes(n);
}
@@ -86,7 +99,7 @@
if (rmlist.length)
store.remove(rmlist);
-
+
// add new items
var addlist = [];
for (var key in nodeidx) {
@@ -122,13 +135,11 @@
}
};
- if (addlist.length) {
- store.cacheRecords(addlist);
- store.guaranteeRange(0, 50);
- }
-
store.sort();
+ if (addlist.length)
+ store.add(addlist);
+
store.resumeEvents();
store.fireEvent('datachanged', store);
@@ -144,9 +155,11 @@
var filter_task = new Ext.util.DelayedTask(function(){
console.log("run filter " + textfilter);
+ //store.filterBy(textfilter_match, store);
updateGrid(true);
});
+
var load_cb = function() { updateGrid(false); };
Ext.apply(me, {
@@ -173,15 +186,10 @@
}
],
viewConfig: {
- invalidateScrollerOnRefresh: false,
stripeRows: true,
trackOver: false
},
- verticalScroller: {
- xtype: 'paginggridscroller',
- activePrefetch: false
- },
- listeners: {
+ listeners: {
destroy: function() {
rstore.un("load", load_cb)
}
More information about the pve-devel
mailing list