From: <nat...@us...> - 2012-03-30 20:21:06
|
Author: nathangray Date: Fri Mar 30 22:17:53 2012 New Revision: 38729 URL: http://svn.stylite.de/viewvc/egroupware?rev=38729&view=rev Log: Get nextmatch filters with legacy JS working Modified: trunk/etemplate/js/et2_extension_nextmatch.js Modified: trunk/etemplate/js/et2_extension_nextmatch.js URL: http://svn.stylite.de/viewvc/egroupware/trunk/etemplate/js/et2_extension_nextmatch.js?rev=38729&r1=38728&r2=38729&view=diff ============================================================================== --- trunk/etemplate/js/et2_extension_nextmatch.js (original) +++ trunk/etemplate/js/et2_extension_nextmatch.js Fri Mar 30 22:17:53 2012 @@ -1065,7 +1065,7 @@ _build_select: function(name, type, value, lang) { // Create widget var select = et2_createWidget(type, { - "id": this.nextmatch.id + "_"+name, + "id": name, "label": this.nextmatch.options.settings[name+"_label"] },this); @@ -1084,14 +1084,27 @@ // Set onChange var input = select.input; - if (this.nextmatch.options.settings[name+"_onchange"] && - !this.nextmatch.options.settings[name+"_onchange"].match('/^this\.form\.submit();?$/')) - { + + if (this.nextmatch.options.settings[name+"_onchange"]) + { + // Make sure to get the new value for filtering + input.change(this.nextmatch, function(event) { + event.data.activeFilters[name] = select.getValue(); + event.data.applyFilters(); + }); + // Get the onchange function string - var onchange = this.nextmatch.options.settings[name+"_onchange"]; - - // Connect it to the onchange event of the input element - input.change(this.nextmatch, et2_compileLegacyJS(onchange, this.nextmatch, input)); + var onchange = this.nextmatch.options.settings[name+"_onchange"] + + // Real submits cause all sorts of problems + if(onchange.match(/this\.form\.submit/)) + { + this.egw().debug("warn","%s tries to submit form",name); + onchange = onchange.replace(/this\.form\.submit\([^)]*\);?/,'return true;'); + } + + // Connect it to the onchange event of the input element - may submit + input.change(this.nextmatch, et2_compileLegacyJS(onchange, this.nextmatch, select.getInputNode())); } else // default request changed rows with new filters, previous this.form.submit() { |