]> git.proxmox.com Git - pve-manager.git/commitdiff
use DiffStore from widget toolkit
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 11 Dec 2017 11:05:39 +0000 (12:05 +0100)
committerDominik Csapak <d.csapak@proxmox.com>
Thu, 25 Jan 2018 12:36:38 +0000 (13:36 +0100)
The alias stayed the same (store.diff) so we need to change direct
usage of 'PVE.data.DiffStore' only.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
www/manager6/Makefile
www/manager6/ceph/Monitor.js
www/manager6/ceph/Pool.js
www/manager6/data/DiffStore.js [deleted file]
www/manager6/dc/Log.js
www/manager6/dc/Summary.js
www/manager6/dc/Tasks.js
www/manager6/grid/Replication.js
www/manager6/ha/Resources.js
www/manager6/ha/StatusView.js

index 00ae999f5856f9af77a85a25a8cfa27df07e2818..b285a2bf10dc3decceeddf30561b3be37e818b16 100644 (file)
@@ -16,7 +16,6 @@ JSSRC=                                                        \
        VNCConsole.js                                   \
        data/TimezoneStore.js                           \
        data/PVEProxy.js                                \
-       data/DiffStore.js                               \
        data/ObjectStore.js                             \
        data/ResourceStore.js                           \
        data/model/RRDModels.js                         \
index 27ff3d027670af41c4e594ae8e8c37f13bc2f7a9..d588441a72eaac2d51ba8c0e372610bc9744f05a 100644 (file)
@@ -77,7 +77,7 @@ Ext.define('PVE.node.CephMonList', {
            }
        });
 
-       var store = Ext.create('PVE.data.DiffStore', {
+       var store = Ext.create('Proxmox.data.DiffStore', {
            rstore: rstore,
            sorters: [{ property: 'name'}]
        });
index d02eedde99faad45eaf6d863dc38cb5ddb308cf8..58af5cbf2528104d67d949d96989bc81c6b2c0f1 100644 (file)
@@ -162,7 +162,7 @@ Ext.define('PVE.node.CephPoolList', {
            }
        });
 
-       var store = Ext.create('PVE.data.DiffStore', { rstore: rstore });
+       var store = Ext.create('Proxmox.data.DiffStore', { rstore: rstore });
 
        Proxmox.Utils.monStoreErrors(me, rstore);
 
diff --git a/www/manager6/data/DiffStore.js b/www/manager6/data/DiffStore.js
deleted file mode 100644 (file)
index c93617a..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * The DiffStore is a in-memory store acting as proxy between a real store
- * instance and a component.
- * Its purpose is to redisplay the component *only* if the data has been changed
- * inside the real store, to avoid the annoying visual flickering of using
- * the real store directly.
- *
- * Implementation:
- * The DiffStore monitors via mon() the 'load' events sent by the real store.
- * On each 'load' event, the DiffStore compares its own content with the target
- * store (call to cond_add_item()) and then fires a 'refresh' event.
- * The 'refresh' event will automatically trigger a view refresh on the component
- * who binds to this store.
- */
-
-/* Config properties:
- * rstore: the realstore which will autorefresh its content from the API
- * Only works if rstore has a model and use 'idProperty'
- * sortAfterUpdate: sort the diffstore before rendering the view
- */
-Ext.define('PVE.data.DiffStore', {
-    extend: 'Ext.data.Store',
-    alias: 'store.diff',
-
-    sortAfterUpdate: false,
-    
-    constructor: function(config) {
-       var me = this;
-
-       config = config || {};
-
-       if (!config.rstore) {
-           throw "no rstore specified";
-       }
-
-       if (!config.rstore.model) {
-           throw "no rstore model specified";
-       }
-
-       var rstore = config.rstore;
-
-       Ext.apply(config, {
-           model: rstore.model,
-           proxy: { type: 'memory' }
-       });
-
-       me.callParent([config]);
-
-       var first_load = true;
-
-       var cond_add_item = function(data, id) {
-           var olditem = me.getById(id);
-           if (olditem) {
-               olditem.beginEdit();
-               Ext.Array.each(me.model.prototype.fields, function(field) {
-                   if (olditem.data[field.name] !== data[field.name]) {
-                       olditem.set(field.name, data[field.name]);
-                   }
-               });
-               olditem.endEdit(true);
-               olditem.commit(); 
-           } else {
-               var newrec = Ext.create(me.model, data);
-               var pos = (me.appendAtStart && !first_load) ? 0 : me.data.length;
-               me.insert(pos, newrec);
-           }
-       };
-
-       var loadFn = function(s, records, success) {
-
-           if (!success) {
-               return;
-           }
-
-           me.suspendEvents();
-
-           // getSource returns null if data is not filtered
-           // if it is filtered it returns all records
-           var allItems = me.getData().getSource() || me.getData();
-
-           // remove vanished items
-           allItems.each(function(olditem) {
-               var item = rstore.getById(olditem.getId());
-               if (!item) {
-                   me.remove(olditem);
-               }
-           });
-
-           rstore.each(function(item) {
-               cond_add_item(item.data, item.getId());
-           });
-
-           me.filter();
-
-           if (me.sortAfterUpdate) {
-               me.sort();
-           }
-
-           first_load = false;
-
-           me.resumeEvents();
-           me.fireEvent('refresh', me);
-           me.fireEvent('datachanged', me);
-       };
-
-       if (rstore.isLoaded()) {
-           // if store is already loaded,
-           // insert items instantly
-           loadFn(rstore, [], true);
-       }
-
-       me.mon(rstore, 'load', loadFn);
-    }
-});
index f4bb55855e985f1ef492ee0d6d27ac5784c8bf98..0bd7623d54817ef302edd7e27f71b6d282caf119 100644 (file)
@@ -19,7 +19,7 @@ Ext.define('PVE.dc.Log', {
            }
        });
 
