X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/53d1af7d218c1b0e07165a029d6002338933eb36..dd6284e01f00296294a527ded7e840ac14c5fbb8:/wolnelektury/static/js/search.js diff --git a/wolnelektury/static/js/search.js b/wolnelektury/static/js/search.js new file mode 100644 index 000000000..e58d37256 --- /dev/null +++ b/wolnelektury/static/js/search.js @@ -0,0 +1,49 @@ + +var __bind = function (self, fn) { + return function() { fn.apply(self, arguments); }; +}; + +(function($){ + $.widget("wl.search", { + options: { + minLength: 0, + }, + + _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(opts).data("autocomplete")._renderItem = __bind(this, this.render_item); + }, + + enter: function(event, ui) { + if (ui.item.url != undefined) { + location.href = 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() { + + }, + + + + }); + + $(function() { + $("#search input[name=q]").search(); + + }); + +})(jQuery);