]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - data/UpdateStore.js
1 /* Extends the Ext.data.Store type
2 * with startUpdate() and stopUpdate() methods
3 * to refresh the store data in the background
4 * Components using this store directly will flicker
5 * due to the redisplay of the element ater 'config.interval' ms
7 * Note that you have to call yourself startUpdate() for the background load
10 Ext
.define('Proxmox.data.UpdateStore', {
11 extend
: 'Ext.data.Store',
12 alias
: 'store.update',
24 constructor: function(config
) {
27 config
= config
|| {};
29 if (!config
.interval
) {
30 config
.interval
= 3000;
33 if (!config
.storeid
) {
34 throw "no storeid specified";
37 var load_task
= new Ext
.util
.DelayedTask();
39 var run_load_task = function() {
44 if (Proxmox
.Utils
.authOK()) {
45 var start
= new Date();
47 var runtime
= (new Date()) - start
;
48 var interval
= config
.interval
+ runtime
*2;
49 load_task
.delay(interval
, run_load_task
);
52 load_task
.delay(200, run_load_task
);
57 startUpdate: function() {
59 // run_load_task(); this makes problems with chrome
60 load_task
.delay(1, run_load_task
);
62 stopUpdate: function() {
68 me
.callParent([config
]);
70 me
.load_task
= load_task
;