From: Dominik Csapak Date: Mon, 25 Oct 2021 14:01:36 +0000 (+0200) Subject: ui: storage/cephfs: make ceph fs selectable X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=786e7d83284324b6bb8f2526580d2b33be4cb169;p=pve-manager.git ui: storage/cephfs: make ceph fs selectable by adding a CephFSSelector and using it in the CephFSEdit window (similar to the poolselector/textfield) Signed-off-by: Dominik Csapak --- diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 7247976b..e8323b69 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -26,6 +26,7 @@ JSSRC= \ form/CacheTypeSelector.js \ form/CalendarEvent.js \ form/CephPoolSelector.js \ + form/CephFSSelector.js \ form/CompressionSelector.js \ form/ContentTypeSelector.js \ form/ControllerSelector.js \ diff --git a/www/manager6/form/CephFSSelector.js b/www/manager6/form/CephFSSelector.js new file mode 100644 index 00000000..3c86e3cf --- /dev/null +++ b/www/manager6/form/CephFSSelector.js @@ -0,0 +1,42 @@ +Ext.define('PVE.form.CephFSSelector', { + extend: 'Ext.form.field.ComboBox', + alias: 'widget.pveCephFSSelector', + + allowBlank: false, + valueField: 'name', + displayField: 'name', + editable: false, + queryMode: 'local', + + initComponent: function() { + var me = this; + + if (!me.nodename) { + throw "no nodename given"; + } + + var store = Ext.create('Ext.data.Store', { + fields: ['name'], + sorters: 'name', + proxy: { + type: 'proxmox', + url: '/api2/json/nodes/' + me.nodename + '/ceph/fs', + }, + }); + + Ext.apply(me, { + store: store, + }); + + me.callParent(); + + store.load({ + callback: function(rec, op, success) { + if (success && rec.length > 0) { + me.select(rec[0]); + } + }, + }); + }, + +}); diff --git a/www/manager6/storage/CephFSEdit.js b/www/manager6/storage/CephFSEdit.js index 1f5246cd..92fdfe63 100644 --- a/www/manager6/storage/CephFSEdit.js +++ b/www/manager6/storage/CephFSEdit.js @@ -64,6 +64,31 @@ Ext.define('PVE.storage.CephFSInputPanel', { }, ); + if (me.isCreate) { + me.column1.push({ + xtype: 'pveCephFSSelector', + nodename: me.nodename, + name: 'fs-name', + bind: { + disabled: '{!pveceph}', + submitValue: '{pveceph}', + hidden: '{!pveceph}', + }, + fieldLabel: gettext('FS Name'), + allowBlank: false, + }, { + xtype: 'textfield', + nodename: me.nodename, + name: 'fs-name', + bind: { + disabled: '{pveceph}', + submitValue: '{!pveceph}', + hidden: '{pveceph}', + }, + fieldLabel: gettext('FS Name'), + }); + } + me.column2 = [ { xtype: 'pveContentTypeSelector',