[pve-devel] [PATCH manager] add kvcombobox validator

Dominik Csapak d.csapak at proxmox.com
Fri Nov 18 10:13:37 CET 2016


this enables validation of all kvcomboboxes, including
multiselect

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 www/manager6/form/KVComboBox.js | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/www/manager6/form/KVComboBox.js b/www/manager6/form/KVComboBox.js
index beafed0..a135f4d 100644
--- a/www/manager6/form/KVComboBox.js
+++ b/www/manager6/form/KVComboBox.js
@@ -33,6 +33,28 @@ Ext.define('PVE.form.KVComboBox', {
         return data;
     },
 
+    validator: function(val) {
+	var me = this;
+
+	if (me.editable || val === null || val === '') {
+	    return true;
+	}
+
+	if (me.comboItems) {
+	    var values = me.multiSelect ? val.split(me.delimiter) : [val];
+	    var items = Ext.Array.pluck(me.comboItems, 1);
+	    if (Ext.Array.every(values, function(value) {
+		return Ext.Array.contains(items, value);
+	    })) {
+		return true;
+	    }
+	}
+
+	// returns a boolean or string
+	/*jslint confusion: true */
+	return "value '" + val + "' not allowed!";
+    },
+
     initComponent: function() {
 	var me = this;
 
-- 
2.1.4





More information about the pve-devel mailing list