source: svn/trunk/htdocs/common/tablesort.js @ 1235

Last change on this file since 1235 was 1235, checked in by Xuefer, 5 years ago

fixes #303: tablesort.js not found in Diagnosis and Coverager

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1var sort_column;
2var prev_span = null;
3function get_inner_text(el) {
4 if((typeof el == 'string')||(typeof el == 'undefined'))
5  return el;
6 if(el.innerText)
7  return el.innerText;
8 else {
9  var str = "";
10  var cs = el.childNodes;
11  var l = cs.length;
12  for (var i=0;i<l;i++) {
13   if (cs[i].nodeType==1) str += get_inner_text(cs[i]);
14   else if (cs[i].nodeType==3) str += cs[i].nodeValue;
15  }
16 }
17 return str;
18}
19function sortfn(a,b) {
20 var i = a.cells[sort_column].getAttribute('int');
21 if (i != null) {
22  return parseInt(i)-parseInt(b.cells[sort_column].getAttribute('int'));
23 } else {
24  var at = get_inner_text(a.cells[sort_column]);
25  var bt = get_inner_text(b.cells[sort_column]);
26  aa = at.toLowerCase();
27  bb = bt.toLowerCase();
28  if (aa==bb) return 0;
29  else if (aa<bb) return -1;
30  else return 1;
31 }
32}
33function resort(lnk) {
34 var span = lnk.childNodes[1];
35 if (!span) {
36     var span = document.createElement("span")
37     span.className = "sortarrow";
38     lnk.appendChild(span);
39 }
40 var table = lnk.parentNode.parentNode.parentNode.parentNode;
41 var rows = new Array();
42 for (j=1;j<table.rows.length;j++)
43  rows[j-1] = table.rows[j];
44 sort_column = lnk.parentNode.cellIndex;
45 rows.sort(sortfn);
46 if (prev_span != null) prev_span.innerHTML = '';
47 if (span.getAttribute('sortdir')=='down') {
48  span.innerHTML = '&uarr;';
49  span.setAttribute('sortdir','up');
50  rows.reverse();
51 } else {
52  span.innerHTML = '&darr;';
53  span.setAttribute('sortdir','down');
54 }
55 for (i=0;i<rows.length;i++)
56  table.tBodies[0].appendChild(rows[i]);
57 prev_span = span;
58}
Note: See TracBrowser for help on using the repository browser.