From: Ian Jackson Date: Sun, 23 Aug 2009 20:29:21 +0000 (+0100) Subject: Also cope with tbrow, and add all stuff from then onwards to bottom X-Git-Tag: 3.4~122 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=commitdiff_plain;h=41eff7a5ec6225db4a8a4737ec004866e8da6425 Also cope with tbrow, and add all stuff from then onwards to bottom --- diff --git a/yarrg/web/tabsort b/yarrg/web/tabsort index ad25f86..b11c878 100644 --- a/yarrg/web/tabsort +++ b/yarrg/web/tabsort @@ -39,10 +39,14 @@ $table => 'ts_table' $sortkeys => 'ts_sortkeys' $throw => undef +$tbrow => undef $cols <%doc> + Numeric + SortKey + MapFn NoSort DoReverse @@ -57,17 +61,31 @@ function <% $sortfn %>(compar) { var tbody= firstrow.parentNode var rows= tbody.childNodes var newrows= new Array; - for (var rowix=0; rowix < rows.length; rowix++) { - var row= rows.item(rowix); - debug('process row '+rowix+' [[ '+row+' ]] id='+row.id) - if (!row.id) continue; + var finalrows= new Array; + var rowix= 0; % if (defined $throw) { - if (row.id == '<% $throw %>') continue; + for (; rowix < rows.length; rowix++) { + var row= rows.item(rowix); + if (row.id == '<% $throw %>') break; + } + rowix++; % } + for (; rowix < rows.length; rowix++) { + var row= rows.item(rowix); +% 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) newrows.push(row); } + for (; rowix < rows.length; rowix++) { + var row= rows.item(rowix); + finalrows.push(row); + } newrows.sort(compar); + newrows= newrows.concat(finalrows); for (var rowix=0; rowix < newrows.length; rowix++) { var row= newrows[rowix]; debug('add row '+rowix+' [[ '+row+' ]]');