client/js/list-bin.js
changeset 196 2a2fcec209d0
parent 170 603ffa4c6fa5
child 293 fba23fde14ba
--- a/client/js/list-bin.js	Wed Jul 03 13:42:59 2013 +0200
+++ b/client/js/list-bin.js	Thu Jul 04 12:43:30 2013 +0200
@@ -20,17 +20,11 @@
     this.refresh();
 };
 
-Rkns.ResourceList.Bin.prototype.render = function(searchstr) {
-    if (searchstr) {
-        var _rgxp = new RegExp('('+(searchstr).replace(/(\W)/g,'\\$1')+')','gi'),
-            rxtest = new RegExp(searchstr.replace(/(\W)/g,'\\$1'),'i');
-    }
+Rkns.ResourceList.Bin.prototype.render = function(searchbase) {
+    var search = searchbase || Rkns.Utils.regexpFromTextOrArray();
     function highlight(_text) {
-        if (searchstr) {
-            return _text.replace(_rgxp, "<span class='searchmatch'>$1</span>");
-        } else {
-            return _text;
-        }
+        var _e = _(_text).escape();
+        return search.isempty ? _e : search.replace(_e, "<span class='searchmatch'>$1</span>");
     }
     var _html = "",
         _this = this,
@@ -60,7 +54,7 @@
         if (url && !/^https?:\/\//.test(url)) {
             url = 'http://' + url;
         }
-        if (searchstr && !rxtest.test(title) && !rxtest.test(description)) {
+        if (!search.isempty && !search.test(title) && !search.test(description)) {
             return;
         }
         count++;
@@ -75,12 +69,12 @@
         });
     });
     _this.main_$.html(_html);
-    if (searchstr && count) {
+    if (!search.isempty && count) {
         this.count_$.text(count).show();
     } else {
         this.count_$.hide();
     }
-    if (searchstr && !count) {
+    if (!search.isempty && !count) {
         this.$.hide();
     } else {
         this.$.show();