bootstrap3_autocomplete_input 0.0.6 → 0.1.0
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: 10e421d55b935201b8ee52bede2ef706dd2e23ef
|
4
|
+
data.tar.gz: 0265e620930b9ecec65b498514774595c7fe7e5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3afc00084e25bd30b879d4c54b7a285f8cadc539df2b7ffcbf0cc26f92f99b552812eab56e80850313309ec985c6a042545ec0afa3426976dce243a4621ef73b
|
7
|
+
data.tar.gz: 34725f34986f6fe2928450c41a8d2761e3c8d968faba3904110f70fe487b3480239ab1473f7717dc1a349f1c77cf052b61408287bba6b991036e473a1ccf2bfc
|
@@ -1,5 +1,83 @@
|
|
1
1
|
var autocomplete_data_static = {};
|
2
2
|
|
3
|
+
function autocomplete_get_hidden_field(obj){
|
4
|
+
var hidden_id = obj.attr("data-field-id").replace(/(:|\.|\[|\])/g,'\\$1');;
|
5
|
+
return $('#'+hidden_id);
|
6
|
+
}
|
7
|
+
|
8
|
+
function autocomplete_query(obj){
|
9
|
+
obj.typeahead({
|
10
|
+
source: function (q, process) {
|
11
|
+
obj = this.$element;
|
12
|
+
rows = [];
|
13
|
+
|
14
|
+
var name = obj.attr('name');
|
15
|
+
autocomplete_data_static[name] = {"map":[], "values": []};
|
16
|
+
|
17
|
+
// load data from remote server
|
18
|
+
$.getJSON( obj.attr('data-source-query'), {q: q},
|
19
|
+
function( data ) {
|
20
|
+
$.each(data, function (i, row) {
|
21
|
+
autocomplete_data_static[name]["values"].push(row[1]);
|
22
|
+
autocomplete_data_static[name]["map"][row[1]]=row[0];
|
23
|
+
});
|
24
|
+
process(autocomplete_data_static[name]["values"]);
|
25
|
+
}
|
26
|
+
);// get json
|
27
|
+
}//source
|
28
|
+
, updater: function (item) {
|
29
|
+
obj = this.$element;
|
30
|
+
|
31
|
+
// save the id value the hidden field
|
32
|
+
var obj_id = autocomplete_get_hidden_field(obj);
|
33
|
+
if (obj_id) {
|
34
|
+
var name = obj.attr('name');
|
35
|
+
obj_id.val(autocomplete_data_static[name]["map"][item]);
|
36
|
+
}
|
37
|
+
|
38
|
+
return item;
|
39
|
+
}
|
40
|
+
, items: obj.attr('data-items')
|
41
|
+
, minLength: obj.attr('data-min-length')
|
42
|
+
, afterSelect: function(item){
|
43
|
+
var name = obj.attr('data-afterSelect') || '';
|
44
|
+
if (name!='') {
|
45
|
+
var fn = window[name];
|
46
|
+
if (typeof(fn) == "function")
|
47
|
+
fn(item);
|
48
|
+
}
|
49
|
+
|
50
|
+
}
|
51
|
+
}).on('change', function (e) {
|
52
|
+
var obj = $(this);
|
53
|
+
|
54
|
+
var current = obj.typeahead("getActive");
|
55
|
+
|
56
|
+
// hidden field for id
|
57
|
+
var obj_id = autocomplete_get_hidden_field(obj);
|
58
|
+
if (obj_id) {
|
59
|
+
if (current) {
|
60
|
+
// Some item from your model is active!
|
61
|
+
if (current == obj.val()) {
|
62
|
+
// This means the exact match is found. Use toLowerCase() if you want case insensitive match.
|
63
|
+
|
64
|
+
// the value is already set after select
|
65
|
+
|
66
|
+
} else {
|
67
|
+
// This means it is only a partial match, you can either add a new item
|
68
|
+
// or take the active if you don't want new items
|
69
|
+
if (obj_id)
|
70
|
+
obj_id.val('');
|
71
|
+
}
|
72
|
+
} else {
|
73
|
+
// Nothing is active so it is a new value (or maybe empty value)
|
74
|
+
if (obj_id)
|
75
|
+
obj_id.val('');
|
76
|
+
}
|
77
|
+
}
|
78
|
+
});// typeahead
|
79
|
+
}
|
80
|
+
|
3
81
|
$(document).ready(function() {
|
4
82
|
|
5
83
|
// local array
|
@@ -48,49 +126,8 @@ $(document).ready(function() {
|
|
48
126
|
|
49
127
|
// query data from server
|
50
128
|
$('input[data-provide="typeahead"][data-source-query]').each(function() {
|
51
|
-
|
52
|
-
|
53
|
-
obj.typeahead({
|
54
|
-
source: function (q, process) {
|
55
|
-
obj = this.$element;
|
56
|
-
rows = [];
|
57
|
-
|
58
|
-
var name = obj.attr('name');
|
59
|
-
autocomplete_data_static[name] = {"map":[], "values": []};
|
60
|
-
|
61
|
-
// load data from remote server
|
62
|
-
$.getJSON( obj.attr('data-source-query'), {q: q},
|
63
|
-
function( data ) {
|
64
|
-
$.each(data, function (i, row) {
|
65
|
-
autocomplete_data_static[name]["values"].push(row[1]);
|
66
|
-
autocomplete_data_static[name]["map"][row[1]]=row[0];
|
67
|
-
});
|
68
|
-
process(autocomplete_data_static[name]["values"]);
|
69
|
-
}
|
70
|
-
);// get json
|
71
|
-
}//source
|
72
|
-
, updater: function (item) {
|
73
|
-
obj = this.$element;
|
74
|
-
var name = obj.attr('name');
|
75
|
-
// save the id value the hidden field
|
76
|
-
obj_id = $('#'+obj.attr("data-field-id"));
|
77
|
-
if (obj_id)
|
78
|
-
obj_id.val(autocomplete_data_static[name]["map"][item]);
|
129
|
+
autocomplete_query($(this));
|
79
130
|
|
80
|
-
return item;
|
81
|
-
}
|
82
|
-
, items: obj.attr('data-items')
|
83
|
-
, minLength: obj.attr('data-min-length')
|
84
|
-
, afterSelect: function(item){
|
85
|
-
var name = obj.attr('data-afterSelect') || '';
|
86
|
-
if (name!='') {
|
87
|
-
var fn = window[name];
|
88
|
-
if (typeof(fn) == "function")
|
89
|
-
fn(item);
|
90
|
-
}
|
91
|
-
|
92
|
-
}
|
93
|
-
});// typeahead
|
94
131
|
});// each
|
95
132
|
|
96
133
|
});
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
function autocomplete_get_hidden_field(t){var a=t.attr("data-field-id").replace(/(:|\.|\[|\])/g,"\\$1");return $("#"+a)}function autocomplete_query(t){t.typeahead({source:function(a,e){t=this.$element,rows=[];var o=t.attr("name");autocomplete_data_static[o]={map:[],values:[]},$.getJSON(t.attr("data-source-query"),{q:a},function(t){$.each(t,function(t,a){autocomplete_data_static[o].values.push(a[1]),autocomplete_data_static[o].map[a[1]]=a[0]}),e(autocomplete_data_static[o].values)})},updater:function(a){t=this.$element;var e=autocomplete_get_hidden_field(t);if(e){var o=t.attr("name");e.val(autocomplete_data_static[o].map[a])}return a},items:t.attr("data-items"),minLength:t.attr("data-min-length"),afterSelect:function(a){var e=t.attr("data-afterSelect")||"";if(""!=e){var o=window[e];"function"==typeof o&&o(a)}}}).on("change",function(){var t=$(this),a=t.typeahead("getActive"),e=autocomplete_get_hidden_field(t);e&&(a?a==t.val()||e&&e.val(""):e&&e.val(""))})}var autocomplete_data_static={};$(document).ready(function(){$('input[data-provide="typeahead"][data-source-array]').each(function(){obj=$(this);var t=JSON.parse(obj.attr("data-source-array").replace(/"/g,'"'));obj.typeahead({source:t,items:obj.attr("data-items"),minLength:obj.attr("data-min-length")})}),$('input[data-provide="typeahead"][data-source]').each(function(){obj=$(this);var t=obj.attr("id");autocomplete_data_static[t]={map:[],values:[]},$.get(obj.attr("data-source"),function(a){$.each(a,function(a,e){autocomplete_data_static[t].values.push(e[1]),autocomplete_data_static[t].map[e[1]]=e[0]}),obj.typeahead({source:autocomplete_data_static[t].values,updater:function(a){return obj_id=$("#"+obj.attr("data-field-id")),obj_id&&obj_id.val(autocomplete_data_static[t].map[a]),a},items:obj.attr("data-items"),minLength:obj.attr("data-min-length")})},"json")}),$('input[data-provide="typeahead"][data-source-query]').each(function(){autocomplete_query($(this))})});
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap3_autocomplete_input
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Ivak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sqlite3
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: simple_form
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3.1'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.1'
|
55
55
|
description: Adds an input with autocomplete/typeahead compatible with Bootstrap 3.
|
@@ -412,17 +412,17 @@ require_paths:
|
|
412
412
|
- lib
|
413
413
|
required_ruby_version: !ruby/object:Gem::Requirement
|
414
414
|
requirements:
|
415
|
-
- -
|
415
|
+
- - ">="
|
416
416
|
- !ruby/object:Gem::Version
|
417
417
|
version: '0'
|
418
418
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
419
419
|
requirements:
|
420
|
-
- -
|
420
|
+
- - ">="
|
421
421
|
- !ruby/object:Gem::Version
|
422
422
|
version: '0'
|
423
423
|
requirements: []
|
424
424
|
rubyforge_project:
|
425
|
-
rubygems_version: 2.4.
|
425
|
+
rubygems_version: 2.4.6
|
426
426
|
signing_key:
|
427
427
|
specification_version: 4
|
428
428
|
summary: Autocomplete/typeahead input ready to be used with Bootstrap 3 in Rails 4.
|