From 8919126c6f7e02d11b3ec401437b9dd208b4a0b6 Mon Sep 17 00:00:00 2001 From: Renaud Le Gac <legac@cppm.in2p3.fr> Date: Fri, 22 Nov 2013 14:05:35 +0100 Subject: [PATCH] ExtJS 4.2: polsih the ComboBoxSlave and test several slaves. --- models/widgets_forms.py | 10 +++++----- static/plugin_dbui/src/comboboxslave.js | 12 ++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/models/widgets_forms.py b/models/widgets_forms.py index cb567ccd..6083ad13 100644 --- a/models/widgets_forms.py +++ b/models/widgets_forms.py @@ -25,11 +25,11 @@ dbui.configure_forms(db, plugins=['pFormToolTip']) # # harvester selector # -# formModifier = dbui.FormModifier('harvester_selector') -# formModifier.link_comboboxes(master=virtdb.harvester_selector.id_projects, -# slave=virtdb.harvester_selector.controller, -# masterHasSlaveData='harvesters') -# +formModifier = dbui.FormModifier('harvester_selector') +formModifier.link_comboboxes(master=virtdb.harvester_selector.id_projects, + slave=virtdb.harvester_selector.controller, + masterHasSlaveData='harvesters') + formModifier = dbui.FormModifier('harvester_selector') formModifier.link_comboboxes(master=virtdb.harvester_selector.id_projects, slave=virtdb.harvester_selector.id_teams, diff --git a/static/plugin_dbui/src/comboboxslave.js b/static/plugin_dbui/src/comboboxslave.js index 614a3954..4fef13b4 100644 --- a/static/plugin_dbui/src/comboboxslave.js +++ b/static/plugin_dbui/src/comboboxslave.js @@ -149,6 +149,8 @@ Ext.define('App.form.field.ComboBoxSlave', { /** * Select the authorized slave values. + * When the number of authorized value is equal to 1, the + * value is loaded in the slave. * * @param {Ext.form.field.ComboBox} combo * @param {Ext.data.Model[]} records @@ -160,10 +162,20 @@ Ext.define('App.form.field.ComboBoxSlave', { var value = records[0].get(this.masterValueField); + // clear previous filter this.store.clearFilter(true); this.reset(); + + // filter the local store this.store.filter(this.masterValueField, value); + + // enable the widget this.setDisabled(false); + + // load the value when there is only one + if (this.store.getCount() === 1) { + this.setValue(this.store.getAt(0).get(this.valueField)); + } }, /** -- GitLab