From 18e593e1d5fbaa183f43dea76af4bfadcf8a960f Mon Sep 17 00:00:00 2001 From: Fred Wu Date: Fri, 8 Feb 2013 15:50:02 +1100 Subject: [PATCH 1/5] Fixed broken callback, and the default value for chosenOptions should be an object rather than a function --- lib/ajax-chosen.js | 7 ++---- lib/ajax-chosen.min.js | 5 ++--- src/ajax-chosen.coffee | 48 +++++++++++++++++++++--------------------- 3 files changed, 28 insertions(+), 32 deletions(-) diff --git a/lib/ajax-chosen.js b/lib/ajax-chosen.js index 96f0f91..d7b4659 100644 --- a/lib/ajax-chosen.js +++ b/lib/ajax-chosen.js @@ -6,11 +6,8 @@ if (settings == null) { settings = {}; } - if (callback == null) { - callback = {}; - } if (chosenOptions == null) { - chosenOptions = function() {}; + chosenOptions = {}; } defaultOptions = { minTermLength: 3, @@ -65,7 +62,7 @@ select.find('optgroup:empty').each(function() { return $(this).remove(); }); - items = callback(data); + items = callback != null ? callback(data) : data; nbItems = 0; $.each(items, function(i, element) { var group, text, value; diff --git a/lib/ajax-chosen.min.js b/lib/ajax-chosen.min.js index 46861d4..ceae1d6 100644 --- a/lib/ajax-chosen.min.js +++ b/lib/ajax-chosen.min.js @@ -1,14 +1,13 @@ (function($){return $.fn.ajaxChosen=function(settings,callback,chosenOptions){var chosenXhr,defaultOptions,options,select;if(settings==null){settings={};} -if(callback==null){callback={};} -if(chosenOptions==null){chosenOptions=function(){};} +if(chosenOptions==null){chosenOptions={};} defaultOptions={minTermLength:3,afterTypeDelay:500,jsonTermKey:"term",keepTypingMsg:"Keep typing...",lookingForMsg:"Looking for"};select=this;chosenXhr=null;options=$.extend({},defaultOptions,$(select).data(),settings);this.chosen(chosenOptions?chosenOptions:{});return this.each(function(){return $(this).next('.chzn-container').find(".search-field > input, .chzn-search > input").bind('keyup',function(){var field,msg,success,untrimmed_val,val;untrimmed_val=$(this).val();val=$.trim($(this).val());msg=val.length");} +selected_values=[];select.find('option').each(function(){if(!$(this).is(":selected")){return $(this).remove();}else{return selected_values.push($(this).val()+"-"+$(this).text());}});select.find('optgroup:empty').each(function(){return $(this).remove();});items=callback!=null?callback(data):data;nbItems=0;$.each(items,function(i,element){var group,text,value;nbItems++;if(element.group){group=select.find("optgroup[label='"+element.text+"']");if(!group.size()){group=$("");} group.attr('label',element.text).appendTo(select);return $.each(element.items,function(i,element){var text,value;if(typeof element==="string"){value=i;text=element;}else{value=element.value;text=element.text;} if($.inArray(value+"-"+text,selected_values)===-1){return $("