we don't need one entry per storage per node, since ACLs just operate on the storage ID and don't care about the node.
use the fact that record IDs are unique in ExtJS stores, and just re-use our ACL 'ID' as record ID. Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> --- we could also re-define contains to filter by value, or use Ext.Array.findBy but all of that seems less straightforward to me.. www/manager6/data/PermPathStore.js | 28 ++++++++++++++------------- www/manager6/form/PermPathSelector.js | 4 ++-- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/www/manager6/data/PermPathStore.js b/www/manager6/data/PermPathStore.js index 90837d1c..2e87434e 100644 --- a/www/manager6/data/PermPathStore.js +++ b/www/manager6/data/PermPathStore.js @@ -1,15 +1,15 @@ Ext.define('PVE.data.PermPathStore', { extend: 'Ext.data.Store', alias: 'store.pvePermPath', - fields: [ 'value' ], + fields: [ 'id' ], autoLoad: false, data: [ - {'value': '/'}, - {'value': '/access'}, - {'value': '/nodes'}, - {'value': '/pool'}, - {'value': '/storage'}, - {'value': '/vms'} + {'id': '/'}, + {'id': '/access'}, + {'id': '/nodes'}, + {'id': '/pool'}, + {'id': '/storage'}, + {'id': '/vms'} ], constructor: function(config) { @@ -23,22 +23,24 @@ Ext.define('PVE.data.PermPathStore', { PVE.data.ResourceStore.each(function(record) { switch (record.get('type')) { case 'node': - me.add({value: '/nodes/' + record.get('text')}); + me.add({id: '/nodes/' + record.get('text')}); break; case 'qemu': - me.add({value: '/vms/' + record.get('vmid')}); + me.add({id: '/vms/' + record.get('vmid')}); break; case 'lxc': - me.add({value: '/vms/' + record.get('vmid')}); + me.add({id: '/vms/' + record.get('vmid')}); break; case 'storage': - me.add({value: '/storage/' + record.get('storage')}); + /* multiple resource entries for storages in a cluster, + * only one ACL path! */ + me.add({id: '/storage/' + record.get('storage')}); break; case 'pool': - me.add({value: '/pool/' + record.get('pool')}); + me.add({id: '/pool/' + record.get('pool')}); break; } }); @@ -48,7 +50,7 @@ Ext.define('PVE.data.PermPathStore', { me.fireEvent('datachanged', me); me.sort({ - property: 'value', + property: 'id', direction: 'ASC' }); } diff --git a/www/manager6/form/PermPathSelector.js b/www/manager6/form/PermPathSelector.js index 928a9621..21ca01b3 100644 --- a/www/manager6/form/PermPathSelector.js +++ b/www/manager6/form/PermPathSelector.js @@ -2,8 +2,8 @@ Ext.define('PVE.form.PermPathSelector', { extend: 'Ext.form.field.ComboBox', xtype: 'pvePermPathSelector', - valueField: 'value', - displayField: 'value', + valueField: 'id', + displayField: 'id', typeAhead: true, queryMode: 'local', store: { -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel