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

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Dec 11 16:26:16 CET 2017


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);
+	    }
+	}
+    },
+
     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
     }
 });
-- 
2.11.0





More information about the pve-devel mailing list