Fossil SCM
Hide empty folders when filtering
Commit
221fac45d0c90d7ebc3cce74be5c0d81a8b9737e
Parent
e44de4cc841b9cd…
1 file changed
+27
-5
+27
-5
| --- src/browse.c | ||
| +++ src/browse.c | ||
| @@ -852,15 +852,37 @@ | ||
| 852 | 852 | @ toggleDir(ul); |
| 853 | 853 | @ return false; |
| 854 | 854 | @ } |
| 855 | 855 | @ }())</script> |
| 856 | 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) | |
| 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 | + @ } | |
| 862 | 884 | @ } |
| 863 | 885 | @ }</script> |
| 864 | 886 | style_footer(); |
| 865 | 887 | |
| 866 | 888 | /* We could free memory used by sTree here if we needed to. But |
| 867 | 889 |
| --- 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 |