[pve-devel] [PATCH] ext5migrate: pass configuration to KVCombBox via config object

Emmanuel Kasper e.kasper at proxmox.com
Wed Aug 5 11:02:48 CEST 2015


Since ExtJS5, when doing such a declaration,

	Ext.applyIf(me, {
	    items: {
		xtype: 'pveKVComboBox',
		comboItems: data,
	    }
	});

the comboItems property is passed in the parent class as a config object,
instead of being directly available via this.comboItems

Since using a config object is the recommended way of passing parameters
int the ExtJS class model, adapt the parent class to use the new paradigm.
---
 www/manager5/dc/OptionView.js            |  4 ++--
 www/manager5/form/KVComboBox.js          | 13 +++++++++++--
 www/manager5/form/LanguageSelector.js    |  7 ++-----
 www/manager5/form/VNCKeyboardSelector.js |  7 ++-----
 4 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/www/manager5/dc/OptionView.js b/www/manager5/dc/OptionView.js
index 81eab6f..043c7fd 100644
--- a/www/manager5/dc/OptionView.js
+++ b/www/manager5/dc/OptionView.js
@@ -62,9 +62,9 @@ Ext.define('PVE.dc.ConsoleViewerEdit', {
 	    items: {
 		xtype: 'pveKVComboBox',
 		name: 'console',
-		data: data,
 		value: '',
-		fieldLabel: gettext('Console Viewer')
+		fieldLabel: gettext('Console Viewer'),
+		comboItems: data,
 	    }
 	});
 
diff --git a/www/manager5/form/KVComboBox.js b/www/manager5/form/KVComboBox.js
index cc25877..b6c6662 100644
--- a/www/manager5/form/KVComboBox.js
+++ b/www/manager5/form/KVComboBox.js
@@ -1,9 +1,17 @@
+/* Key-Value ComboBox
+ *
+ * config properties:
+ * comboItems: an array of Key - Value pairs
+ */
 Ext.define('PVE.form.KVComboBox', {
     extend: 'Ext.form.field.ComboBox',
     alias: 'widget.pveKVComboBox',
 
     deleteEmpty: true,
-    
+    config: {
+        comboItems: undefined
+    },
+
     getSubmitData: function() {
         var me = this,
             data = null,
@@ -23,10 +31,11 @@ Ext.define('PVE.form.KVComboBox', {
 
     initComponent: function() {
 	var me = this;
+	debugger;
 
 	me.store = Ext.create('Ext.data.ArrayStore', {
 	    model: 'KeyValue',
-	    data : me.data
+	    data : me.getComboItems(),
 	});
 
 	if (me.initialConfig.editable === undefined) {
diff --git a/www/manager5/form/LanguageSelector.js b/www/manager5/form/LanguageSelector.js
index 9d4ca4c..50157bf 100644
--- a/www/manager5/form/LanguageSelector.js
+++ b/www/manager5/form/LanguageSelector.js
@@ -1,10 +1,7 @@
 Ext.define('PVE.form.LanguageSelector', {
     extend: 'PVE.form.KVComboBox',
     alias: ['widget.pveLanguageSelector'],
-  
-    initComponent: function() {
-	var me = this;
-	me.data = PVE.Utils.language_array();
-	me.callParent();
+    config: {
+        comboItems: PVE.Utils.language_array()
     }
 });
diff --git a/www/manager5/form/VNCKeyboardSelector.js b/www/manager5/form/VNCKeyboardSelector.js
index 37fe976..c69b205 100644
--- a/www/manager5/form/VNCKeyboardSelector.js
+++ b/www/manager5/form/VNCKeyboardSelector.js
@@ -1,10 +1,7 @@
 Ext.define('PVE.form.VNCKeyboardSelector', {
     extend: 'PVE.form.KVComboBox',
     alias: ['widget.VNCKeyboardSelector'],
-  
-    initComponent: function() {
-	var me = this;
-	me.data = PVE.Utils.kvm_keymap_array();
-	me.callParent();
+    config: {
+        comboItems: PVE.Utils.kvm_keymap_array()
     }
 });
-- 
2.1.4





More information about the pve-devel mailing list