www: selectie van de week
This commit is contained in:
15
www/app.html
15
www/app.html
@@ -21,6 +21,7 @@
|
||||
<tr>
|
||||
<th>bron</th>
|
||||
<th>onderdeel</th>
|
||||
<th>week</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
@@ -82,15 +83,15 @@
|
||||
> </label
|
||||
>
|
||||
</td>
|
||||
<td>
|
||||
<input type="date" id="dDatum" name="dDatum" step="7" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style="text-align: center">
|
||||
<p>to do: selecteer een periode</p>
|
||||
<p>
|
||||
<button type="button" onclick="kies()">
|
||||
— kies —
|
||||
</button>
|
||||
</p>
|
||||
<td colspan="3" style="text-align: center">
|
||||
<button type="button" onclick="kies()">
|
||||
— laat maar zien —
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
54
www/app.js
54
www/app.js
@@ -1,4 +1,5 @@
|
||||
var dates
|
||||
var datesNr
|
||||
|
||||
var parts = [
|
||||
'nieuwe namen',
|
||||
@@ -156,9 +157,9 @@ async function loadWeken(source, part) {
|
||||
tab.classList.add('outer')
|
||||
tr = document.createElement('tr')
|
||||
|
||||
for (var i = 0; i < 6; i++) {
|
||||
for (var i = datesNr; i < datesNr + 10; i++) {
|
||||
if (i < dates.length) {
|
||||
var week = dates[i]
|
||||
var week = dates[i].week
|
||||
if (!data.has(week)) {
|
||||
data[week] = await getJSON('DATA-' + week + '-4.json')
|
||||
}
|
||||
@@ -172,14 +173,51 @@ async function loadWeken(source, part) {
|
||||
document.getElementById('data').innerHTML = d.innerHTML
|
||||
}
|
||||
|
||||
function locateWeek(date) {
|
||||
if (date == '') {
|
||||
datesNr = 0
|
||||
return
|
||||
}
|
||||
var n = dates.length - 1
|
||||
if (date < dates[n].first) {
|
||||
datesNr = n
|
||||
return
|
||||
}
|
||||
if (date > dates[0].last) {
|
||||
datesNr = 0
|
||||
return
|
||||
}
|
||||
var p1 = 0
|
||||
var p2 = n
|
||||
while (true) {
|
||||
// fix voor als de weken niet aansluitend zijn (er ontbreken weken)
|
||||
if (p1 > p2) {
|
||||
datesNr = p2
|
||||
return
|
||||
}
|
||||
var i = Math.floor((p1 + p2) / 2)
|
||||
if (dates[i].first > date) {
|
||||
p1 = i + 1 // dit klopt: lijst is van groot naar klein
|
||||
} else if (dates[i].last < date) {
|
||||
p2 = i - 1
|
||||
} else {
|
||||
datesNr = i
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function kies() {
|
||||
let source = document.forms['choice']['rSource'].value
|
||||
let part = document.forms['choice']['rPart'].value
|
||||
let date = document.forms['choice']['dDatum'].value
|
||||
if ((source == 'alles' || source == '') && (part == 'alles' || part == '')) {
|
||||
alert('Kies een bron en/of een onderdeel')
|
||||
return
|
||||
}
|
||||
|
||||
locateWeek(date)
|
||||
|
||||
const dd = document.getElementById('data')
|
||||
const st = document.getElementById('subtitle')
|
||||
dd.classList.add('fade')
|
||||
@@ -187,11 +225,11 @@ async function kies() {
|
||||
await sleep(20)
|
||||
|
||||
if (source == 'alles' || source == '') {
|
||||
loadPart(part, dates[0])
|
||||
await loadPart(part, dates[datesNr].week)
|
||||
} else if (part == 'alles' || part == '') {
|
||||
loadSource(source, dates[0])
|
||||
await loadSource(source, dates[datesNr].week)
|
||||
} else {
|
||||
loadWeken(source, part)
|
||||
await loadWeken(source, part)
|
||||
}
|
||||
dd.classList.remove('fade')
|
||||
st.classList.remove('fade')
|
||||
@@ -199,7 +237,11 @@ async function kies() {
|
||||
|
||||
async function init() {
|
||||
dates = await getJSON('index4.json')
|
||||
loadSource('Algemeen', dates[0])
|
||||
datesNr = 0
|
||||
const d = document.getElementById('dDatum')
|
||||
d.setAttribute('min', dates[dates.length - 1].last)
|
||||
d.setAttribute('max', dates[0].last)
|
||||
loadSource('Algemeen', dates[datesNr].week)
|
||||
}
|
||||
|
||||
init()
|
||||
|
||||
@@ -1 +1 @@
|
||||
["2026-16", "2026-15", "2026-14", "2026-13", "2026-12", "2026-11", "2026-10"]
|
||||
[{"week":"2026-16","first":"2026-04-13","last":"2026-04-19"},{"week":"2026-15","first":"2026-04-06","last":"2026-04-12"},{"week":"2026-14","first":"2026-03-30","last":"2026-04-05"},{"week":"2026-13","first":"2026-03-23","last":"2026-03-29"},{"week":"2026-12","first":"2026-03-16","last":"2026-03-22"},{"week":"2026-11","first":"2026-03-09","last":"2026-03-15"},{"week":"2026-10","first":"2026-03-02","last":"2026-03-08"}]
|
||||
|
||||
@@ -1 +1 @@
|
||||
["2026-16", "2026-15", "2026-14", "2026-13", "2026-12", "2026-11", "2026-10"]
|
||||
[{"week":"2026-16","first":"2026-04-13","last":"2026-04-19"},{"week":"2026-15","first":"2026-04-06","last":"2026-04-12"},{"week":"2026-14","first":"2026-03-30","last":"2026-04-05"},{"week":"2026-13","first":"2026-03-23","last":"2026-03-29"},{"week":"2026-12","first":"2026-03-16","last":"2026-03-22"},{"week":"2026-11","first":"2026-03-09","last":"2026-03-15"},{"week":"2026-10","first":"2026-03-02","last":"2026-03-08"}]
|
||||
|
||||
Reference in New Issue
Block a user