kappa123/kappa123/client/static/main.js

92 lines
2.2 KiB
JavaScript

var cacheEnabled = true;
var persistCache = function() {
if (cacheEnabled) {
window.localStorage.setItem('cache', cache);
window.localStorage.setItem('hideUnselected', hideUnselected);
}
}
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
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]);
});
setSelectedValue(window.localStorage.getItem('hideUnselected') || "false");
}
}
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";
}
}
function setSelectedValue(val) {
hideUnselected = (val=="true") || val;
persistCache();
var table = document.getElementById('the_table');
hideUnselected ? table.className = "hide-unselected" : table.className = "";
document.getElementById('showToggle').checked = hideUnselected;
}
function getSelectedValue() {
return hideUnselected;
}
function toggleRow(e) {
var row = e.currentTarget;
var id = row.id.replace("run-", "");
if (row.className == "run selected") {
setRowValue(id, false);
} else {
setRowValue(id, true);
}
persistCache();
}
function updateHideUnselected(e) {
setSelectedValue(e.target.checked);
}
function clearSelection() {
for (var i=1; i<=cache.length; i++) {
setRowValue(i, false);
}
persistCache();
}
loadPage();