rails4-autocomplete 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c21b5d524e9bed8533d92a81ba337d0b067420b
|
4
|
+
data.tar.gz: 5f3b5e99e9893bbd46f03d0071b5928fe7c62278
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8ff6429852f75b60f14bf598380ae7292fbb016d42cbda9e49834e9c85bc21bd72bf2ad202518d52a96011b1f26f29626883ff30b1b40557654523fca6db05e
|
7
|
+
data.tar.gz: 5bb896d91d017978d73559e8b9d9d5a411d388552846b58ad50f9b90ef29cd465335e6efcaee6d17d9fa3a81561d000c14b878b66cb5cb0b8c53723d8f4700a7
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Changelog
|
2
2
|
* 1.1.0 Fixed issue with options initialization, options now used only with initialization by specific input id
|
3
|
+
* 1.0.9 Fixed a problem in the change function. It was trying to parse as JSON a undefined value
|
3
4
|
* 1.0.8 Options can be passed to jQuery autocomplete initializer
|
4
5
|
* 1.0.7
|
5
6
|
* mongoid: escape regular expression in search
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
## Status
|
2
|
+
[![Build Status](https://secure.travis-ci.org/peterwillcn/rails4-autocomplete.png)](http://travis-ci.org/peterwillcn/rails4-autocomplete.png)
|
2
3
|
|
3
4
|
Unfortunately, I don't have much time to work on this gem, I'm looking for
|
4
5
|
someone to help with its maintenance. Send me an email if you are interested in
|
@@ -246,6 +247,13 @@ A javascript event named *railsAutocomplete.select* is fired on the input field
|
|
246
247
|
alert(data.item.id);
|
247
248
|
});
|
248
249
|
|
250
|
+
### Custom message when not results are found
|
251
|
+
|
252
|
+
You can pass a custom message for when there is not results found. For this the element must have a data attribute named ```data-autocomplete-label```. For example:
|
253
|
+
|
254
|
+
autocomplete_field_tag 'address', '', address_autocomplete_path, :size => 75,
|
255
|
+
:"data-autocomplete-label" => "Sorry, nothing found."
|
256
|
+
|
249
257
|
## Formtastic
|
250
258
|
|
251
259
|
If you are using [Formtastic](http://github.com/justinfrench/formtastic), you automatically get the *autocompleted_input* helper on *semantic_form_for*:
|
@@ -39,7 +39,7 @@
|
|
39
39
|
};
|
40
40
|
|
41
41
|
jQuery.railsAutocomplete.fn = jQuery.railsAutocomplete.prototype = {
|
42
|
-
railsAutocomplete: '0.0.
|
42
|
+
railsAutocomplete: '0.0.2'
|
43
43
|
};
|
44
44
|
|
45
45
|
jQuery.railsAutocomplete.fn.extend = jQuery.railsAutocomplete.extend = jQuery.extend;
|
@@ -59,8 +59,12 @@
|
|
59
59
|
term: extractLast( request.term )
|
60
60
|
}, function() {
|
61
61
|
if(arguments[0].length == 0) {
|
62
|
-
|
63
|
-
|
62
|
+
var label = "No existing matches";
|
63
|
+
if(jQuery(e).attr('data-autocomplete-label') !== undefined) {
|
64
|
+
label = jQuery(e).attr('data-autocomplete-label');
|
65
|
+
}
|
66
|
+
arguments[0] = []
|
67
|
+
arguments[0][0] = { id: "", label: label }
|
64
68
|
}
|
65
69
|
jQuery(arguments[0]).each(function(i, el) {
|
66
70
|
var obj = {};
|
@@ -75,7 +79,10 @@
|
|
75
79
|
return;
|
76
80
|
}
|
77
81
|
jQuery(jQuery(this).attr('data-id-element')).val(ui.item ? ui.item.id : "");
|
78
|
-
|
82
|
+
var update_elements = false;
|
83
|
+
if (jQuery(this).attr('data-update-elements')) {
|
84
|
+
update_elements = jQuery.parseJSON(jQuery(this).attr("data-update-elements"));
|
85
|
+
}
|
79
86
|
var data = ui.item ? jQuery(this).data(ui.item.id.toString()) : {};
|
80
87
|
if(update_elements && jQuery(update_elements['id']).val() == "") {
|
81
88
|
return;
|
@@ -99,8 +106,10 @@
|
|
99
106
|
var terms = split( this.value );
|
100
107
|
// remove the current input
|
101
108
|
terms.pop();
|
102
|
-
// add the selected item
|
103
|
-
|
109
|
+
// add the selected item only if it has something
|
110
|
+
if (ui.item.id != ""){
|
111
|
+
terms.push( ui.item.value );
|
112
|
+
}
|
104
113
|
// add placeholder to get the comma-and-space at the end
|
105
114
|
if (e.delimiter != null) {
|
106
115
|
terms.push( "" );
|
@@ -1 +1 @@
|
|
1
|
-
(function(jQuery){var self=null;var options={};jQuery.fn.railsAutocomplete=function(){var handler=function(){if(!this.railsAutoCompleter){this.railsAutoCompleter=new jQuery.railsAutocomplete(this)}};options[this.selector.replace("#","")]=arguments[0];if(jQuery.fn.on!==undefined){return $(document).on("focus",this.selector,handler)}else{return this.live("focus",handler)}};jQuery.railsAutocomplete=function(e){_e=e;this.init(_e)};jQuery.railsAutocomplete.fn=jQuery.railsAutocomplete.prototype={railsAutocomplete:"0.0.1"};jQuery.railsAutocomplete.fn.extend=jQuery.railsAutocomplete.extend=jQuery.extend;jQuery.railsAutocomplete.fn.extend({init:function(e){e.delimiter=jQuery(e).attr("data-delimiter")||null;function split(val){return val.split(e.delimiter)}function extractLast(term){return split(term).pop().replace(/^\s+/,"")}jQuery(e).autocomplete($.extend({source:function(request,response){jQuery.getJSON(jQuery(e).attr("data-autocomplete"),{term:extractLast(request.term)},function(){if(arguments[0].length==0){arguments[0]=[];arguments[0][0]={id:"",label:"no existing match"}}jQuery(arguments[0]).each(function(i,el){var obj={};obj[el.id]=el;jQuery(e).data(obj)});response.apply(null,arguments)})},change:function(event,ui){if(jQuery(jQuery(this).attr("data-id-element")).val()==""){return}jQuery(jQuery(this).attr("data-id-element")).val(ui.item?ui.item.id:"");var update_elements=jQuery.parseJSON(jQuery(this).attr("data-update-elements"));var data=ui.item?jQuery(this).data(ui.item.id.toString()):{};if(update_elements&&jQuery(update_elements.id).val()==""){return}for(var key in update_elements){jQuery(update_elements[key]).val(ui.item?data[key]:"")}},search:function(){var term=extractLast(this.value);if(term.length<2){return false}},focus:function(){return false},select:function(event,ui){var terms=split(this.value);terms.pop();terms.push(ui.item.value);if(e.delimiter!=null){terms.push("");this.value=terms.join(e.delimiter)}else{this.value=terms.join("");if(jQuery(this).attr("data-id-element")){jQuery(jQuery(this).attr("data-id-element")).val(ui.item.id)}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])}}}var remember_string=this.value;jQuery(this).bind("keyup.clearId",function(){if(jQuery(this).val().trim()!=remember_string.trim()){jQuery(jQuery(this).attr("data-id-element")).val("");jQuery(this).unbind("keyup.clearId")}});jQuery(e).trigger("railsAutocomplete.select",ui);return false}},options[e.id]))}});jQuery(document).ready(function(){jQuery("input[data-autocomplete]").railsAutocomplete()})})(jQuery);
|
1
|
+
(function(jQuery){var self=null;var options={};jQuery.fn.railsAutocomplete=function(){var handler=function(){if(!this.railsAutoCompleter){this.railsAutoCompleter=new jQuery.railsAutocomplete(this)}};options[this.selector.replace("#","")]=arguments[0];if(jQuery.fn.on!==undefined){return $(document).on("focus",this.selector,handler)}else{return this.live("focus",handler)}};jQuery.railsAutocomplete=function(e){_e=e;this.init(_e)};jQuery.railsAutocomplete.fn=jQuery.railsAutocomplete.prototype={railsAutocomplete:"0.0.1"};jQuery.railsAutocomplete.fn.extend=jQuery.railsAutocomplete.extend=jQuery.extend;jQuery.railsAutocomplete.fn.extend({init:function(e){e.delimiter=jQuery(e).attr("data-delimiter")||null;function split(val){return val.split(e.delimiter)}function extractLast(term){return split(term).pop().replace(/^\s+/,"")}jQuery(e).autocomplete($.extend({source:function(request,response){jQuery.getJSON(jQuery(e).attr("data-autocomplete"),{term:extractLast(request.term)},function(){if(arguments[0].length==0){arguments[0]=[];arguments[0][0]={id:"",label:"no existing match"}}jQuery(arguments[0]).each(function(i,el){var obj={};obj[el.id]=el;jQuery(e).data(obj)});response.apply(null,arguments)})},change:function(event,ui){if(jQuery(jQuery(this).attr("data-id-element")).val()==""){return}jQuery(jQuery(this).attr("data-id-element")).val(ui.item?ui.item.id:"");var update_elements=jQuery.parseJSON(jQuery(this).attr("data-update-elements"));var data=ui.item?jQuery(this).data(ui.item.id.toString()):{};if(update_elements&&jQuery(update_elements.id).val()==""){return}for(var key in update_elements){jQuery(update_elements[key]).val(ui.item?data[key]:"")}},search:function(){var term=extractLast(this.value);if(term.length<2){return false}},focus:function(){return false},select:function(event,ui){var terms=split(this.value);terms.pop();terms.push(ui.item.value);if(e.delimiter!=null){terms.push("");this.value=terms.join(e.delimiter)}else{this.value=terms.join("");if(jQuery(this).attr("data-id-element")){jQuery(jQuery(this).attr("data-id-element")).val(ui.item.id)}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])}}}var remember_string=this.value;jQuery(this).bind("keyup.clearId",function(){if(jQuery(this).val().trim()!=remember_string.trim()){jQuery(jQuery(this).attr("data-id-element")).val("");jQuery(this).unbind("keyup.clearId")}});jQuery(e).trigger("railsAutocomplete.select",ui);return false}},options[e.id]))}});jQuery(document).ready(function(){jQuery("input[data-autocomplete]").railsAutocomplete()})})(jQuery);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails4-autocomplete
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alex_tian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|