X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/5074895f7d96cbd5fda6a4d566ddb25533137fd4..6407cf24cd6cf3f9ea6fdf4a8924dad109a590e6:/src/wolnelektury/static/js/search.js?ds=sidebyside diff --git a/src/wolnelektury/static/js/search.js b/src/wolnelektury/static/js/search.js index 786a05c79..536164b50 100644 --- a/src/wolnelektury/static/js/search.js +++ b/src/wolnelektury/static/js/search.js @@ -1,48 +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+'') - .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 = $("
  • "); + if (item.img) { + $('div', $label).append($('').attr('src', item.img)); + } + if (item.author) { + label = '' + item.label + ', ' + item['author']; + } else { + label = item.label; + } + $('span', $label).html(label); + $label.addClass('type-' + item.type); + $label.appendTo(ul); + return $label; + }, + destroy: function() { + } + }); })(jQuery);