Nicer search, minor fixes.
[wolnelektury.git] / src / wolnelektury / static / js / search.js
index 34c63f3..536164b 100644 (file)
@@ -1,6 +1,6 @@
 
 var __bind = function (self, fn) {
-    return function() { fn.apply(self, arguments); };
+    return function() { return fn.apply(self, arguments); };
 };
 
 (function($){
@@ -19,8 +19,9 @@ var __bind = function (self, fn) {
                     source: this.element.data('source')
             };
 
-            this.element.autocomplete($.extend(opts, this.options))
-            .data("autocomplete")._renderItem = __bind(this, this.render_item);
+            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);;
         },
 
         enter: function(event, ui) {
@@ -43,6 +44,23 @@ var __bind = function (self, fn) {
             .appendTo(ul);
         },
 
+        render_item_2022: function (ul, item) {
+            var label;
+            var $label = $("<li><a><div></div><span></span></a></li>");
+            if (item.img) {
+                $('div', $label).append($('<img>').attr('src', item.img));
+            }
+            if (item.author) {
+                label = '<cite>' + item.label + '</cite>, ' + item['author'];
+            } else {
+                label = item.label;
+            }
+            $('span', $label).html(label);
+            $label.addClass('type-' + item.type);
+            $label.appendTo(ul);
+            return $label;
+        },
+
         destroy: function() {
         }
     });