From e9ecd49f7460f571e2bf13161038371e2d5f8bfb Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 11 Aug 2014 07:11:10 -0400
Subject: [PATCH] Added namespace filter in Folder Manager

---
 program/js/app.js |   36 ++++++++++++++++++++++++++++++++++--
 1 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index c643188..5a87347 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -5862,8 +5862,9 @@
     row.attr({id: 'rcmli' + this.html_identifier_encode(id), 'class': class_name});
 
     if (!refrow || !refrow.length) {
-      // remove old subfolders and toggle
+      // remove old data, subfolders and toggle
       $('ul,div.treetoggle', row).remove();
+      row.removeData('filtered');
     }
 
     // set folder name
@@ -5990,7 +5991,7 @@
       this.subscription_list.expand(this.folder_id2name(parent.id));
     }
 
-    row = row.get(0);
+    row = row.show().get(0);
     if (row.scrollIntoView)
       row.scrollIntoView();
 
@@ -6134,6 +6135,37 @@
     $('#folder-size').replaceWith(size);
   };
 
+  // filter folders by namespace
+  this.folder_filter = function(prefix)
+  {
+    this.subscription_list.reset_search();
+
+    this.subscription_list.container.children('li').each(function() {
+      var i, folder = ref.folder_id2name(this.id);
+      // show all folders
+      if (prefix == '---') {
+      }
+      // got namespace prefix
+      else if (prefix) {
+        if (folder !== prefix) {
+          $(this).data('filtered', true).hide();
+          return
+        }
+      }
+      // no namespace prefix, filter out all other namespaces
+      else {
+        // first get all namespace roots
+        for (i in ref.env.ns_roots) {
+          if (folder === ref.env.ns_roots[i]) {
+            $(this).data('filtered', true).hide();
+            return;
+          }
+        }
+      }
+
+      $(this).removeData('filtered').show();
+    });
+  };
 
   /*********************************************************/
   /*********           GUI functionality           *********/

--
Gitblit v1.9.1