提交 675902a8 编写于 作者: O OHTAKE Tomohiro 提交者: Kohsuke Kawaguchi

[FIXED JENKINS-203] Store sortable table state into local storage.

上级 30af5660
......@@ -96,6 +96,9 @@ Upcoming changes</a>
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-10689">issue 10689</a>)
<li class=rfe>
Enabled shortcut key on script console
<li class=rfe>
Remember sortable table state into local storage
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-203">issue 203</a>)
</ul>
</div><!--=END=-->
<h3><a name=v1.431>What's new in 1.431</a> (2011/09/19)</h3>
......
......@@ -99,7 +99,6 @@ THE SOFTWARE.
<script src="${resURL}/scripts/prototype.js" type="text/javascript"/>
<script src="${resURL}/scripts/behavior.js" type="text/javascript"/>
<script src="${resURL}/scripts/sortable.js" type="text/javascript"/>
<!-- we include our own prototype.js, so don't let stapler pull in another. -->
<st:adjunct assumes="org.kohsuke.stapler.framework.prototype.prototype"
......@@ -126,6 +125,7 @@ THE SOFTWARE.
<!--l:yui module="editor" suffix="-beta" /-->
<script src="${resURL}/scripts/hudson-behavior.js" type="text/javascript"></script>
<script src="${resURL}/scripts/sortable.js" type="text/javascript"/>
<script>
crumb.init("${h.getCrumbRequestField()}", "${h.getCrumb(request)}");
......
......@@ -62,6 +62,7 @@ function ts_makeSortable(table) {
if(initialSortDir!=arrowTable.none)
cell.firstChild.lastChild.sortdir = initialSortDir;
}
ts_loadDirection(table);
}
function ts_getInnerText(el) {
......@@ -96,14 +97,17 @@ function extractData(x) {
var arrowTable = {
up: {
id: "up",
text: "&nbsp;&nbsp;&uarr;",
reorder: function(rows) { rows.reverse(); }
},
down: {
id: "down",
text: "&nbsp;&nbsp;&darr;",
reorder: function() {}
},
none: {
id: "none",
text: "&nbsp;&nbsp;&nbsp;"
},
lnkRef: null
......@@ -171,6 +175,7 @@ function ts_resortTable(lnk) {
}
span.innerHTML = dir.text;
ts_saveDirection(table, column, dir);
}
function getParent(el, pTagName) {
......@@ -228,3 +233,51 @@ function ts_sort_default(a,b) {
if (a<b) return -1;
return 1;
}
function ts_getIndexOfSortableTable(table){
var allTables = document.getElementsByTagName("TABLE");
var sortableTables = [];
for (var i=0; i<allTables.length; i++) {
if($(allTables[i]).hasClassName("sortable")){
sortableTables.push(allTables[i]);
}
}
return sortableTables.indexOf(table);
}
function ts_getStorageKey(table){
var uri = document.location;
var tableIndex = ts_getIndexOfSortableTable(table);
return "ts_direction::" + uri + "::" + tableIndex;
}
function ts_saveDirection(table, columnIndex, direction){
var key = ts_getStorageKey(table);
ts_Storage.setItem(key, columnIndex + ":" + direction.id);
}
function ts_loadDirection(table){
var key = ts_getStorageKey(table);
if(ts_Storage.hasKey(key)){
var val = ts_Storage.getItem(key);
if(val){
var vals = val.split(":");
if(vals.length == 2) {
var colIndex = parseInt(vals[0]);
var direction = arrowTable[vals[1]];
var col = table.rows[0].cells[colIndex];
var anchor = col.firstChild;
var arrow = anchor.lastChild;
arrow.sortdir = direction;
ts_resortTable(anchor);
}
}
}
}
var ts_Storage = YAHOO.util.StorageManager.get(
YAHOO.util.StorageEngineHTML5.ENGINE_NAME,
YAHOO.util.StorageManager.LOCATION_SESSION,
{
order: [
YAHOO.util.StorageEngineGears
]
}
);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册