ui: form/GroupFilter: copy records for the pbsGroupSelectors
store.getData() returns an 'Ext.util.Collection' which is a special class that does more than being an array of records. Namely, it can have 'observers' which can react on the change of the collection Here, the 'onWidgetAttach' callback will be called twice on the first row add and the widgets (and thus stores) are cached by extjs. When doing a 'setData' of a Collection, it tries to add the store as an observer, but due to the above caching and multiple calling this fails since the store is already an observer. For this reason, we want to actually copy the records (which neither the store, nor the Collection has a method for...) This gives us an additional benefit: The different pbsGroupSelectors can sort independently now, before it was all linked to the original store's collection. Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
b3c7567e3c
commit
f49cd6c135
|
@ -134,7 +134,11 @@ Ext.define('PBS.form.GroupFilter', {
|
||||||
let regex = widget.down('textfield[type=regex]');
|
let regex = widget.down('textfield[type=regex]');
|
||||||
let group = widget.down('pbsGroupSelector');
|
let group = widget.down('pbsGroupSelector');
|
||||||
|
|
||||||
group.getStore().setData(view.dsStore.getData());
|
let recs = [];
|
||||||
|
view.dsStore.each((record) => {
|
||||||
|
recs.push(record.data);
|
||||||
|
});
|
||||||
|
group.getStore().setData(recs);
|
||||||
|
|
||||||
// add a widget reference to the record so we can acces them
|
// add a widget reference to the record so we can acces them
|
||||||
// from the other column
|
// from the other column
|
||||||
|
|
Loading…
Reference in New Issue