bootstrap3_autocomplete_input 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.