2017-07-03 20:51:52 -07:00
|
|
|
var cacheEnabled = true;
|
2016-07-17 09:43:59 -07:00
|
|
|
|
2017-07-03 21:00:16 -07:00
|
|
|
var persistCache = function() {
|
2017-07-03 20:34:52 -07:00
|
|
|
if (cacheEnabled) {
|
|
|
|
window.localStorage.setItem('cache', cache);
|
2017-07-03 21:39:51 -07:00
|
|
|
window.localStorage.setItem('hideUnselected', hideUnselected);
|
2017-07-03 20:34:52 -07:00
|
|
|
}
|
2017-07-03 16:31:34 -07:00
|
|
|
}
|
|
|
|
|
2017-07-03 21:39:51 -07:00
|
|
|
var loadPage = function() {
|
|
|
|
cache = [];
|
|
|
|
|
|
|
|
hideCheck = document.getElementById('showToggle');
|
|
|
|
hideCheck.onchange = updateHideUnselected;
|
|
|
|
|
|
|
|
// Add the row click handlers and prime the cache
|
|
|
|
var elements = document.getElementsByClassName('run');
|
|
|
|
for (var i=0; i<elements.length; i++) {
|
|
|
|
var element = elements[i];
|
|
|
|
element.onclick = toggleRow;
|
|
|
|
|
|
|
|
var id = element.id.replace("run-", "");
|
|
|
|
cache[id-1] = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Restore the cache if you need to
|
2017-07-03 20:34:52 -07:00
|
|
|
if (cacheEnabled) {
|
|
|
|
var string = window.localStorage.getItem('cache') || "";
|
|
|
|
var strCache = string.split(",");
|
|
|
|
cache = [];
|
|
|
|
strCache.map(function(item) {
|
|
|
|
cache[cache.length] = (item == 'true');
|
|
|
|
setRowValue(cache.length, cache[cache.length-1]);
|
|
|
|
});
|
2017-07-03 16:31:34 -07:00
|
|
|
|
2017-07-03 21:39:51 -07:00
|
|
|
setSelectedValue(window.localStorage.getItem('hideUnselected') || false);
|
|
|
|
}
|
2017-07-03 16:31:34 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
function getRowValue(id) {
|
|
|
|
return cache[id-1];
|
|
|
|
}
|
|
|
|
|
|
|
|
function setRowValue(id, selected) {
|
|
|
|
var row = document.getElementById("run-" + id)
|
|
|
|
if (!row) {return}
|
|
|
|
|
|
|
|
cache[id-1] = selected;
|
|
|
|
|
|
|
|
if (selected) {
|
|
|
|
row.className = "run selected";
|
|
|
|
} else {
|
|
|
|
row.className = "run";
|
|
|
|
}
|
2017-07-01 19:48:59 -07:00
|
|
|
}
|
|
|
|
|
2017-07-03 21:39:51 -07:00
|
|
|
function setSelectedValue(val) {
|
|
|
|
hideUnselected=val;
|
|
|
|
persistCache();
|
|
|
|
var table = document.getElementById('the_table');
|
|
|
|
hideUnselected ? table.className = "hide-unselected" : table.className = "";
|
|
|
|
document.getElementById('showToggle').checked = hideUnselected;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getSelectedValue() {
|
|
|
|
return hideUnselected;
|
|
|
|
}
|
|
|
|
|
2017-07-01 19:48:59 -07:00
|
|
|
function toggleRow(e) {
|
|
|
|
var row = e.currentTarget;
|
2017-07-03 16:31:34 -07:00
|
|
|
var id = row.id.replace("run-", "");
|
|
|
|
if (row.className == "run selected") {
|
|
|
|
setRowValue(id, false);
|
|
|
|
} else {
|
|
|
|
setRowValue(id, true);
|
|
|
|
}
|
2017-07-03 21:00:16 -07:00
|
|
|
persistCache();
|
2017-07-01 19:48:59 -07:00
|
|
|
}
|
2017-07-01 20:03:53 -07:00
|
|
|
|
2017-07-03 21:39:51 -07:00
|
|
|
function updateHideUnselected(e) {
|
|
|
|
setSelectedValue(e.target.checked);
|
2017-07-01 20:03:53 -07:00
|
|
|
}
|
2017-07-03 21:00:16 -07:00
|
|
|
|
|
|
|
function clearSelection() {
|
|
|
|
for (var i=1; i<=cache.length; i++) {
|
|
|
|
setRowValue(i, false);
|
|
|
|
}
|
|
|
|
persistCache();
|
|
|
|
}
|
2017-07-03 21:39:51 -07:00
|
|
|
|
|
|
|
loadPage();
|