-       var store = Ext.create('PVE.data.DiffStore', { 
+       var store = Ext.create('Proxmox.data.DiffStore', {
            rstore: logstore,
            appendAtStart: true 
        });
@@ -91,4 +91,4 @@ Ext.define('PVE.dc.Log', {
 
        me.callParent();
     }
-});
\ No newline at end of file
+});
index d593f0ba3c46f72347a19c594195df823b7b0911..0b226a1e0d6336e86d46f4856c702c28d920396b 100644 (file)
@@ -67,7 +67,7 @@ Ext.define('PVE.dc.Summary', {
            }
        });
 
-       var gridstore = Ext.create('PVE.data.DiffStore', {
+       var gridstore = Ext.create('Proxmox.data.DiffStore', {
            rstore: rstore,
            filters: {
                property: 'type',
index c38860ba41e014500da7acc1d7ce7cc1498cfa6e..8b6f9141352beb7340a735091cdeaafe8ba051f8 100644 (file)
@@ -19,7 +19,7 @@ Ext.define('PVE.dc.Tasks', {
            }
        });
 
-       var store = Ext.create('PVE.data.DiffStore', { 
+       var store = Ext.create('Proxmox.data.DiffStore', {
            rstore: taskstore,
            sortAfterUpdate: true,
            appendAtStart: true,
index 995bf22c8e0f2380500d3745c1083ee8b8354e2d..b8f303c7578a68df25827b651e02befbaaaac871 100644 (file)
@@ -441,7 +441,7 @@ Ext.define('PVE.grid.ReplicaView', {
            }
        });
 
-       me.store = Ext.create('PVE.data.DiffStore', {
+       me.store = Ext.create('Proxmox.data.DiffStore', {
            rstore: me.rstore,
            sorters: [
                {
index 13419bb39e9d85191906610ffbef912138a09017..0b142c8da7525ab3814c6dc06dd0085c505284e2 100644 (file)
@@ -18,7 +18,7 @@ Ext.define('PVE.ha.ResourcesView', {
 
        Proxmox.Utils.monStoreErrors(me, me.rstore);
 
-       var store = Ext.create('PVE.data.DiffStore', {
+       var store = Ext.create('Proxmox.data.DiffStore', {
            rstore: me.rstore,
            filters: {
                property: 'type',
index 00837a94d16c6b512af0984b47199a4f44bf8850..ec5fc98e4b202aa0ddbe70da0c342c3465bc56ef 100644 (file)
@@ -20,7 +20,7 @@ Ext.define('PVE.ha.StatusView', {
 
        Proxmox.Utils.monStoreErrors(me, me.rstore);
 
-       var store = Ext.create('PVE.data.DiffStore', {
+       var store = Ext.create('Proxmox.data.DiffStore', {
            rstore: me.rstore,
            sortAfterUpdate: true,
            sorters: [{