mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-07-16 17:40:11 +00:00
59 lines
1.3 KiB
JavaScript
59 lines
1.3 KiB
JavaScript
Ext.define('PVE.data.PermPathStore', {
|
|
extend: 'Ext.data.Store',
|
|
alias: 'store.pvePermPath',
|
|
fields: ['value'],
|
|
autoLoad: false,
|
|
data: [
|
|
{ 'value': '/' },
|
|
{ 'value': '/access' },
|
|
{ 'value': '/access/groups' },
|
|
{ 'value': '/access/realm' },
|
|
{ 'value': '/nodes' },
|
|
{ 'value': '/pool' },
|
|
{ 'value': '/sdn/zones' },
|
|
{ 'value': '/storage' },
|
|
{ 'value': '/vms' },
|
|
],
|
|
|
|
constructor: function(config) {
|
|
var me = this;
|
|
|
|
config = config || {};
|
|
|
|
me.callParent([config]);
|
|
|
|
let donePaths = {};
|
|
me.suspendEvents();
|
|
PVE.data.ResourceStore.each(function(record) {
|
|
let path;
|
|
switch (record.get('type')) {
|
|
case 'node': path = '/nodes/' + record.get('text');
|
|
break;
|
|
case 'qemu': path = '/vms/' + record.get('vmid');
|
|
break;
|
|
case 'lxc': path = '/vms/' + record.get('vmid');
|
|
break;
|
|
case 'sdn': path = '/sdn/zones/' + record.get('sdn');
|
|
break;
|
|
case 'storage': path = '/storage/' + record.get('storage');
|
|
break;
|
|
case 'pool': path = '/pool/' + record.get('pool');
|
|
break;
|
|
}
|
|
if (path !== undefined && !donePaths[path]) {
|
|
me.add({ value: path });
|
|
donePaths[path] = 1;
|
|
}
|
|
});
|
|
me.resumeEvents();
|
|
|
|
me.fireEvent('refresh', me);
|
|
me.fireEvent('datachanged', me);
|
|
|
|
me.sort({
|
|
property: 'value',
|
|
direction: 'ASC',
|
|
});
|
|
},
|
|
});
|