data/DiffStore: auto-create the rstore if its just a config

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.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2020-05-07 10:27:06 +02:00 committed by Thomas Lamprecht
parent 65277f6a2e
commit eb54b1142e

View File

@ -51,7 +51,14 @@ Ext.define('Proxmox.data.DiffStore', {
throw "no rstore model specified"; 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, { Ext.apply(config, {
model: rstore.model, model: rstore.model,