when rstore is not instanciated but only a config,
auto-create it with its type

this allows us to configure an diff/rstore combination completely
declaratively like this:

store: {
    type: 'diff',
    autoDestroy: true,
    autoDestroyRstore: true,
    rstore: {
        type: 'update',
        model: 'some-model',
        autoStart: true,
        interval: 5000,
    },
},

the only thing we have to be careful about is to either
do a manual 'stopUpdate' somewhere, or use the 'autoDestroyRstore' flag

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
we might want to set the 'autoDestroyRstore' automatically when
we define 'autoDestroy' and autocreated it? in that case
the chance that someone manually extracts an instance of the rstore
and uses it somewhere else is probably very low

 data/DiffStore.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/data/DiffStore.js b/data/DiffStore.js
index 6f335f0..2fc08be 100644
--- a/data/DiffStore.js
+++ b/data/DiffStore.js
@@ -51,7 +51,14 @@ Ext.define('Proxmox.data.DiffStore', {
            throw "no rstore model specified";
        }
 
-       var rstore = config.rstore;
+       let rstore;
+       if (config.rstore.isInstance) {
+           rstore = config.rstore;
+       } else if (config.rstore.type) {
+           rstore = Ext.create(`store.${config.rstore.type}`, config.rstore);
+       } else {
+           throw 'rstore is not an instance, and cannot autocreate without 
"type"';
+       }
 
        Ext.apply(config, {
            model: rstore.model,
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to