Fossil SCM

Hide empty folders when filtering

baruch 2014-12-18 10:18 file-filter
Commit 221fac45d0c90d7ebc3cce74be5c0d81a8b9737e
1 file changed +27 -5
+27 -5
--- src/browse.c
+++ src/browse.c
@@ -852,15 +852,37 @@
852852
@ toggleDir(ul);
853853
@ return false;
854854
@ }
855855
@ }())</script>
856856
@ <script>function filter_list(t){
857
- @ var root = gebi('filetreeroot');
858
- @ var links = root.querySelectorAll(".file a")
859
- @ for(var i = 0; i < links.length; i++){
860
- @ var a = links[i];
861
- @ a.parentNode.parentNode.hidden = (a.innerHTML.lastIndexOf(t) == -1)
857
+ @ var outer_ul = document.querySelector('.filetree > ul');
858
+ @ var links = outer_ul.querySelectorAll('.file a');
859
+ @ for( var i = 0; i < links.length; i++ ){
860
+ @ var node = links[i];
861
+ @ if( node.innerHTML.lastIndexOf(t) == -1 ){
862
+ @ node = node.parentNode.parentNode;
863
+ @ node.hidden = true;
864
+ @ node = node.parentNode;
865
+ @ hide_parents_loop:
866
+ @ while( node!=outer_ul && !node.parentNode.hidden ){
867
+ @ for( var j = 0; j < node.children.length; j++ ){
868
+ @ if( !node.children[j].hidden ) break hide_parents_loop;
869
+ @ }
870
+ @ node = node.parentNode;
871
+ @ node.hidden = true;
872
+ @ node = node.parentNode;
873
+ @ }
874
+ @ }else{
875
+ @ node = node.parentNode.parentNode;
876
+ @ node.hidden = false;
877
+ @ node = node.parentNode;
878
+ @ while( node!=outer_ul && node.parentNode.hidden ){
879
+ @ node = node.parentNode;
880
+ @ node.hidden = false;
881
+ @ node = node.parentNode;
882
+ @ }
883
+ @ }
862884
@ }
863885
@ }</script>
864886
style_footer();
865887
866888
/* We could free memory used by sTree here if we needed to. But
867889
--- src/browse.c
+++ src/browse.c
@@ -852,15 +852,37 @@
852 @ toggleDir(ul);
853 @ return false;
854 @ }
855 @ }())</script>
856 @ <script>function filter_list(t){
857 @ var root = gebi('filetreeroot');
858 @ var links = root.querySelectorAll(".file a")
859 @ for(var i = 0; i < links.length; i++){
860 @ var a = links[i];
861 @ a.parentNode.parentNode.hidden = (a.innerHTML.lastIndexOf(t) == -1)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
862 @ }
863 @ }</script>
864 style_footer();
865
866 /* We could free memory used by sTree here if we needed to. But
867
--- src/browse.c
+++ src/browse.c
@@ -852,15 +852,37 @@
852 @ toggleDir(ul);
853 @ return false;
854 @ }
855 @ }())</script>
856 @ <script>function filter_list(t){
857 @ var outer_ul = document.querySelector('.filetree > ul');
858 @ var links = outer_ul.querySelectorAll('.file a');
859 @ for( var i = 0; i < links.length; i++ ){
860 @ var node = links[i];
861 @ if( node.innerHTML.lastIndexOf(t) == -1 ){
862 @ node = node.parentNode.parentNode;
863 @ node.hidden = true;
864 @ node = node.parentNode;
865 @ hide_parents_loop:
866 @ while( node!=outer_ul && !node.parentNode.hidden ){
867 @ for( var j = 0; j < node.children.length; j++ ){
868 @ if( !node.children[j].hidden ) break hide_parents_loop;
869 @ }
870 @ node = node.parentNode;
871 @ node.hidden = true;
872 @ node = node.parentNode;
873 @ }
874 @ }else{
875 @ node = node.parentNode.parentNode;
876 @ node.hidden = false;
877 @ node = node.parentNode;
878 @ while( node!=outer_ul && node.parentNode.hidden ){
879 @ node = node.parentNode;
880 @ node.hidden = false;
881 @ node = node.parentNode;
882 @ }
883 @ }
884 @ }
885 @ }</script>
886 style_footer();
887
888 /* We could free memory used by sTree here if we needed to. But
889

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button