Fossil SCM

fix for last directory in list

baruch 2014-12-22 21:57 file-filter
Commit 3638635d0d1df9f40dd7cde4b27f54a1439d5530
1 file changed +25 -7
+25 -7
--- src/browse.c
+++ src/browse.c
@@ -740,14 +740,13 @@
740740
p = sortTreeByMtime(sTree.pFirst);
741741
memset(&sTree, 0, sizeof(sTree));
742742
relinkTree(&sTree, p);
743743
}
744744
for(p=sTree.pFirst, nDir=0; p; p=p->pNext){
745
- const char *zLastClass = p->pSibling==0 ? " last" : "";
746745
if( p->pChild ){
747746
const char *zSubdirClass = p->nFullName==nD-1 ? " subdir" : "";
748
- @ <li class="dir%s(zSubdirClass)%s(zLastClass)"><div class="filetreeline">
747
+ @ <li class="dir%s(zSubdirClass)"><div class="filetreeline">
749748
@ %z(href("%s",url_render(&sURI,"name",p->zFullName,0,0)))%h(p->zName)</a>
750749
if( p->mtime>0.0 ){
751750
char *zAge = human_readable_age(rNow - p->mtime);
752751
@ <div class="filetreeage">%s(zAge)</div>
753752
}
@@ -760,15 +759,15 @@
760759
nDir++;
761760
}else if( !showDirOnly ){
762761
const char *zFileClass = fileext_class(p->zName);
763762
char *zLink;
764763
if( zCI ){
765
- zLink = href("%R/artifact/%.16s",p->zUuid);
764
+ zLink = href("%R/artifact/%s",p->zUuid);
766765
}else{
767766
zLink = href("%R/finfo?name=%T",p->zFullName);
768767
}
769
- @ <li class="%z(zFileClass)%s(zLastClass)"><div class="filetreeline">
768
+ @ <li class="%z(zFileClass)"><div class="filetreeline">
770769
@ %z(zLink)%h(p->zName)</a>
771770
if( p->mtime>0 ){
772771
char *zAge = human_readable_age(rNow - p->mtime);
773772
@ <div class="filetreeage">%s(zAge)</div>
774773
}
@@ -781,11 +780,28 @@
781780
}
782781
}
783782
}
784783
@ </ul>
785784
@ </ul></div>
786
- @ <script>(function(){
785
+ @ <script>function fixLast(){
786
+ @ var dirs = document.querySelectorAll('.filetree ul');
787
+ @ for( var i = 0; i < dirs.length; i++ ){
788
+ @ var node = dirs[i];
789
+ @ var last = true;
790
+ @ for( var j = node.children.length-1; j >= 0; j-- ){
791
+ @ if( !node.children[j].hidden ){
792
+ @ if( last ){
793
+ @ node.children[j].classList.add('last');
794
+ @ last = false;
795
+ @ }else{
796
+ @ node.children[j].classList.remove('last');
797
+ @ }
798
+ @ }
799
+ @ }
800
+ @ }
801
+ @ }
802
+ @ (function(){
787803
@ function isExpanded(ul){
788804
@ return ul.className=='';
789805
@ }
790806
@
791807
@ function toggleDir(ul, useInitValue){
@@ -850,12 +866,13 @@
850866
@ while( ul && ul.nodeName!='UL' ) ul = ul.nextSibling;
851867
@ if( !ul ) return true; /* This is a file link, not a directory */
852868
@ toggleDir(ul);
853869
@ return false;
854870
@ }
855
- @ }())</script>
856
- @ <script>function filter_list(t){
871
+ @ fixLast();
872
+ @ }())
873
+ @ function filter_list(t){
857874
@ var outer_ul = document.querySelector('.filetree > ul');
858875
@ var links = outer_ul.querySelectorAll('.file a');
859876
@ for( var i = 0; i < links.length; i++ ){
860877
@ var node = links[i];
861878
@ if( node.innerHTML.lastIndexOf(t) == -1 ){
@@ -880,10 +897,11 @@
880897
@ node.hidden = false;
881898
@ node = node.parentNode;
882899
@ }
883900
@ }
884901
@ }
902
+ @ fixLast();
885903
@ }</script>
886904
style_footer();
887905
888906
/* We could free memory used by sTree here if we needed to. But
889907
** the process is about to exit, so doing so would not really accomplish
890908
--- src/browse.c
+++ src/browse.c
@@ -740,14 +740,13 @@
740 p = sortTreeByMtime(sTree.pFirst);
741 memset(&sTree, 0, sizeof(sTree));
742 relinkTree(&sTree, p);
743 }
744 for(p=sTree.pFirst, nDir=0; p; p=p->pNext){
745 const char *zLastClass = p->pSibling==0 ? " last" : "";
746 if( p->pChild ){
747 const char *zSubdirClass = p->nFullName==nD-1 ? " subdir" : "";
748 @ <li class="dir%s(zSubdirClass)%s(zLastClass)"><div class="filetreeline">
749 @ %z(href("%s",url_render(&sURI,"name",p->zFullName,0,0)))%h(p->zName)</a>
750 if( p->mtime>0.0 ){
751 char *zAge = human_readable_age(rNow - p->mtime);
752 @ <div class="filetreeage">%s(zAge)</div>
753 }
@@ -760,15 +759,15 @@
760 nDir++;
761 }else if( !showDirOnly ){
762 const char *zFileClass = fileext_class(p->zName);
763 char *zLink;
764 if( zCI ){
765 zLink = href("%R/artifact/%.16s",p->zUuid);
766 }else{
767 zLink = href("%R/finfo?name=%T",p->zFullName);
768 }
769 @ <li class="%z(zFileClass)%s(zLastClass)"><div class="filetreeline">
770 @ %z(zLink)%h(p->zName)</a>
771 if( p->mtime>0 ){
772 char *zAge = human_readable_age(rNow - p->mtime);
773 @ <div class="filetreeage">%s(zAge)</div>
774 }
@@ -781,11 +780,28 @@
781 }
782 }
783 }
784 @ </ul>
785 @ </ul></div>
786 @ <script>(function(){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
787 @ function isExpanded(ul){
788 @ return ul.className=='';
789 @ }
790 @
791 @ function toggleDir(ul, useInitValue){
@@ -850,12 +866,13 @@
850 @ while( ul && ul.nodeName!='UL' ) ul = ul.nextSibling;
851 @ if( !ul ) return true; /* This is a file link, not a directory */
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 ){
@@ -880,10 +897,11 @@
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 ** the process is about to exit, so doing so would not really accomplish
890
--- src/browse.c
+++ src/browse.c
@@ -740,14 +740,13 @@
740 p = sortTreeByMtime(sTree.pFirst);
741 memset(&sTree, 0, sizeof(sTree));
742 relinkTree(&sTree, p);
743 }
744 for(p=sTree.pFirst, nDir=0; p; p=p->pNext){
 
745 if( p->pChild ){
746 const char *zSubdirClass = p->nFullName==nD-1 ? " subdir" : "";
747 @ <li class="dir%s(zSubdirClass)"><div class="filetreeline">
748 @ %z(href("%s",url_render(&sURI,"name",p->zFullName,0,0)))%h(p->zName)</a>
749 if( p->mtime>0.0 ){
750 char *zAge = human_readable_age(rNow - p->mtime);
751 @ <div class="filetreeage">%s(zAge)</div>
752 }
@@ -760,15 +759,15 @@
759 nDir++;
760 }else if( !showDirOnly ){
761 const char *zFileClass = fileext_class(p->zName);
762 char *zLink;
763 if( zCI ){
764 zLink = href("%R/artifact/%s",p->zUuid);
765 }else{
766 zLink = href("%R/finfo?name=%T",p->zFullName);
767 }
768 @ <li class="%z(zFileClass)"><div class="filetreeline">
769 @ %z(zLink)%h(p->zName)</a>
770 if( p->mtime>0 ){
771 char *zAge = human_readable_age(rNow - p->mtime);
772 @ <div class="filetreeage">%s(zAge)</div>
773 }
@@ -781,11 +780,28 @@
780 }
781 }
782 }
783 @ </ul>
784 @ </ul></div>
785 @ <script>function fixLast(){
786 @ var dirs = document.querySelectorAll('.filetree ul');
787 @ for( var i = 0; i < dirs.length; i++ ){
788 @ var node = dirs[i];
789 @ var last = true;
790 @ for( var j = node.children.length-1; j >= 0; j-- ){
791 @ if( !node.children[j].hidden ){
792 @ if( last ){
793 @ node.children[j].classList.add('last');
794 @ last = false;
795 @ }else{
796 @ node.children[j].classList.remove('last');
797 @ }
798 @ }
799 @ }
800 @ }
801 @ }
802 @ (function(){
803 @ function isExpanded(ul){
804 @ return ul.className=='';
805 @ }
806 @
807 @ function toggleDir(ul, useInitValue){
@@ -850,12 +866,13 @@
866 @ while( ul && ul.nodeName!='UL' ) ul = ul.nextSibling;
867 @ if( !ul ) return true; /* This is a file link, not a directory */
868 @ toggleDir(ul);
869 @ return false;
870 @ }
871 @ fixLast();
872 @ }())
873 @ function filter_list(t){
874 @ var outer_ul = document.querySelector('.filetree > ul');
875 @ var links = outer_ul.querySelectorAll('.file a');
876 @ for( var i = 0; i < links.length; i++ ){
877 @ var node = links[i];
878 @ if( node.innerHTML.lastIndexOf(t) == -1 ){
@@ -880,10 +897,11 @@
897 @ node.hidden = false;
898 @ node = node.parentNode;
899 @ }
900 @ }
901 @ }
902 @ fixLast();
903 @ }</script>
904 style_footer();
905
906 /* We could free memory used by sTree here if we needed to. But
907 ** the process is about to exit, so doing so would not really accomplish
908

Keyboard Shortcuts

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