mirror of
				https://git.proxmox.com/git/proxmox-backup
				synced 2025-11-02 15:18:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
Ext.define('PBS.DataStorePanel', {
 | 
						|
    extend: 'Ext.tab.Panel',
 | 
						|
    alias: 'widget.pbsDataStorePanel',
 | 
						|
    mixins: ['Proxmox.Mixin.CBind'],
 | 
						|
 | 
						|
    cbindData: function(initalConfig) {
 | 
						|
	let me = this;
 | 
						|
	return {
 | 
						|
	    aclPath: `/datastore/${me.datastore}`,
 | 
						|
	};
 | 
						|
    },
 | 
						|
 | 
						|
    stateId: 'pbs-datastore-panel',
 | 
						|
    stateful: true,
 | 
						|
 | 
						|
    stateEvents: ['tabchange'],
 | 
						|
 | 
						|
    applyState: function(state) {
 | 
						|
	let me = this;
 | 
						|
	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(() => me.setActiveTab(state.tab), 10);
 | 
						|
	}
 | 
						|
    },
 | 
						|
 | 
						|
    getState: function() {
 | 
						|
	let me = this;
 | 
						|
	return {
 | 
						|
	    tab: me.getActiveTab().getItemId(),
 | 
						|
	};
 | 
						|
    },
 | 
						|
 | 
						|
    border: false,
 | 
						|
    defaults: {
 | 
						|
	border: false,
 | 
						|
    },
 | 
						|
 | 
						|
    tools: [PBS.Utils.get_help_tool("datastore_intro")],
 | 
						|
 | 
						|
    items: [
 | 
						|
	{
 | 
						|
	    xtype: 'pbsDataStoreSummary',
 | 
						|
	    title: gettext('Summary'),
 | 
						|
	    itemId: 'summary',
 | 
						|
	    iconCls: 'fa fa-book',
 | 
						|
	    cbind: {
 | 
						|
		datastore: '{datastore}',
 | 
						|
	    },
 | 
						|
	},
 | 
						|
	{
 | 
						|
	    xtype: 'pbsDataStoreContent',
 | 
						|
	    itemId: 'content',
 | 
						|
	    iconCls: 'fa fa-th',
 | 
						|
	    cbind: {
 | 
						|
		datastore: '{datastore}',
 | 
						|
	    },
 | 
						|
	},
 | 
						|
	{
 | 
						|
	    title: gettext('Prune & GC'),
 | 
						|
	    xtype: 'pbsDatastorePruneAndGC',
 | 
						|
	    itemId: 'prunegc',
 | 
						|
	    iconCls: 'fa fa-trash-o',
 | 
						|
	    cbind: {
 | 
						|
		datastore: '{datastore}',
 | 
						|
	    },
 | 
						|
	},
 | 
						|
	{
 | 
						|
	    iconCls: 'fa fa-refresh',
 | 
						|
	    itemId: 'syncjobs',
 | 
						|
	    xtype: 'pbsSyncJobView',
 | 
						|
	    cbind: {
 | 
						|
		datastore: '{datastore}',
 | 
						|
	    },
 | 
						|
	},
 | 
						|
	{
 | 
						|
	    iconCls: 'fa fa-check-circle',
 | 
						|
	    itemId: 'verifyjobs',
 | 
						|
	    xtype: 'pbsVerifyJobView',
 | 
						|
	    cbind: {
 | 
						|
		datastore: '{datastore}',
 | 
						|
	    },
 | 
						|
	},
 | 
						|
	{
 | 
						|
	    xtype: 'pbsDatastoreOptionView',
 | 
						|
	    itemId: 'options',
 | 
						|
	    title: gettext('Options'),
 | 
						|
	    iconCls: 'fa fa-cog',
 | 
						|
	    cbind: {
 | 
						|
		datastore: '{datastore}',
 | 
						|
	    },
 | 
						|
	},
 | 
						|
	{
 | 
						|
	    itemId: 'acl',
 | 
						|
	    xtype: 'pbsACLView',
 | 
						|
	    iconCls: 'fa fa-unlock',
 | 
						|
	    cbind: {
 | 
						|
		aclPath: '{aclPath}',
 | 
						|
		datastore: '{datastore}',
 | 
						|
	    },
 | 
						|
	},
 | 
						|
    ],
 | 
						|
 | 
						|
    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();
 | 
						|
    },
 | 
						|
});
 |