ui: improve activeTab selection from fragment and state
handle invalid fragments for tabs, as well as not rendered tabpanels Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
a86e703661
commit
240b2ffb9b
@ -186,8 +186,13 @@ Ext.define('PBS.datastore.DataStores', {
|
||||
|
||||
applyState: function(state) {
|
||||
let me = this;
|
||||
if (state.tab !== undefined) {
|
||||
if (state.tab !== undefined && me.rendered) {
|
||||
me.setActiveTab(state.tab);
|
||||
} else if (state.tab) {
|
||||
// if we are not rendered yet, defer setting the activetab
|
||||
setTimeout(function() {
|
||||
me.setActiveTab(state.tab);
|
||||
}, 10);
|
||||
}
|
||||
},
|
||||
|
||||
@ -228,4 +233,13 @@ Ext.define('PBS.datastore.DataStores', {
|
||||
aclPath: '/datastore',
|
||||
},
|
||||
],
|
||||
|
||||
initComponent: function() {
|
||||
let me = this;
|
||||
// remove invalid activeTab settings
|
||||
if (me.activeTab && !me.items.some((item) => item.itemId === me.activeTab)) {
|
||||
delete me.activeTab;
|
||||
}
|
||||
me.callParent();
|
||||
},
|
||||
});
|
||||
|
@ -17,8 +17,13 @@ Ext.define('PBS.DataStorePanel', {
|
||||
|
||||
applyState: function(state) {
|
||||
let me = this;
|
||||
if (state.tab !== undefined) {
|
||||
if (state.tab !== undefined && me.rendered) {
|
||||
me.setActiveTab(state.tab);
|
||||
} else if (state.tab) {
|
||||
// if we are not rendered yet, defer setting the activetab
|
||||
setTimeout(function() {
|
||||
me.setActiveTab(state.tab);
|
||||
}, 10);
|
||||
}
|
||||
},
|
||||
|
||||
@ -101,6 +106,10 @@ Ext.define('PBS.DataStorePanel', {
|
||||
initComponent: function() {
|
||||
let me = this;
|
||||
me.title = `${gettext("Datastore")}: ${me.datastore}`;
|
||||
// remove invalid activeTab settings
|
||||
if (me.activeTab && !me.items.some((item) => item.itemId === me.activeTab)) {
|
||||
delete me.activeTab;
|
||||
}
|
||||
me.callParent();
|
||||
},
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user