[pve-devel] [PATCH pve-manager 2/2] fix #1499 Implement a combobox for Permissions paths
René Jochum
r.jochum at proxmox.com
Tue May 8 15:15:38 CEST 2018
Signed-off-by: René Jochum <r.jochum at proxmox.com>
---
www/manager6/Makefile | 2 ++
www/manager6/data/PermPathStore.js | 54 +++++++++++++++++++++++++++++++++++
www/manager6/dc/ACLView.js | 2 +-
www/manager6/form/PermPathSelector.js | 12 ++++++++
4 files changed, 69 insertions(+), 1 deletion(-)
create mode 100644 www/manager6/data/PermPathStore.js
create mode 100644 www/manager6/form/PermPathSelector.js
diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index 81ddcc8d..1d7303a3 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -14,6 +14,7 @@ JSSRC= \
lxc/CmdMenu.js \
node/CmdMenu.js \
VNCConsole.js \
+ data/PermPathStore.js \
data/ResourceStore.js \
data/model/Realm.js \
data/model/RRDModels.js \
@@ -58,6 +59,7 @@ JSSRC= \
form/USBSelector.js \
form/CalendarEvent.js \
form/CephPoolSelector.js \
+ form/PermPathSelector.js \
dc/Tasks.js \
dc/Log.js \
panel/StatusPanel.js \
diff --git a/www/manager6/data/PermPathStore.js b/www/manager6/data/PermPathStore.js
new file mode 100644
index 00000000..c88f4cee
--- /dev/null
+++ b/www/manager6/data/PermPathStore.js
@@ -0,0 +1,54 @@
+Ext.define('PVE.data.PermPathStore', {
+ extend: 'Ext.data.Store',
+ alias: 'store.pvePermPath',
+ fields: [ 'value' ],
+ autoLoad: false,
+ data: [
+ {'value': '/access'},
+ {'value': '/nodes'},
+ {'value': '/pool'},
+ {'value': '/storage'},
+ {'value': '/vms'}
+ ],
+
+ constructor: function(config) {
+ var me = this;
+
+ config = config || {};
+
+ me.callParent([config]);
+
+ me.suspendEvents();
+ PVE.data.ResourceStore.each(function(record) {
+ switch (record.get('type')) {
+ case 'node':
+ me.add({value: '/nodes/' + record.get('text')});
+ break;
+
+ case 'qemu':
+ me.add({value: '/vms/' + record.get('vmid')});
+ break;
+
+ case 'lxc':
+ me.add({value: '/vms/' + record.get('vmid')});
+ break;
+
+ case 'storage':
+ me.add({value: '/storage/' + record.get('storage')});
+ break;
+ case 'pool':
+ me.add({value: '/pool/' + record.get('pool')});
+ break;
+ }
+ });
+ me.resumeEvents();
+
+ me.fireEvent('refresh', me);
+ me.fireEvent('datachanged', me);
+
+ me.sort({
+ property: 'value',
+ direction: 'ASC'
+ });
+ }
+});
\ No newline at end of file
diff --git a/www/manager6/dc/ACLView.js b/www/manager6/dc/ACLView.js
index e12c83f2..1322f952 100644
--- a/www/manager6/dc/ACLView.js
+++ b/www/manager6/dc/ACLView.js
@@ -12,7 +12,7 @@ Ext.define('PVE.dc.ACLAdd', {
var items = [
{
- xtype: me.path ? 'hiddenfield' : 'textfield',
+ xtype: me.path ? 'hiddenfield' : 'pvePermPathSelector',
name: 'path',
value: me.path,
allowBlank: false,
diff --git a/www/manager6/form/PermPathSelector.js b/www/manager6/form/PermPathSelector.js
new file mode 100644
index 00000000..ace94b9f
--- /dev/null
+++ b/www/manager6/form/PermPathSelector.js
@@ -0,0 +1,12 @@
+Ext.define('PVE.form.PermPathSelector', {
+ extend: 'Ext.form.field.ComboBox',
+ xtype: 'pvePermPathSelector',
+
+ valueField: 'value',
+ displayField: 'value',
+ typeAhead: true,
+ queryMode: 'local',
+ store: {
+ type: 'pvePermPath'
+ }
+});
--
2.11.0
More information about the pve-devel
mailing list