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: 2eac81ff05fbf008f9a0e8b58724f011c2cbf748
4
- data.tar.gz: 4f14fec30b6c3a36e68f51518537e5b12c1a384f
3
+ metadata.gz: 10e421d55b935201b8ee52bede2ef706dd2e23ef
4
+ data.tar.gz: 0265e620930b9ecec65b498514774595c7fe7e5e
5
5
  SHA512:
6
- metadata.gz: 40855326ab659cafde1a57b3554da1d81957be2f4ed9728fb54e535b2cf677c517a3cd50688c719c2b9cc32677e40cc39f060c430d26d0ae93c7ca9e4e3d9dcb
7
- data.tar.gz: 88f4c94c5b3f09b38fb86f15313df415ed8c20300c6b05ac5320f9c349d84f82c87c3aa16cc99245bb5304300eff32934bd9a8b9db3e1626fae9895c18d4daf9
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
- obj = $(this);
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
- 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(){obj=$(this),obj.typeahead({source:function(t,a){obj=this.$element,rows=[];var e=obj.attr("name");autocomplete_data_static[e]={map:[],values:[]},$.getJSON(obj.attr("data-source-query"),{q:t},function(t){$.each(t,function(t,a){autocomplete_data_static[e].values.push(a[1]),autocomplete_data_static[e].map[a[1]]=a[0]}),a(autocomplete_data_static[e].values)})},updater:function(t){obj=this.$element;var a=obj.attr("name");return obj_id=$("#"+obj.attr("data-field-id")),obj_id&&obj_id.val(autocomplete_data_static[a].map[t]),t},items:obj.attr("data-items"),minLength:obj.attr("data-min-length"),afterSelect:function(t){var a=obj.attr("data-afterSelect")||"";if(""!=a){var e=window[a];"function"==typeof e&&e(t)}}})})});
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))})});
@@ -1,3 +1,3 @@
1
1
  module Bootstrap3AutocompleteInput
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
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.6
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-03-18 00:00:00.000000000 Z
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.5
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.