www: selectie van de week

This commit is contained in:
Peter Kleiweg
2026-04-23 17:58:25 +02:00
parent 59a2156507
commit c155f9aa04
7 changed files with 168 additions and 15 deletions

View File

@@ -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()