ui: MainView/NavigationTree: improve tree selection handling
this fixes some bugs related to selection handling in the treelist: * datastores were not selected after a reload * reloading when in a tabpanel on any tab but the first, would not select a treenode * changing between datastores on any tab but the first would not select the same tab on the new datastore fixed those by mostly rewriting the changePath handling for datastores and tabpanels in general Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
committed by
Thomas Lamprecht
parent
7ece65a01e
commit
2565fdd075
@ -163,6 +163,12 @@ Ext.define('PBS.view.main.NavigationTree', {
|
||||
});
|
||||
|
||||
Ext.Array.forEach(erase_list, function(node) { list.removeChild(node, true); });
|
||||
|
||||
if (view.pathToSelect !== undefined) {
|
||||
let path = view.pathToSelect;
|
||||
delete view.pathToSelect;
|
||||
view.select(path, true);
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@ -186,10 +192,20 @@ Ext.define('PBS.view.main.NavigationTree', {
|
||||
},
|
||||
},
|
||||
|
||||
select: function(path) {
|
||||
select: function(path, silent) {
|
||||
var me = this;
|
||||
var item = me.getStore().findRecord('path', path, 0, false, true, true);
|
||||
me.setSelection(item);
|
||||
if (me.rstore.isLoaded()) {
|
||||
if (silent) {
|
||||
me.suspendEvents(false);
|
||||
}
|
||||
var item = me.getStore().findRecord('path', path, 0, false, true, true);
|
||||
me.setSelection(item);
|
||||
if (silent) {
|
||||
me.resumeEvents(true);
|
||||
}
|
||||
} else {
|
||||
me.pathToSelect = path;
|
||||
}
|
||||
},
|
||||
|
||||
animation: false,
|
||||
|
Reference in New Issue
Block a user