changeset 4710:e4721f7ba042

javascripts: plain javascript version q_filter without YAHOO.namespace
author Takumi IINO <trot.thunder@gmail.com>
date Sat, 29 Nov 2014 16:31:09 +0900
parents 26c3e4708f58
children ee2993beec85
files kallithea/public/js/base.js
diffstat 1 files changed, 38 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/public/js/base.js	Sat Nov 29 16:25:13 2014 +0900
+++ b/kallithea/public/js/base.js	Sat Nov 29 16:31:09 2014 +0900
@@ -559,43 +559,52 @@
  * @param display_element function that takes current node from nodes and
  *    does hide or show based on the node
  */
-var q_filter = function(target, $nodes, display_element) {
-    var $nodes = $nodes;
-    var $q_filter_field = $('#' + target);
-    var F = YAHOO.namespace(target);
+var q_filter = (function() {
+    var _namespace = {};
+    var namespace = function (target) {
+        if (!(target in _namespace)) {
+            _namespace[target] = {};
+        }
+        return _namespace[target];
+    };
+    return function (target, $nodes, display_element) {
+        var $nodes = $nodes;
+        var $q_filter_field = $('#' + target);
+        var F = namespace(target);
 
-    $q_filter_field.keyup(function (e) {
-        clearTimeout(F.filterTimeout);
-        F.filterTimeout = setTimeout(F.updateFilter, 600);
-    });
+        $q_filter_field.keyup(function (e) {
+            clearTimeout(F.filterTimeout);
+            F.filterTimeout = setTimeout(F.updateFilter, 600);
+        });
 
-    F.filterTimeout = null;
-
-    F.updateFilter = function () {
-        // Reset timeout
         F.filterTimeout = null;
 
-        var obsolete = [];
+        F.updateFilter = function () {
+            // Reset timeout
+            F.filterTimeout = null;
 
-        var req = $q_filter_field.val().toLowerCase();
+            var obsolete = [];
+
+            var req = $q_filter_field.val().toLowerCase();
 
-        var showing = 0;
-        $nodes.each(function () {
-            var n = this;
-            var target_element = display_element(n);
-            if (req && n.innerHTML.toLowerCase().indexOf(req) == -1) {
-                $(target_element).hide();
-            }
-            else{
-                $(target_element).show();
-                showing += 1;
-            }
-        });
+            var showing = 0;
+            $nodes.each(function () {
+                var n = this;
+                var target_element = display_element(n);
+                if (req && n.innerHTML.toLowerCase().indexOf(req) == -1) {
+                    $(target_element).hide();
+                }
+                else {
+                    $(target_element).show();
+                    showing += 1;
+                }
+            });
 
-        $('#repo_count').html(showing);
-        /* FIXME: don't hardcode */
+            $('#repo_count').html(showing);
+            /* FIXME: don't hardcode */
+        }
     }
-};
+})();
 
 /* return jQuery expression with a tr with body in 3rd column and class cls and id named after the body */
 var _table_tr = function(cls, body){