From 0b305512c597243371ae4a4f91196a0a20567559 Mon Sep 17 00:00:00 2001 From: shaldengeki Date: Fri, 8 Jun 2012 10:32:49 -0500 Subject: [PATCH 1/2] trigger change on data-update elements upon selection. --- lib/assets/javascripts/autocomplete-rails.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/assets/javascripts/autocomplete-rails.js b/lib/assets/javascripts/autocomplete-rails.js index 31be99bb..31adc9d1 100644 --- a/lib/assets/javascripts/autocomplete-rails.js +++ b/lib/assets/javascripts/autocomplete-rails.js @@ -13,4 +13,4 @@ * Example: * */ -(function(a){var b=null;a.fn.railsAutocomplete=function(){return this.live("focus",function(){this.railsAutoCompleter||(this.railsAutoCompleter=new a.railsAutocomplete(this))})},a.railsAutocomplete=function(a){_e=a,this.init(_e)},a.railsAutocomplete.fn=a.railsAutocomplete.prototype={railsAutocomplete:"0.0.1"},a.railsAutocomplete.fn.extend=a.railsAutocomplete.extend=a.extend,a.railsAutocomplete.fn.extend({init:function(b){function c(a){return a.split(b.delimiter)}function d(a){return c(a).pop().replace(/^\s+/,"")}b.delimiter=a(b).attr("data-delimiter")||null,a(b).autocomplete({source:function(c,f){a.getJSON(a(b).attr("data-autocomplete"),{term:d(c.term)},function(){a(arguments[0]).each(function(c,d){var f={};f[d.id]=d,a(b).data(f)}),f.apply(null,arguments)})},search:function(){var a=d(this.value);if(a.length<2)return!1},focus:function(){return!1},select:function(d,f){var g=c(this.value);g.pop(),g.push(f.item.value);if(b.delimiter!=null)g.push(""),this.value=g.join(b.delimiter);else{this.value=g.join(""),a(this).attr("data-id-element")&&a(a(this).attr("data-id-element")).val(f.item.id);if(a(this).attr("data-update-elements")){var h=a(this).data(f.item.id.toString()),i=a.parseJSON(a(this).attr("data-update-elements"));for(var j in i)a(i[j]).val(h[j])}}var k=this.value;return a(this).bind("keyup.clearId",function(){a(this).val().trim()!=k.trim()&&(a(a(this).attr("data-id-element")).val(""),a(this).unbind("keyup.clearId"))}),a(this).trigger("railsAutocomplete.select",f),!1}})}}),a(document).ready(function(){a("input[data-autocomplete]").railsAutocomplete()})})(jQuery); \ No newline at end of file +(function(a){var b=null;a.fn.railsAutocomplete=function(){return this.live("focus",function(){if(!this.railsAutoCompleter){this.railsAutoCompleter=new a.railsAutocomplete(this)}})};a.railsAutocomplete=function(a){_e=a;this.init(_e)};a.railsAutocomplete.fn=a.railsAutocomplete.prototype={railsAutocomplete:"0.0.1"};a.railsAutocomplete.fn.extend=a.railsAutocomplete.extend=a.extend;a.railsAutocomplete.fn.extend({init:function(b){function c(a){return a.split(b.delimiter)}function d(a){return c(a).pop().replace(/^\s+/,"")}b.delimiter=a(b).attr("data-delimiter")||null;a(b).autocomplete({source:function(c,f){a.getJSON(a(b).attr("data-autocomplete"),{term:d(c.term)},function(){a(arguments[0]).each(function(c,d){var f={};f[d.id]=d;a(b).data(f)});f.apply(null,arguments)})},search:function(){var a=d(this.value);if(a.length<2){return false}},focus:function(){return false},select:function(d,f){var g=c(this.value);g.pop();g.push(f.item.value);if(b.delimiter!=null){g.push("");this.value=g.join(b.delimiter)}else{this.value=g.join("");if(a(this).attr("data-id-element")){a(a(this).attr("data-id-element")).val(f.item.id)}if(a(this).attr("data-update-elements")){var h=a(this).data(f.item.id.toString());var i=a.parseJSON(a(this).attr("data-update-elements"));for(var j in i){a(i[j]).val(h[j]);a(i[j]).trigger("change")}}}var k=this.value;a(this).bind("keyup.clearId",function(){if(a(this).val().trim()!=k.trim()){a(a(this).attr("data-id-element")).val("");a(this).unbind("keyup.clearId")}});a(this).trigger("railsAutocomplete.select",f);return false}})}});a(document).ready(function(){a("input[data-autocomplete]").railsAutocomplete()})})(jQuery) \ No newline at end of file From 53be07fcf381d259886b0c1e5d98343d2e79ad40 Mon Sep 17 00:00:00 2001 From: shaldengeki Date: Fri, 8 Jun 2012 10:55:56 -0500 Subject: [PATCH 2/2] whoops, forgot to change the uncompressed js as well. --- lib/assets/javascripts/autocomplete-rails-uncompressed.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/assets/javascripts/autocomplete-rails-uncompressed.js b/lib/assets/javascripts/autocomplete-rails-uncompressed.js index 5b23fbf5..f4d8d877 100644 --- a/lib/assets/javascripts/autocomplete-rails-uncompressed.js +++ b/lib/assets/javascripts/autocomplete-rails-uncompressed.js @@ -83,12 +83,14 @@ this.value = terms.join(""); if (jQuery(this).attr('data-id-element')) { jQuery(jQuery(this).attr('data-id-element')).val(ui.item.id); + jQuery(update_elements[key]).trigger('change'); } if (jQuery(this).attr('data-update-elements')) { var data = jQuery(this).data(ui.item.id.toString()); var update_elements = jQuery.parseJSON(jQuery(this).attr("data-update-elements")); for (var key in update_elements) { jQuery(update_elements[key]).val(data[key]); + jQuery(update_elements[key]).trigger('change'); } } } @@ -110,4 +112,4 @@ jQuery(document).ready(function(){ jQuery('input[data-autocomplete]').railsAutocomplete(); }); -})(jQuery); +})(jQuery); \ No newline at end of file