mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-05-30 03:55:55 +00:00
108 lines
2.1 KiB
JavaScript
108 lines
2.1 KiB
JavaScript
Ext.define('PVE.panel.Config', {
|
|
extend: 'Ext.panel.Panel',
|
|
alias: 'widget.pvePanelConfig',
|
|
|
|
initComponent: function() {
|
|
var me = this;
|
|
|
|
var stateid = me.hstateid;
|
|
|
|
var sp = Ext.state.Manager.getProvider();
|
|
|
|
var activeTab;
|
|
|
|
if (stateid) {
|
|
var state = sp.get(stateid);
|
|
if (state && state.value) {
|
|
activeTab = state.value;
|
|
}
|
|
}
|
|
|
|
var items = me.items || [];
|
|
me.items = undefined;
|
|
|
|
var tbar = me.tbar || [];
|
|
me.tbar = undefined;
|
|
|
|
var title = me.title || me.pveSelNode.data.text;
|
|
me.title = undefined;
|
|
|
|
tbar.unshift('->');
|
|
tbar.unshift({
|
|
xtype: 'tbtext',
|
|
text: title,
|
|
baseCls: 'x-panel-header-text',
|
|
padding: '0 0 5 0'
|
|
});
|
|
|
|
Ext.applyIf(me, { showSearch: true });
|
|
|
|
if (me.showSearch) {
|
|
items.unshift({
|
|
itemId: 'search',
|
|
xtype: 'pveResourceGrid'
|
|
});
|
|
}
|
|
|
|
var toolbar = Ext.create('Ext.toolbar.Toolbar', {
|
|
items: tbar,
|
|
style: 'border:0px;',
|
|
height: 28
|
|
});
|
|
|
|
var tab = Ext.create('Ext.tab.Panel', {
|
|
flex: 1,
|
|
border: true,
|
|
activeTab: activeTab,
|
|
defaults: Ext.apply(me.defaults || {}, {
|
|
pveSelNode: me.pveSelNode,
|
|
viewFilter: me.viewFilter,
|
|
workspace: me.workspace,
|
|
border: false
|
|
}),
|
|
items: items,
|
|
listeners: {
|
|
afterrender: function(tp) {
|
|
var first = tp.items.get(0);
|
|
if (first) {
|
|
first.fireEvent('show', first);
|
|
}
|
|
},
|
|
tabchange: function(tp, newcard, oldcard) {
|
|
var ntab = newcard.itemId;
|
|
// Note: '' is alias for first tab.
|
|
// First tab can be 'search' or something else
|
|
if (newcard.itemId === items[0].itemId) {
|
|
ntab = '';
|
|
}
|
|
var state = { value: ntab };
|
|
if (stateid) {
|
|
sp.set(stateid, state);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
Ext.apply(me, {
|
|
layout: { type: 'vbox', align: 'stretch' },
|
|
items: [ toolbar, tab]
|
|
});
|
|
|
|
me.callParent();
|
|
|
|
var statechange = function(sp, key, state) {
|
|
if (stateid && key === stateid) {
|
|
var atab = tab.getActiveTab().itemId;
|
|
var ntab = state.value || items[0].itemId;
|
|
if (state && ntab && (atab != ntab)) {
|
|
tab.setActiveTab(ntab);
|
|
}
|
|
}
|
|
};
|
|
|
|
if (stateid) {
|
|
me.mon(sp, 'statechange', statechange);
|
|
}
|
|
}
|
|
});
|