]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/panel/SubConfigPanel.js
1 Ext
.define('PVE.panel.SubConfig', {
2 extend
: 'Ext.tab.Panel',
3 alias
: ['widget.pvePanelSubConfig'],
5 configPrefix
: undefined,
10 getHState: function(itemId
) {
11 /*jslint confusion: true */
15 if (me
.getActiveTab() === undefined) {
18 itemId
= me
.getActiveTab().itemId
;
21 var first
= me
.items
.get(0);
24 // Note: '' is alias for first tab.
25 if (itemId
=== first
.itemId
) {
26 ntab
= me
.configPrefix
;
28 ntab
= me
.configPrefix
+ '-' + itemId
;
31 return { value
: ntab
};
34 initComponent: function() {
38 throw "no parent history state specified";
41 var sp
= Ext
.state
.Manager
.getProvider();
42 var state
= sp
.get(me
.phstateid
);
44 var hsregex
= /^([^\-\s]+)-(\S+)?$/;
46 if (state
&& state
.value
) {
47 var res
= hsregex
.exec(state
.value
);
48 if (res
&& res
[1] && res
[2] && res
[1] === me
.configPrefix
) {
49 me
.activeTab
= res
[2]; // if we have lazy items, this does nothing
50 me
.savedTab
= res
[2]; // so we save it here
56 afterrender: function(tp
) {
57 // if we have lazy items,
58 // we saved the tabname in savedTab
59 if (me
.activeTab
=== undefined && me
.savedTab
) {
60 me
.setActiveTab(me
.savedTab
);
61 } else if (me
.activeTab
=== undefined) {
62 // if we have nothing else, we set 0 as active
66 tabchange: function(tp
, newcard
, oldcard
) {
67 var state
= me
.getHState(newcard
.itemId
);
68 sp
.set(me
.phstateid
, state
);
75 var statechange = function(sp
, key
, state
) {
76 if ((key
=== me
.phstateid
) && state
) {
77 var first
= me
.items
.get(0);
78 var atab
= me
.getActiveTab().itemId
;
79 var res
= hsregex
.exec(state
.value
);
80 var ntab
= (res
&& res
[1]) ? res
[1] : first
.itemId
;
81 if (ntab
&& (atab
!= ntab
)) {
82 me
.setActiveTab(ntab
);
87 me
.mon(sp
, 'statechange', statechange
);