From 8c93faf917496b1664ef2845faddb4387ccd15c3 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Thu, 15 Nov 2018 13:20:10 +0100 Subject: [PATCH] ui: rbd: storage: obsolete strange getBinds binding assembly this was added for our (also in other places used): > xtype: me.isCreate ? 'pveCephPoolSelector' : 'displayfield', construct. But as displayfield does not has a submitValue setter we cannot bind it generally. So add such a setter with a small override and declare the bindings direct when declaring the items, less side effects and all the configurations for an item stays in the same place. Signed-off-by: Thomas Lamprecht --- www/manager6/Toolkit.js | 9 ++++++++ www/manager6/storage/RBDEdit.js | 39 ++++++++++++++++----------------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/www/manager6/Toolkit.js b/www/manager6/Toolkit.js index 0c9364bd..55b127c5 100644 --- a/www/manager6/Toolkit.js +++ b/www/manager6/Toolkit.js @@ -27,3 +27,12 @@ Ext.apply(Ext.form.field.VTypes, { IP64AddressListText: gettext('Example') + ': 192.168.1.1,192.168.1.2', IP64AddressListMask: /[A-Fa-f0-9\,\:\.\;\ ]/ }); + +Ext.define('PVE.form.field.Display', { + override: 'Ext.form.field.Display', + + setSubmitValue: function(value) { + // do nothing, this is only to allow generalized bindings for the: + // `me.isCreate ? 'textfield' : 'displayfield'` cases we have. + } +}); diff --git a/www/manager6/storage/RBDEdit.js b/www/manager6/storage/RBDEdit.js index 22efef10..c38759df 100644 --- a/www/manager6/storage/RBDEdit.js +++ b/www/manager6/storage/RBDEdit.js @@ -98,28 +98,16 @@ Ext.define('PVE.storage.RBDInputPanel', { } me.type = 'rbd'; - var getBinds = function (activeIfPVECeph, hide) { - var bind = { - disabled: activeIfPVECeph ? '{!pveceph}' : '{pveceph}' - }; - - // displayfield has no submitValue and bind mixin cannot handle that - if (me.isCreate) { - bind.submitValue = activeIfPVECeph ? '{pveceph}' : '{!pveceph}'; - } - if (hide) { - bind.hidden = activeIfPVECeph ? '{!pveceph}' : '{pveceph}'; - } - - return bind; - }; - me.column1 = [ { xtype: me.isCreate ? 'pveCephPoolSelector' : 'displayfield', nodename: me.nodename, name: 'pool', - bind: getBinds(true, true), + bind: { + disabled: '{!pveceph}', + submitValue: '{pveceph}', + hidden: '{!pveceph}' + }, fieldLabel: gettext('Pool'), allowBlank: false }, @@ -127,7 +115,11 @@ Ext.define('PVE.storage.RBDInputPanel', { xtype: me.isCreate ? 'textfield' : 'displayfield', name: 'pool', value: 'rbd', - bind: getBinds(false, true), + bind: { + disabled: '{pveceph}', + submitValue: '{!pveceph}', + hidden: '{pveceph}' + }, fieldLabel: gettext('Pool'), allowBlank: false }, @@ -135,7 +127,11 @@ Ext.define('PVE.storage.RBDInputPanel', { xtype: 'textfield', name: 'monhost', vtype: 'HostList', - bind: getBinds(false, true), + bind: { + disabled: '{pveceph}', + submitValue: '{!pveceph}', + hidden: '{pveceph}' + }, value: '', fieldLabel: 'Monitor(s)', allowBlank: false @@ -153,7 +149,10 @@ Ext.define('PVE.storage.RBDInputPanel', { { xtype: me.isCreate ? 'textfield' : 'displayfield', name: 'username', - bind: me.isCreate ? getBinds(false) : {}, + bind: { + disabled: '{pveceph}', + submitValue: '{!pveceph}' + }, value: 'admin', fieldLabel: gettext('User name'), allowBlank: true