]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/storage/ZFSEdit.js
ui: eslint: Miscellaneous eslint fixes
[pve-manager.git] / www / manager6 / storage / ZFSEdit.js
index f40bf7ab6bee00342ebcf863e70b74943c99b2cc..0c5a3ceba9fd862de49d8998e04be1182bf51a87 100644 (file)
 Ext.define('PVE.storage.ZFSInputPanel', {
-    extend: 'PVE.panel.InputPanel',
+    extend: 'PVE.panel.StorageBase',
+
+    viewModel: {
+       parent: null,
+       data: {
+           isLIO: false,
+           isComstar: true,
+           hasWriteCacheOption: true,
+       },
+    },
+
+    controller: {
+       xclass: 'Ext.app.ViewController',
+       control: {
+           'field[name=iscsiprovider]': {
+               change: 'changeISCSIProvider',
+           },
+       },
+       changeISCSIProvider: function(f, newVal, oldVal) {
+           var vm = this.getViewModel();
+           vm.set('isLIO', newVal === 'LIO');
+           vm.set('isComstar', newVal === 'comstar');
+           vm.set('hasWriteCacheOption', newVal === 'comstar' || newVal === 'istgt');
+       },
+    },
 
     onGetValues: function(values) {
        var me = this;
 
-       if (me.create) {
-           values.type = 'zfs';
+       if (me.isCreate) {
            values.content = 'images';
-       } else {
-           delete values.storage;
        }
 
-       values.disable = values.enable ? 0 : 1;
-       delete values.enable;
+       values.nowritecache = values.writecache ? 0 : 1;
+       delete values.writecache;
 
-       return values;
+       return me.callParent([values]);
     },
 
-    initComponent : function() {
+    setValues: function(values) {
+       values.writecache = values.nowritecache ? 0 : 1;
+       this.callParent([values]);
+    },
+
+    initComponent: function() {
        var me = this;
 
        me.column1 = [
            {
-               xtype: me.create ? 'textfield' : 'displayfield',
-               name: 'storage',
-               height: 22, // hack: set same height as text fields
-               value: me.storageId || '',
-               fieldLabel: 'ID',
-               vtype: 'StorageId',
-               allowBlank: false
-           },
-           {
-               xtype: me.create ? 'textfield' : 'displayfield',
+               xtype: me.isCreate ? 'textfield' : 'displayfield',
                name: 'portal',
-               height: 22, // hack: set same height as text fields
                value: '',
                fieldLabel: gettext('Portal'),
-               allowBlank: false
+               allowBlank: false,
            },
            {
-               xtype: me.create ? 'textfield' : 'displayfield',
+               xtype: me.isCreate ? 'textfield' : 'displayfield',
                name: 'pool',
-               height: 22, // hack: set same height as text fields
                value: '',
                fieldLabel: gettext('Pool'),
-               allowBlank: false
+               allowBlank: false,
            },
            {
-               xtype: me.create ? 'textfield' : 'displayfield',
+               xtype: me.isCreate ? 'textfield' : 'displayfield',
                name: 'blocksize',
-               height: 22, // hack: set same height as text fields
                value: '4k',
                fieldLabel: gettext('Block Size'),
-               allowBlank: false
+               allowBlank: false,
            },
            {
-               xtype: me.create ? 'textfield' : 'displayfield',
+               xtype: me.isCreate ? 'textfield' : 'displayfield',
                name: 'target',
-               height: 22, // hack: set same height as text fields
                value: '',
                fieldLabel: gettext('Target'),
-               allowBlank: false
+               allowBlank: false,
            },
            {
-               xtype: me.create ? 'textfield' : 'displayfield',
+               xtype: me.isCreate ? 'textfield' : 'displayfield',
                name: 'comstar_tg',
-               height: 22, // hack: set same height as text fields
                value: '',
                fieldLabel: gettext('Target group'),
-               allowBlank: true
-           }
+               bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
+               allowBlank: true,
+           },
        ];
 
        me.column2 = [
            {
-               xtype: 'pvecheckbox',
-               name: 'enable',
-               checked: true,
-               uncheckedValue: 0,
-               fieldLabel: gettext('Enable')
-           },
-           {
-               xtype: me.create ? 'pveiScsiProviderSelector' : 'displayfield',
+               xtype: me.isCreate ? 'pveiScsiProviderSelector' : 'displayfield',
                name: 'iscsiprovider',
-               height: 22, // hack: set same height as text fields
                value: 'comstar',
                fieldLabel: gettext('iSCSI Provider'),
-               allowBlank: false
+               allowBlank: false,
            },
            {
-               xtype: 'pvecheckbox',
+               xtype: 'proxmoxcheckbox',
                name: 'sparse',
                checked: false,
                uncheckedValue: 0,
-               fieldLabel: gettext('Thin provision')
+               fieldLabel: gettext('Thin provision'),
            },
            {
-               xtype: 'pvecheckbox',
-               name: 'nowritecache',
+               xtype: 'proxmoxcheckbox',
+               name: 'writecache',
                checked: true,
+               bind: me.isCreate ? { disabled: '{!hasWriteCacheOption}' } : { hidden: '{!hasWriteCacheOption}' },
                uncheckedValue: 0,
-               fieldLabel: gettext('Write cache')
+               fieldLabel: gettext('Write cache'),
            },
            {
-               xtype: me.create ? 'textfield' : 'displayfield',
+               xtype: me.isCreate ? 'textfield' : 'displayfield',
                name: 'comstar_hg',
-               height: 22, // hack: set same height as text fields
                value: '',
+               bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
                fieldLabel: gettext('Host group'),
-               allowBlank: true
-           }
+               allowBlank: true,
+           },
+           {
+               xtype: me.isCreate ? 'textfield' : 'displayfield',
+               name: 'lio_tpg',
+               value: '',
+               bind: me.isCreate ? { disabled: '{!isLIO}' } : { hidden: '{!isLIO}' },
+               allowBlank: false,
+               fieldLabel: gettext('Target portal group'),
+           },
        ];
 
-       if (me.create || me.storageId !== 'local') {
-           me.column2.unshift({
-               xtype: 'PVE.form.NodeSelector',
-               name: 'nodes',
-               fieldLabel: gettext('Nodes'),
-               emptyText: gettext('All') + ' (' +
-                   gettext('No restrictions') +')',
-               multiSelect: true,
-               autoSelect: false
-           });
-       }
-
        me.callParent();
-    }
-});
-
-Ext.define('PVE.storage.ZFSEdit', {
-    extend: 'PVE.window.Edit',
-    
-    initComponent : function() {
-       var me = this;
-
-       me.create = !me.storageId;
-
-       if (me.create) {
-            me.url = '/api2/extjs/storage';
-            me.method = 'POST';
-        } else {
-            me.url = '/api2/extjs/storage/' + me.storageId;
-            me.method = 'PUT';
-        }
-
-       var ipanel = Ext.create('PVE.storage.ZFSInputPanel', {
-           create: me.create,
-           storageId: me.storageId
-       });
-
-       Ext.apply(me, {
-            subject: 'ZFS Storage',
-           isAdd: true,
-           items: [ ipanel ]
-       });
-
-       me.callParent();
-
-        if (!me.create) {
-            me.load({
-                success:  function(response, options) {
-                    var values = response.result.data;
-                    if (values.nodes) {
-                        values.nodes = values.nodes.split(',');
-                    }
-                    values.enable = values.disable ? 0 : 1;
-                    ipanel.setValues(values);
-                }
-            });
-        }
-    }
+    },
 });