[pve-devel] [RFC manager 27/28] RealmComboBox: use schematic declaration and ViewController

Dominik Csapak d.csapak at proxmox.com
Fri Dec 15 10:25:13 CET 2017


On 12/11/2017 04:26 PM, Thomas Lamprecht wrote:
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
>   www/manager6/form/RealmComboBox.js | 53 +++++++++++++++++++-------------------
>   1 file changed, 26 insertions(+), 27 deletions(-)
> 
> diff --git a/www/manager6/form/RealmComboBox.js b/www/manager6/form/RealmComboBox.js
> index 8d0c71a8..39c47329 100644
> --- a/www/manager6/form/RealmComboBox.js
> +++ b/www/manager6/form/RealmComboBox.js
> @@ -1,7 +1,30 @@
> +/*global Proxmox*/
>   Ext.define('PVE.form.RealmComboBox', {
>       extend: 'Ext.form.field.ComboBox',
>       alias: ['widget.pveRealmComboBox'],
>   
> +    controller: {
> +	xclass: 'Ext.app.ViewController',
> +
> +	init: function(view) {
> +	    view.store.on('load', this.onLoad, view);
> +	},
> +
> +	onLoad: function(store, records, success) {
> +	    var me = this;
> +	    var val = me.getValue();
> +	    if (!val || !me.store.findRecord('realm', val)) {
> +		var def = 'pam';
> +		Ext.each(records, function(rec) {
> +		    if (rec.data && rec.data['default']) {
> +			def = rec.data.realm;
> +		    }
> +		});
> +		me.setValue(def);
> +	    }
> +	}

here the success check is missing, should not break anything, but i 
would prefer to leave it in

> +    },
> +
>       fieldLabel: gettext('Realm'),
>       name: 'realm',
>       queryMode: 'local',
> @@ -32,32 +55,8 @@ Ext.define('PVE.form.RealmComboBox', {
>   	return rec && rec.data && rec.data.tfa ? rec.data.tfa : undefined;
>       },
>   
> -    initComponent: function() {
> -	var me = this;
> -
> -	me.store = Ext.create('Ext.data.Store', {
> -	    model: 'pve-domains'
> -	});
> -
> -	me.callParent();
> -
> -	me.store.load({
> -	    callback: function(r, o, success) {
> -		if (success) {
> -		    var def = me.getValue();
> -		    if (!def || !me.store.findRecord('realm', def)) {
> -			def = 'pam';
> -			Ext.each(r, function(record) {
> -			    if (record.data && record.data["default"]) {
> -				def = record.data.realm;
> -			    }
> -			});
> -		    }
> -		    if (def) {
> -			me.setValue(def);
> -		    }
> -		}
> -	    }
> -	});
> +    store: {
> +	model: 'pve-domains',
> +	autoLoad: true
>       }
>   });
> 





More information about the pve-devel mailing list