提交 951f447a 编写于 作者: O OHTAKE Tomohiro 提交者: Kohsuke Kawaguchi

[FIXED JENKINS-11551] Preserve ordering even if there are same values

上级 117ed693
......@@ -58,7 +58,9 @@ Upcoming changes</a>
<li class=bug>
java.io.IOException: Unexpected termination of the channel - SEVERE: I/O error in channel Chunked connection when using jenkins-cli.jar (works on older Hudson version)
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-11130">issue 11130</a>)
<li class=>
<li class=rfe>
Sortable table wasn't "stable" when there are same values in different rows
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-11551">issue 11551</a>)
</ul>
</div><!--=TRUNK-END=-->
......
......@@ -98,13 +98,11 @@ function extractData(x) {
var arrowTable = {
up: {
id: "up",
text: "&nbsp;&nbsp;&uarr;",
reorder: function(rows) { rows.reverse(); }
text: "&nbsp;&nbsp;&uarr;"
},
down: {
id: "down",
text: "&nbsp;&nbsp;&darr;",
reorder: function() {}
text: "&nbsp;&nbsp;&darr;"
},
none: {
id: "none",
......@@ -137,21 +135,24 @@ function ts_resortTable(lnk) {
for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; }
for (j=1;j<table.rows.length;j++) { newRows[j-1] = table.rows[j]; }
newRows.sort(function(a,b) {
return sortfn(
extractData(a.cells[column]),
extractData(b.cells[column]));
});
var dir = span.sortdir;
if (arrowTable.lnkRef != lnk) {
if (dir == null) dir = arrowTable.up;
} else {
dir = dir.next; // new sort direction
}
var sortfn2 = sortfn;
if(dir === arrowTable.up) {
// ascending
sortfn2 = function(a,b){return -sortfn(a,b)};
}
newRows.sort(function(a,b) {
return sortfn2(
extractData(a.cells[column]),
extractData(b.cells[column]));
});
arrowTable.lnkRef = lnk; // make column sort down only if column selected is same as last
dir.reorder(newRows);
span.sortdir = dir;
// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册