From 6671f4090ab4d0fea10355f91a44991724e08a32 Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Tue, 31 Mar 2015 16:23:41 +0000 Subject: [PATCH] - Fix missing onchange trigger on selectboxes - Avoid loops caused by onchange trigger when applying filters --- etemplate/js/et2_extension_nextmatch.js | 6 ++++++ etemplate/js/et2_widget_selectbox.js | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/etemplate/js/et2_extension_nextmatch.js b/etemplate/js/et2_extension_nextmatch.js index 7c214ceeb9..3968513c94 100644 --- a/etemplate/js/et2_extension_nextmatch.js +++ b/etemplate/js/et2_extension_nextmatch.js @@ -405,6 +405,10 @@ var et2_nextmatch = et2_DOMWidget.extend([et2_IResizeable, et2_IInput, et2_IPrin applyFilters: function(_set) { var changed = false; + // Avoid loops cause by change events + if(this.update_in_progress) return; + this.update_in_progress = true; + // Cleared explicitly if(typeof _set != 'undefined' && jQuery.isEmptyObject(_set)) { @@ -496,6 +500,8 @@ var et2_nextmatch = et2_DOMWidget.extend([et2_IResizeable, et2_IInput, et2_IPrin // Trigger an update this.controller.update(true); + + this.update_in_progress = false; }, /** diff --git a/etemplate/js/et2_widget_selectbox.js b/etemplate/js/et2_widget_selectbox.js index 5b1a08cfc7..4f9fe0fcaf 100644 --- a/etemplate/js/et2_widget_selectbox.js +++ b/etemplate/js/et2_widget_selectbox.js @@ -447,6 +447,7 @@ var et2_selectbox = et2_inputWidget.extend( // No options set yet this.set_select_options(this.options.select_options); } + this._oldValue = this.value; if(this.input !== null && (this.options.tags || this.options.search)) { // Value must be a real Array, not an object @@ -499,7 +500,10 @@ var et2_selectbox = et2_inputWidget.extend( return; } } - + if(this.isAttached() && this._oldValue !== et2_no_init && this._oldValue !== _value) + { + this.input.change(); + } this.value = _value; },