// agenda-widget.js — Bij Deb
// Sluit dit bestand in op elke workshoppagina via:
//
//
// En zet een
op de pagina.
(function(){
function formatDate(dateStr){
const d = new Date(dateStr + 'T12:00:00');
return d.toLocaleDateString('nl-NL', {weekday:'long', day:'numeric', month:'long'});
}
function spotsColor(spots){
if(spots <= 0) return '#C2542E';
if(spots <= 3) return '#e67e00';
return '#7A8B5C';
}
function spotsLabel(spots){
if(spots <= 0) return 'Vol';
if(spots === 1) return 'Nog 1 plek';
if(spots <= 3) return `Nog ${spots} plekken`;
return `${spots} plekken beschikbaar`;
}
function isFuture(dateStr){
const today = new Date(); today.setHours(0,0,0,0);
return new Date(dateStr + 'T12:00:00') >= today;
}
function render(){
const el = document.getElementById('agenda-widget');
if(!el) return;
const workshopId = el.dataset.workshop;
const data = (window.BIJDEB_AGENDA || [])
.filter(e => e.workshop === workshopId && isFuture(e.date))
.sort((a,b) => a.date.localeCompare(b.date));
const styles = `
`;
if(data.length === 0){
el.innerHTML = styles + `
Komende data
Er staan momenteel geen datums gepland.
Stuur een bericht en ik laat je weten wanneer de volgende datum is.
`;
return;
}
let rows = '';
data.forEach(e => {
const full = e.spots <= 0;
const spotsHtml = `
${spotsLabel(e.spots)}`;
const mailSubject = encodeURIComponent(`Aanmelding workshop — ${formatDate(e.date)}`);
const mailBody = encodeURIComponent(`Hoi Debby,\n\nIk wil me graag aanmelden voor de workshop op ${formatDate(e.date)} van ${e.start} tot ${e.end} uur.\n\nMijn naam: \nAantal personen: \n\nGroeten!`);
const btn = full
? `
Vol`
: `
Schrijf je in →`;
rows += `
${formatDate(e.date)}
${e.start} – ${e.end} uur
${e.note ? `
${e.note}
` : ''}
${e.price ? `${e.price}` : ''}
${spotsHtml}
${btn}
`;
});
el.innerHTML = styles + `
`;
}
if(document.readyState === 'loading'){
document.addEventListener('DOMContentLoaded', render);
} else {
render();
}
})();