Added editable field in the ZFS over iSCSI panel
- Made the fields Pool, Target, API Username, API Password editable. - Added a Confirm Password field and logic to compare - Hide the password in the 'Edit' panel. - This is for issue/enhancement #26 - Kept each patch for the version of pvemanagerlib.js and if there are bugs from the first patch release then added an '_<int>' to the version of the patch. The pvemanagerlib.js will always follow the highest version.
This commit is contained in:
parent
7dfa7f367d
commit
c487158579
|
|
@ -0,0 +1,167 @@
|
||||||
|
--- pvemanagerlib-5.2-10.js 2018-10-23 07:18:18.058603386 -0400
|
||||||
|
+++ pvemanagerlib.js 2018-10-23 15:29:52.573563883 -0400
|
||||||
|
@@ -5597,6 +5597,7 @@
|
||||||
|
alias: ['widget.pveiScsiProviderSelector'],
|
||||||
|
comboItems: [
|
||||||
|
['comstar', 'Comstar'],
|
||||||
|
+ ['freenas', 'FreeNAS-API'],
|
||||||
|
[ 'istgt', 'istgt'],
|
||||||
|
[ 'iet', 'IET'],
|
||||||
|
[ 'LIO', 'LIO']
|
||||||
|
@@ -28583,6 +28584,7 @@
|
||||||
|
data: {
|
||||||
|
isLIO: false,
|
||||||
|
isComstar: true,
|
||||||
|
+ isFreeNAS: false,
|
||||||
|
hasWriteCacheOption: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
@@ -28595,10 +28597,19 @@
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeISCSIProvider: function(f, newVal, oldVal) {
|
||||||
|
+ var me = this;
|
||||||
|
var vm = this.getViewModel();
|
||||||
|
vm.set('isLIO', newVal === 'LIO');
|
||||||
|
vm.set('isComstar', newVal === 'comstar');
|
||||||
|
- vm.set('hasWriteCacheOption', newVal === 'comstar' || newVal === 'istgt');
|
||||||
|
+ vm.set('isFreeNAS', newVal === 'freenas');
|
||||||
|
+ vm.set('hasWriteCacheOption', newVal === 'comstar' || newVal === 'freenas' || newVal === 'istgt');
|
||||||
|
+ if (newVal !== 'freenas') {
|
||||||
|
+ me.lookupReference('freenas_use_ssl_field').setValue(false);
|
||||||
|
+ me.lookupReference('freenas_apiv4_host_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_user_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_password_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_confirmpw_field').setValue('');
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -28616,6 +28627,7 @@
|
||||||
|
},
|
||||||
|
|
||||||
|
setValues: function diff(values) {
|
||||||
|
+ values.freenas_confirmpw = values.freenas_password;
|
||||||
|
values.writecache = values.nowritecache ? 0 : 1;
|
||||||
|
this.callParent([values]);
|
||||||
|
},
|
||||||
|
@@ -28632,7 +28644,7 @@
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
- xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ xtype: 'textfield',
|
||||||
|
name: 'pool',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Pool'),
|
||||||
|
@@ -28646,7 +28658,7 @@
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
- xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ xtype: 'textfield',
|
||||||
|
name: 'target',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Target'),
|
||||||
|
@@ -28657,8 +28669,28 @@
|
||||||
|
name: 'comstar_tg',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Target group'),
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
|
+ bind: { hidden: '{!isComstar}' },
|
||||||
|
allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxcheckbox',
|
||||||
|
+ name: 'freenas_use_ssl',
|
||||||
|
+ reference: 'freenas_use_ssl_field',
|
||||||
|
+ inputId: 'freenas_use_ssl_field',
|
||||||
|
+ checked: false,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ uncheckedValue: 0,
|
||||||
|
+ fieldLabel: gettext('API use SSL')
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'textfield',
|
||||||
|
+ name: 'freenas_user',
|
||||||
|
+ reference: 'freenas_user_field',
|
||||||
|
+ inputId: 'freenas_user_field',
|
||||||
|
+ value: '',
|
||||||
|
+ allowBlank: false,
|
||||||
|
+ fieldLabel: gettext('API Username'),
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@@ -28689,7 +28721,7 @@
|
||||||
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
name: 'comstar_hg',
|
||||||
|
value: '',
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
|
+ bind: { hidden: '{!isComstar}' },
|
||||||
|
fieldLabel: gettext('Host group'),
|
||||||
|
allowBlank: true
|
||||||
|
},
|
||||||
|
@@ -28697,9 +28729,60 @@
|
||||||
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
name: 'lio_tpg',
|
||||||
|
value: '',
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isLIO}' } : { hidden: '{!isLIO}' },
|
||||||
|
+ bind: { hidden: '{!isLIO}' },
|
||||||
|
+ fieldLabel: gettext('Target portal group'),
|
||||||
|
+ allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxtextfield',
|
||||||
|
+ name: 'freenas_apiv4_host',
|
||||||
|
+ reference: 'freenas_apiv4_host_field',
|
||||||
|
+ value: '',
|
||||||
|
+ editable: true,
|
||||||
|
+ allowBlank: true,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('API IPv4 Host'),
|
||||||
|
+ allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxtextfield',
|
||||||
|
+ name: 'freenas_password',
|
||||||
|
+ reference: 'freenas_password_field',
|
||||||
|
+ inputType: me.isCreate ? '' : 'password',
|
||||||
|
+ value: '',
|
||||||
|
+ editable: true,
|
||||||
|
+ deleteEmpty: true,
|
||||||
|
+ allowBlank: false,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('API Password'),
|
||||||
|
+ change: function(f, value) {
|
||||||
|
+ if (f.rendered) {
|
||||||
|
+ f.up().down('field[name=freenas_confirmpw]').validate();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxtextfield',
|
||||||
|
+ name: 'freenas_confirmpw',
|
||||||
|
+ reference: 'freenas_confirmpw_field',
|
||||||
|
+ inputType: me.isCreate ? '' : 'password',
|
||||||
|
+ value: '',
|
||||||
|
+ editable: true,
|
||||||
|
+ deleteEmpty: true,
|
||||||
|
allowBlank: false,
|
||||||
|
- fieldLabel: gettext('Target portal group')
|
||||||
|
+ submitValue: false,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('Confirm Password'),
|
||||||
|
+ validator: function(value) {
|
||||||
|
+ var pw = this.up().down('field[name=freenas_password]').getValue();
|
||||||
|
+ if (pw !== value) {
|
||||||
|
+ return "Passwords do not match!";
|
||||||
|
+ }
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
--- pvemanagerlib.js.orig 2018-07-30 23:13:28.045035059 -0400
|
||||||
|
+++ pvemanagerlib.js.new 2018-08-19 10:42:58.494724196 -0400
|
||||||
|
@@ -5379,6 +5379,7 @@
|
||||||
|
alias: ['widget.pveiScsiProviderSelector'],
|
||||||
|
comboItems: [
|
||||||
|
['comstar', 'Comstar'],
|
||||||
|
+ ['freenas', 'FreeNAS-API'],
|
||||||
|
[ 'istgt', 'istgt'],
|
||||||
|
[ 'iet', 'IET']
|
||||||
|
]
|
||||||
|
@@ -27361,7 +27362,23 @@
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Target group'),
|
||||||
|
allowBlank: true
|
||||||
|
- }
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxcheckbox',
|
||||||
|
+ name: 'freenas_use_ssl',
|
||||||
|
+ checked: false,
|
||||||
|
+ uncheckedValue: 0,
|
||||||
|
+ hidden: me.iscsiprovider !== "freenas",
|
||||||
|
+ fieldLabel: gettext('FreeNAS API use SSL')
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ name: 'freenas_user',
|
||||||
|
+ value: '',
|
||||||
|
+ hidden: me.iscsiprovider !== "freenas",
|
||||||
|
+ fieldLabel: gettext('FreeNAS User'),
|
||||||
|
+ allowBlank: true
|
||||||
|
+ },
|
||||||
|
];
|
||||||
|
|
||||||
|
me.column2 = [
|
||||||
|
@@ -27370,7 +27387,26 @@
|
||||||
|
name: 'iscsiprovider',
|
||||||
|
value: 'comstar',
|
||||||
|
fieldLabel: gettext('iSCSI Provider'),
|
||||||
|
- allowBlank: false
|
||||||
|
+ allowBlank: false,
|
||||||
|
+ listeners: {
|
||||||
|
+ change: function(f, value) {
|
||||||
|
+ if (value === "freenas") {
|
||||||
|
+ me.down('field[name=freenas_use_ssl]').setHidden(false);
|
||||||
|
+ me.down('field[name=freenas_apiv4_host]').setHidden(false);
|
||||||
|
+ me.down('field[name=freenas_user]').setHidden(false);
|
||||||
|
+ me.down('field[name=freenas_password]').setHidden(false);
|
||||||
|
+ } else {
|
||||||
|
+ me.down('field[name=freenas_use_ssl]').setHidden(true);
|
||||||
|
+ me.down('field[name=freenas_use_ssl]').setValue(false);
|
||||||
|
+ me.down('field[name=freenas_apiv4_host]').setHidden(true);
|
||||||
|
+ me.down('field[name=freenas_apiv4_host]').setValue(false);
|
||||||
|
+ me.down('field[name=freenas_user]').setHidden(true);
|
||||||
|
+ me.down('field[name=freenas_user]').setValue('');
|
||||||
|
+ me.down('field[name=freenas_password]').setHidden(true);
|
||||||
|
+ me.down('field[name=freenas_password]').setValue('');
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'proxmoxcheckbox',
|
||||||
|
@@ -27392,6 +27428,22 @@
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Host group'),
|
||||||
|
allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ name: 'freenas_apiv4_host',
|
||||||
|
+ value: '',
|
||||||
|
+ hidden: me.iscsiprovider !== "freenas",
|
||||||
|
+ fieldLabel: gettext('API IPv4 Host'),
|
||||||
|
+ allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ name: 'freenas_password',
|
||||||
|
+ value: '',
|
||||||
|
+ hidden: me.iscsiprovider !== "freenas",
|
||||||
|
+ fieldLabel: gettext('FreeNAS Password'),
|
||||||
|
+ allowBlank: true
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
|
@ -0,0 +1,102 @@
|
||||||
|
--- pvemanagerlib.js.5.2-8.js 2018-08-30 20:10:52.957313992 -0400
|
||||||
|
+++ pvemanagerlib.js.new 2018-09-01 16:20:05.131908768 -0400
|
||||||
|
@@ -28578,6 +28578,7 @@
|
||||||
|
data: {
|
||||||
|
isLIO: false,
|
||||||
|
isComstar: true,
|
||||||
|
+ isFreeNAS: false,
|
||||||
|
hasWriteCacheOption: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
@@ -28590,11 +28591,18 @@
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeISCSIProvider: function(f, newVal, oldVal) {
|
||||||
|
+ var me = this;
|
||||||
|
var vm = this.getViewModel();
|
||||||
|
vm.set('isLIO', newVal === 'LIO');
|
||||||
|
vm.set('isComstar', newVal === 'comstar');
|
||||||
|
vm.set('isFreeNAS', newVal === 'freenas');
|
||||||
|
- vm.set('hasWriteCacheOption', newVal === 'comstar' || newVal === 'istgt');
|
||||||
|
+ vm.set('hasWriteCacheOption', newVal === 'comstar' || newVal === 'freenas' || newVal === 'istgt');
|
||||||
|
+ if (newVal !== 'freenas') {
|
||||||
|
+ me.lookupReference('freenas_use_ssl_field').setValue(false);
|
||||||
|
+ me.lookupReference('freenas_apiv4_host_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_user_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_password_field').setValue('');
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -28653,16 +28661,28 @@
|
||||||
|
name: 'comstar_tg',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Target group'),
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
|
+ bind: me.isCreate ? { hidden: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
|
allowBlank: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
+ xtype: 'proxmoxcheckbox',
|
||||||
|
+ name: 'freenas_use_ssl',
|
||||||
|
+ reference: 'freenas_use_ssl_field',
|
||||||
|
+ inputId: 'freenas_use_ssl_field',
|
||||||
|
+ checked: false,
|
||||||
|
+ bind: me.isCreate ? { hidden: '{!isFreeNAS}' } : { hidden: '{!isFreeNAS}' },
|
||||||
|
+ uncheckedValue: 0,
|
||||||
|
+ fieldLabel: gettext('API use SSL')
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
name: 'freenas_user',
|
||||||
|
+ reference: 'freenas_user_field',
|
||||||
|
+ inputId: 'freenas_user_field',
|
||||||
|
value: '',
|
||||||
|
- fieldLabel: gettext('FreeNAS User'),
|
||||||
|
+ fieldLabel: gettext('API Username'),
|
||||||
|
bind: me.isCreate ? { hidden: '{!isFreeNAS}' } : { hidden: '{!isFreeNAS}' },
|
||||||
|
- allowBlank: true
|
||||||
|
+ allowBlank: me.isFreeNAS ? false : true
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@@ -28693,7 +28713,7 @@
|
||||||
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
name: 'comstar_hg',
|
||||||
|
value: '',
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
|
+ bind: me.isCreate ? { hidden: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
|
fieldLabel: gettext('Host group'),
|
||||||
|
allowBlank: true
|
||||||
|
},
|
||||||
|
@@ -28701,9 +28721,27 @@
|
||||||
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
name: 'lio_tpg',
|
||||||
|
value: '',
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isLIO}' } : { hidden: '{!isLIO}' },
|
||||||
|
- allowBlank: false,
|
||||||
|
- fieldLabel: gettext('Target portal group')
|
||||||
|
+ bind: me.isCreate ? { hidden: '{!isLIO}' } : { hidden: '{!isLIO}' },
|
||||||
|
+ fieldLabel: gettext('Target portal group'),
|
||||||
|
+ allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ name: 'freenas_apiv4_host',
|
||||||
|
+ reference: 'freenas_apiv4_host_field',
|
||||||
|
+ value: '',
|
||||||
|
+ bind: me.isCreate ? { hidden: '{!isFreeNAS}' } : { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('API IPv4 Host'),
|
||||||
|
+ allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ name: 'freenas_password',
|
||||||
|
+ reference: 'freenas_password_field',
|
||||||
|
+ value: '',
|
||||||
|
+ bind: me.isCreate ? { hidden: '{!isFreeNAS}' } : { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('API Password'),
|
||||||
|
+ allowBlank: true
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
|
@ -0,0 +1,169 @@
|
||||||
|
--- pvemanagerlib-5.2-9.js 2018-10-16 07:17:21.915593478 -0400
|
||||||
|
+++ pvemanagerlib.js 2018-10-21 21:52:20.781740237 -0400
|
||||||
|
@@ -5597,6 +5597,7 @@
|
||||||
|
alias: ['widget.pveiScsiProviderSelector'],
|
||||||
|
comboItems: [
|
||||||
|
['comstar', 'Comstar'],
|
||||||
|
+ ['freenas', 'FreeNAS-API'],
|
||||||
|
[ 'istgt', 'istgt'],
|
||||||
|
[ 'iet', 'IET'],
|
||||||
|
[ 'LIO', 'LIO']
|
||||||
|
@@ -28574,6 +28575,7 @@
|
||||||
|
data: {
|
||||||
|
isLIO: false,
|
||||||
|
isComstar: true,
|
||||||
|
+ isFreeNAS: false,
|
||||||
|
hasWriteCacheOption: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
@@ -28586,10 +28588,19 @@
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeISCSIProvider: function(f, newVal, oldVal) {
|
||||||
|
+ var me = this;
|
||||||
|
var vm = this.getViewModel();
|
||||||
|
vm.set('isLIO', newVal === 'LIO');
|
||||||
|
vm.set('isComstar', newVal === 'comstar');
|
||||||
|
- vm.set('hasWriteCacheOption', newVal === 'comstar' || newVal === 'istgt');
|
||||||
|
+ vm.set('isFreeNAS', newVal === 'freenas');
|
||||||
|
+ vm.set('hasWriteCacheOption', newVal === 'comstar' || newVal === 'freenas' || newVal === 'istgt');
|
||||||
|
+ if (newVal !== 'freenas') {
|
||||||
|
+ me.lookupReference('freenas_use_ssl_field').setValue(false);
|
||||||
|
+ me.lookupReference('freenas_apiv4_host_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_user_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_password_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_confirmpw_field').setValue('');
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -28607,6 +28618,7 @@
|
||||||
|
},
|
||||||
|
|
||||||
|
setValues: function diff(values) {
|
||||||
|
+ values.freenas_confirmpw = values.freenas_password;
|
||||||
|
values.writecache = values.nowritecache ? 0 : 1;
|
||||||
|
this.callParent([values]);
|
||||||
|
},
|
||||||
|
@@ -28623,7 +28635,7 @@
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
- xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ xtype: 'textfield',
|
||||||
|
name: 'pool',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Pool'),
|
||||||
|
@@ -28637,7 +28649,7 @@
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
- xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ xtype: 'textfield',
|
||||||
|
name: 'target',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Target'),
|
||||||
|
@@ -28648,8 +28660,28 @@
|
||||||
|
name: 'comstar_tg',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Target group'),
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
|
+ bind: { hidden: '{!isComstar}' },
|
||||||
|
allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxcheckbox',
|
||||||
|
+ name: 'freenas_use_ssl',
|
||||||
|
+ reference: 'freenas_use_ssl_field',
|
||||||
|
+ inputId: 'freenas_use_ssl_field',
|
||||||
|
+ checked: false,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ uncheckedValue: 0,
|
||||||
|
+ fieldLabel: gettext('API use SSL')
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'textfield',
|
||||||
|
+ name: 'freenas_user',
|
||||||
|
+ reference: 'freenas_user_field',
|
||||||
|
+ inputId: 'freenas_user_field',
|
||||||
|
+ value: '',
|
||||||
|
+ allowBlank: false,
|
||||||
|
+ fieldLabel: gettext('API Username'),
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@@ -28680,7 +28712,7 @@
|
||||||
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
name: 'comstar_hg',
|
||||||
|
value: '',
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
|
+ bind: { hidden: '{!isComstar}' },
|
||||||
|
fieldLabel: gettext('Host group'),
|
||||||
|
allowBlank: true
|
||||||
|
},
|
||||||
|
@@ -28688,9 +28720,61 @@
|
||||||
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
name: 'lio_tpg',
|
||||||
|
value: '',
|
||||||
|
- bind: me.isCreate ? { disabled: '{!isLIO}' } : { hidden: '{!isLIO}' },
|
||||||
|
- allowBlank: false,
|
||||||
|
- fieldLabel: gettext('Target portal group')
|
||||||
|
+ bind: { hidden: '{!isLIO}' },
|
||||||
|
+ fieldLabel: gettext('Target portal group'),
|
||||||
|
+ allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxtextfield',
|
||||||
|
+ name: 'freenas_apiv4_host',
|
||||||
|
+ reference: 'freenas_apiv4_host_field',
|
||||||
|
+ value: '',
|
||||||
|
+ editable: true,
|
||||||
|
+ deleteEmpty: true,
|
||||||
|
+ allowBlank: true,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('API IPv4 Host'),
|
||||||
|
+ allowBlank: true
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxtextfield',
|
||||||
|
+ name: 'freenas_password',
|
||||||
|
+ reference: 'freenas_password_field',
|
||||||
|
+ inputType: me.isCreate ? '' : 'password',
|
||||||
|
+ value: '',
|
||||||
|
+ editable: true,
|
||||||
|
+ deleteEmpty: true,
|
||||||
|
+ allowBlank: false,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('API Password'),
|
||||||
|
+ change: function(f, value) {
|
||||||
|
+ if (f.rendered) {
|
||||||
|
+ f.up().down('field[name=freenas_confirmpw]').validate();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxtextfield',
|
||||||
|
+ name: 'freenas_confirmpw',
|
||||||
|
+ reference: 'freenas_confirmpw_field',
|
||||||
|
+ inputType: me.isCreate ? '' : 'password',
|
||||||
|
+ value: '',
|
||||||
|
+ editable: true,
|
||||||
|
+ deleteEmpty: true,
|
||||||
|
+ allowBlank: false,
|
||||||
|
+ submitValue: false,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('Confirm Password'),
|
||||||
|
+ validator: function(value) {
|
||||||
|
+ var pw = this.up().down('field[name=freenas_password]').getValue();
|
||||||
|
+ if (pw !== value) {
|
||||||
|
+ return "Passwords do not match!";
|
||||||
|
+ }
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
--- pvemanagerlib-5.2-9.js 2018-10-16 07:17:21.915593478 -0400
|
--- pvemanagerlib-5.2-10.js 2018-10-23 07:18:18.058603386 -0400
|
||||||
+++ pvemanagerlib.js 2018-10-21 00:46:12.524172694 -0400
|
+++ pvemanagerlib.js 2018-10-23 15:29:52.573563883 -0400
|
||||||
@@ -5597,6 +5597,7 @@
|
@@ -5597,6 +5597,7 @@
|
||||||
alias: ['widget.pveiScsiProviderSelector'],
|
alias: ['widget.pveiScsiProviderSelector'],
|
||||||
comboItems: [
|
comboItems: [
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
[ 'istgt', 'istgt'],
|
[ 'istgt', 'istgt'],
|
||||||
[ 'iet', 'IET'],
|
[ 'iet', 'IET'],
|
||||||
[ 'LIO', 'LIO']
|
[ 'LIO', 'LIO']
|
||||||
@@ -28574,6 +28575,7 @@
|
@@ -28583,6 +28584,7 @@
|
||||||
data: {
|
data: {
|
||||||
isLIO: false,
|
isLIO: false,
|
||||||
isComstar: true,
|
isComstar: true,
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
hasWriteCacheOption: true
|
hasWriteCacheOption: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -28586,10 +28588,18 @@
|
@@ -28595,10 +28597,19 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
changeISCSIProvider: function(f, newVal, oldVal) {
|
changeISCSIProvider: function(f, newVal, oldVal) {
|
||||||
|
|
@ -32,16 +32,43 @@
|
||||||
+ me.lookupReference('freenas_apiv4_host_field').setValue('');
|
+ me.lookupReference('freenas_apiv4_host_field').setValue('');
|
||||||
+ me.lookupReference('freenas_user_field').setValue('');
|
+ me.lookupReference('freenas_user_field').setValue('');
|
||||||
+ me.lookupReference('freenas_password_field').setValue('');
|
+ me.lookupReference('freenas_password_field').setValue('');
|
||||||
|
+ me.lookupReference('freenas_confirmpw_field').setValue('');
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -28648,8 +28658,28 @@
|
@@ -28616,6 +28627,7 @@
|
||||||
|
},
|
||||||
|
|
||||||
|
setValues: function diff(values) {
|
||||||
|
+ values.freenas_confirmpw = values.freenas_password;
|
||||||
|
values.writecache = values.nowritecache ? 0 : 1;
|
||||||
|
this.callParent([values]);
|
||||||
|
},
|
||||||
|
@@ -28632,7 +28644,7 @@
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
- xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ xtype: 'textfield',
|
||||||
|
name: 'pool',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Pool'),
|
||||||
|
@@ -28646,7 +28658,7 @@
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
- xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
|
+ xtype: 'textfield',
|
||||||
|
name: 'target',
|
||||||
|
value: '',
|
||||||
|
fieldLabel: gettext('Target'),
|
||||||
|
@@ -28657,8 +28669,28 @@
|
||||||
name: 'comstar_tg',
|
name: 'comstar_tg',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: gettext('Target group'),
|
fieldLabel: gettext('Target group'),
|
||||||
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
+ bind: me.isCreate ? { hidden: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
+ bind: { hidden: '{!isComstar}' },
|
||||||
allowBlank: true
|
allowBlank: true
|
||||||
+ },
|
+ },
|
||||||
+ {
|
+ {
|
||||||
|
|
@ -50,59 +77,91 @@
|
||||||
+ reference: 'freenas_use_ssl_field',
|
+ reference: 'freenas_use_ssl_field',
|
||||||
+ inputId: 'freenas_use_ssl_field',
|
+ inputId: 'freenas_use_ssl_field',
|
||||||
+ checked: false,
|
+ checked: false,
|
||||||
+ bind: me.isCreate ? { hidden: '{!isFreeNAS}' } : { hidden: '{!isFreeNAS}' },
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
+ uncheckedValue: 0,
|
+ uncheckedValue: 0,
|
||||||
+ fieldLabel: gettext('API use SSL')
|
+ fieldLabel: gettext('API use SSL')
|
||||||
+ },
|
+ },
|
||||||
+ {
|
+ {
|
||||||
+ xtype: me.isCreate ? 'textfield' : 'displayfield',
|
+ xtype: 'textfield',
|
||||||
+ name: 'freenas_user',
|
+ name: 'freenas_user',
|
||||||
+ reference: 'freenas_user_field',
|
+ reference: 'freenas_user_field',
|
||||||
+ inputId: 'freenas_user_field',
|
+ inputId: 'freenas_user_field',
|
||||||
+ value: '',
|
+ value: '',
|
||||||
|
+ allowBlank: false,
|
||||||
+ fieldLabel: gettext('API Username'),
|
+ fieldLabel: gettext('API Username'),
|
||||||
+ bind: me.isCreate ? { hidden: '{!isFreeNAS}' } : { hidden: '{!isFreeNAS}' },
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
+ allowBlank: me.isFreeNAS ? false : true
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -28680,7 +28710,7 @@
|
@@ -28689,7 +28721,7 @@
|
||||||
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
name: 'comstar_hg',
|
name: 'comstar_hg',
|
||||||
value: '',
|
value: '',
|
||||||
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
- bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
||||||
+ bind: me.isCreate ? { hidden: '{!isComstar}' } : { hidden: '{!isComstar}' },
|
+ bind: { hidden: '{!isComstar}' },
|
||||||
fieldLabel: gettext('Host group'),
|
fieldLabel: gettext('Host group'),
|
||||||
allowBlank: true
|
allowBlank: true
|
||||||
},
|
},
|
||||||
@@ -28688,9 +28718,27 @@
|
@@ -28697,9 +28729,60 @@
|
||||||
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
xtype: me.isCreate ? 'textfield' : 'displayfield',
|
||||||
name: 'lio_tpg',
|
name: 'lio_tpg',
|
||||||
value: '',
|
value: '',
|
||||||
- bind: me.isCreate ? { disabled: '{!isLIO}' } : { hidden: '{!isLIO}' },
|
- bind: me.isCreate ? { disabled: '{!isLIO}' } : { hidden: '{!isLIO}' },
|
||||||
- allowBlank: false,
|
+ bind: { hidden: '{!isLIO}' },
|
||||||
- fieldLabel: gettext('Target portal group')
|
|
||||||
+ bind: me.isCreate ? { hidden: '{!isLIO}' } : { hidden: '{!isLIO}' },
|
|
||||||
+ fieldLabel: gettext('Target portal group'),
|
+ fieldLabel: gettext('Target portal group'),
|
||||||
+ allowBlank: true
|
+ allowBlank: true
|
||||||
+ },
|
+ },
|
||||||
+ {
|
+ {
|
||||||
+ xtype: me.isCreate ? 'textfield' : 'displayfield',
|
+ xtype: 'proxmoxtextfield',
|
||||||
+ name: 'freenas_apiv4_host',
|
+ name: 'freenas_apiv4_host',
|
||||||
+ reference: 'freenas_apiv4_host_field',
|
+ reference: 'freenas_apiv4_host_field',
|
||||||
+ value: '',
|
+ value: '',
|
||||||
+ bind: me.isCreate ? { hidden: '{!isFreeNAS}' } : { hidden: '{!isFreeNAS}' },
|
+ editable: true,
|
||||||
|
+ allowBlank: true,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
+ fieldLabel: gettext('API IPv4 Host'),
|
+ fieldLabel: gettext('API IPv4 Host'),
|
||||||
+ allowBlank: true
|
+ allowBlank: true
|
||||||
+ },
|
+ },
|
||||||
+ {
|
+ {
|
||||||
+ xtype: me.isCreate ? 'textfield' : 'displayfield',
|
+ xtype: 'proxmoxtextfield',
|
||||||
+ name: 'freenas_password',
|
+ name: 'freenas_password',
|
||||||
+ reference: 'freenas_password_field',
|
+ reference: 'freenas_password_field',
|
||||||
|
+ inputType: me.isCreate ? '' : 'password',
|
||||||
+ value: '',
|
+ value: '',
|
||||||
+ bind: me.isCreate ? { hidden: '{!isFreeNAS}' } : { hidden: '{!isFreeNAS}' },
|
+ editable: true,
|
||||||
|
+ deleteEmpty: true,
|
||||||
|
+ allowBlank: false,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
+ fieldLabel: gettext('API Password'),
|
+ fieldLabel: gettext('API Password'),
|
||||||
+ allowBlank: true
|
+ change: function(f, value) {
|
||||||
|
+ if (f.rendered) {
|
||||||
|
+ f.up().down('field[name=freenas_confirmpw]').validate();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ },
|
||||||
|
+ {
|
||||||
|
+ xtype: 'proxmoxtextfield',
|
||||||
|
+ name: 'freenas_confirmpw',
|
||||||
|
+ reference: 'freenas_confirmpw_field',
|
||||||
|
+ inputType: me.isCreate ? '' : 'password',
|
||||||
|
+ value: '',
|
||||||
|
+ editable: true,
|
||||||
|
+ deleteEmpty: true,
|
||||||
|
allowBlank: false,
|
||||||
|
- fieldLabel: gettext('Target portal group')
|
||||||
|
+ submitValue: false,
|
||||||
|
+ emptyText: Proxmox.Utils.noneText,
|
||||||
|
+ bind: { hidden: '{!isFreeNAS}' },
|
||||||
|
+ fieldLabel: gettext('Confirm Password'),
|
||||||
|
+ validator: function(value) {
|
||||||
|
+ var pw = this.up().down('field[name=freenas_password]').getValue();
|
||||||
|
+ if (pw !== value) {
|
||||||
|
+ return "Passwords do not match!";
|
||||||
|
+ }
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue