Implement an abstract localStorage cache
parent
69db285def
commit
e1b22a2125
|
@ -1,14 +1,54 @@
|
||||||
// custom javascript
|
// custom javascript
|
||||||
|
|
||||||
|
var updateCache = function() {
|
||||||
|
window.localStorage.setItem('cache', cache);
|
||||||
|
}
|
||||||
|
|
||||||
|
var primeCache = function() {
|
||||||
|
strCache = window.localStorage.getItem('cache').split(",") || []; // Augh.
|
||||||
|
cache = [];
|
||||||
|
strCache.map(function(item) {
|
||||||
|
cache[cache.length] = (item == 'true');
|
||||||
|
setRowValue(cache.length, cache[cache.length-1]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
primeCache();
|
||||||
|
|
||||||
var elements = document.getElementsByClassName('run');
|
var elements = document.getElementsByClassName('run');
|
||||||
for (idx in elements) {
|
for (var i=0; i<elements.length; i++) {
|
||||||
var element = elements[idx];
|
var element = elements[i];
|
||||||
element.onclick = toggleRow;
|
element.onclick = toggleRow;
|
||||||
|
|
||||||
|
var id = element.id.replace("run-", "");
|
||||||
|
cache[id-1] = 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 toggleRow(e) {
|
function toggleRow(e) {
|
||||||
var row = e.currentTarget;
|
var row = e.currentTarget;
|
||||||
row.className == "run selected" ? row.className = "run" : row.className = "run selected"
|
var id = row.id.replace("run-", "");
|
||||||
|
if (row.className == "run selected") {
|
||||||
|
setRowValue(id, false);
|
||||||
|
} else {
|
||||||
|
setRowValue(id, true);
|
||||||
|
}
|
||||||
|
updateCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateHideUnselected() {
|
function updateHideUnselected() {
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<th scope="col">Runners</th>
|
<th scope="col">Runners</th>
|
||||||
</tr>
|
</tr>
|
||||||
{% for run in runs %}
|
{% for run in runs %}
|
||||||
<tr class="run {{run["class"]}}">
|
<tr class="run {{run["class"]}}" id="run-{{run["order"]}}">
|
||||||
<td>{{run["time"]}} → {{run["estimate"]}}</td>
|
<td>{{run["time"]}} → {{run["estimate"]}}</td>
|
||||||
<td>{{run["name"]}} <span class="de-emphasis">{{run["category"]}}</span></td>
|
<td>{{run["name"]}} <span class="de-emphasis">{{run["category"]}}</span></td>
|
||||||
<td>{{run["runners"]}}</td>
|
<td>{{run["runners"]}}</td>
|
||||||
|
|
|
@ -36,11 +36,12 @@ def transform_runs(raw_data):
|
||||||
for run in raw_data:
|
for run in raw_data:
|
||||||
run = run['fields']
|
run = run['fields']
|
||||||
d = {
|
d = {
|
||||||
'time': arrow.get(run['starttime']).to('America/Chicago').format('HH:mm:ss'),
|
'time': arrow.get(run['starttime']).to('America/Chicago').format('MMM DD HH:mm:ss'),
|
||||||
'estimate': run['run_time'],
|
'estimate': run['run_time'],
|
||||||
'name': run['name'],
|
'name': run['name'],
|
||||||
'category': run['category'],
|
'category': run['category'],
|
||||||
'runners': run['deprecated_runners'] #lol
|
'runners': run['deprecated_runners'], #lol
|
||||||
|
'order': run['order']
|
||||||
}
|
}
|
||||||
output.append(d)
|
output.append(d)
|
||||||
return output
|
return output
|
||||||
|
|
Loading…
Reference in New Issue