X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ae60b2a3949e96357477cc04f90fd0873cee8a92..4faaa8414a1038804df9999a094c8dfe4c5f513f:/src/wolnelektury/static/js/search.js diff --git a/src/wolnelektury/static/js/search.js b/src/wolnelektury/static/js/search.js index 4d001e0c0..536164b50 100644 --- a/src/wolnelektury/static/js/search.js +++ b/src/wolnelektury/static/js/search.js @@ -1,49 +1,68 @@ var __bind = function (self, fn) { - return function() { fn.apply(self, arguments); }; + return function() { return fn.apply(self, arguments); }; }; (function($){ $.widget("wl.search", { - options: { - minLength: 0, - dataType: "json", - host: '', + options: { + minLength: 0, + dataType: "json", + host: '' + }, + + _create: function() { + var opts = { + minLength: this.options.minLength, + select: __bind(this, this.enter), + focus: function() { return false; }, + source: this.element.data('source') + }; + + this.element.autocomplete($.extend(opts, this.options)); + if (this.element.autocomplete('instance') !== undefined) this.element.autocomplete('instance')._renderItem = __bind(this, this.render_item_2022); + if (this.element.data('autocomplete') !== undefined) this.element.data('autocomplete')._renderItem = __bind(this, this.render_item);; }, - _create: function() { - var opts = { - minLength: this.options.minLength, - select: __bind(this, this.enter), - focus: function() { return false; }, - source: this.element.data('source'), - }; - - this.element.autocomplete($.extend(opts, this.options)) - .data("autocomplete")._renderItem = __bind(this, this.render_item); - }, - - enter: function(event, ui) { - if (ui.item.url != undefined) { - location.href = this.options.host+ui.item.url; - } else { - this.element.closest('form').submit(); - } - }, - - render_item: function (ul, item) { - return $("
").data('item.autocomplete', item) - .append(''+item.label+''+ - ''+item.category+'') - .appendTo(ul); - }, - - destroy: function() { - - }, - + enter: function(event, ui) { + if (ui.item.url !== undefined) { + location.href = this.options.host+ui.item.url; + } else { + this.element.closest('form').submit(); + } + }, - }); + render_item: function (ul, item) { + var label; + if (item['author']) { + label = '' + item.label + ', ' + item['author']; + } else { + label = item.label; + } + return $("").data('item.autocomplete', item) + .append(''+label+'') + .appendTo(ul); + }, + + render_item_2022: function (ul, item) { + var label; + var $label = $("