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:  | 
| 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.
         |