X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fweb%2Ftabsort;h=444bfb56b15f6e1b01e6e2ff74a29c1140209bb8;hb=f6d7a4d627f3ecc0624649bb895dbf8e59afcf47;hp=b11c8785a8e090bd989fc0b68df6cef272f4ab07;hpb=41eff7a5ec6225db4a8a4737ec004866e8da6425;p=ypp-sc-tools.db-live.git diff --git a/yarrg/web/tabsort b/yarrg/web/tabsort index b11c878..444bfb5 100644 --- a/yarrg/web/tabsort +++ b/yarrg/web/tabsort @@ -40,6 +40,7 @@ $table => 'ts_table' $sortkeys => 'ts_sortkeys' $throw => undef $tbrow => undef +$rowclass => undef $cols @@ -67,6 +68,7 @@ function <% $sortfn %>(compar) { for (; rowix < rows.length; rowix++) { var row= rows.item(rowix); if (row.id == '<% $throw %>') break; + debug('skip row '+rowix+' [[ '+row+' ]] id='+row.id); } rowix++; % } @@ -75,16 +77,28 @@ function <% $sortfn %>(compar) { % if (defined $tbrow) { if (row.id == '<% $tbrow %>') break; % } - if (!row.id) continue; - if (row.tagName != 'TR') continue; - debug('process row '+rowix+' [[ '+row+' ]] id='+row.id) + if (!row.id) { debug('noid row '+rowix+' [[ '+row+' ]]'); continue; } + if (row.tagName != 'TR') { + debug('no-tr row '+rowix+' tagName='+row.tagName+' [[ '+row+' ]]'); + continue; + } + debug('process row '+rowix+' [[ '+row+' ]] id='+row.id); newrows.push(row); } for (; rowix < rows.length; rowix++) { var row= rows.item(rowix); finalrows.push(row); + debug('final row '+rowix+' [[ '+row+' ]]'); } newrows.sort(compar); +% if (defined $rowclass) { + for (var rowix=0; rowix < newrows.length; rowix++) { + var row= newrows[rowix]; + var classname= '<% $rowclass %>'+(rowix % 2); + debug('fix row '+rowix+' class '+classname); + row.className= classname; + } +% } newrows= newrows.concat(finalrows); for (var rowix=0; rowix < newrows.length; rowix++) { var row= newrows[rowix]; @@ -127,7 +141,7 @@ function <% $comparefn %>(a,b) { % } } -% foreach my $reverse (qw(0 1)) { +% foreach my $reverse (qw(1 0)) { % my $tcomparefn= "ts_compar${cix}_cmp${reverse}__$table"; % if ($reverse) { % next unless $col->{DoReverse};