function loadTypeahead() { if ($('i.fa.fa-spin.fa-spinner.input-loader').length > 0) $('i.fa.fa-spin.fa-spinner.input-loader').remove(); var isFocus = false; if ($('#key').prop('focus')) isFocus = true; var normalize = function(str) { // Elimina tildes y convierte a minúsculas return str.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase(); }; var queryTokenizer = function(q) { var normalized = normalize(q); return Bloodhound.tokenizers.whitespace(normalized); }; var datumTokenizer = function(datum) { var normalized = normalize(datum.name); return Bloodhound.tokenizers.whitespace(normalized); }; var dataSource = new Bloodhound({ datumTokenizer: datumTokenizer, queryTokenizer: queryTokenizer, prefetch: '/uploads/pullman/json/lists.json', limit: 6, }); dataSource.clearPrefetchCache(); dataSource.initialize(); $(".typeahead[name='key']").typeahead({ hint: true, highlight: true }, { name: 'search-source', source: dataSource, display: 'name', limit: 6, templates: { pending: [ '
', '', '
' ].join('\n'), empty: [ '
', 'No se ha encontrado algo parecido', '
' ].join('\n'), suggestion: function(data) { return "
" + data.name + " - " + (data.type ? (data.type == 'category' ? 'Categoría' : (data.type == 'make' ? 'Marca' : (data.type == 'tag' ? 'Etiqueta' : 'Producto'))) : 'Producto') + "
"; } } }); $('.typeahead').bind('typeahead:select', function(ev, suggestion) { $('#key').prop('readonly', true); if (suggestion.color != 'undefined' && suggestion.color != 0) window.location = suggestion.url + "#" + suggestion.color; else window.location = suggestion.url; }); if (isFocus) $('#key').focus(); }