]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: storage/cephfs: make ceph fs selectable
authorDominik Csapak <d.csapak@proxmox.com>
Mon, 25 Oct 2021 14:01:36 +0000 (16:01 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 11 Nov 2021 16:52:08 +0000 (17:52 +0100)
by adding a CephFSSelector and using it in the CephFSEdit window
(similar to the poolselector/textfield)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
www/manager6/Makefile
www/manager6/form/CephFSSelector.js [new file with mode: 0644]
www/manager6/storage/CephFSEdit.js

index 7247976bce66420e5bbd176e9687f7b5b96c5330..e8323b69dd386136a4b07fb81b8d0ebd07a0d676 100644 (file)
@@ -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 (file)
index 0000000..3c86e3c
--- /dev/null
@@ -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]);
+               }
+           },
+       });
+    },
+
+});
index 1f5246cdb9d2cc01ed36fcdceb020bf5453e1797..92fdfe632471aea0e877c7150e2736a7bc185d37 100644 (file)
@@ -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',