function replaceElements(max) {
fetch('https://cdn.vrijwilligerswerk.be/widget/byUuid/cc142318-c71e-4ca8-8827-a25c3147ad71/text')
.then(response => response.json())
.then(data => {
for (let i = 1; i <= max; i++) {
let element = document.getElementById(`vrijwilligers-text-${i}`);
if (element) {
fetch('https://cdn.vrijwilligerswerk.be/widget/cc142318-c71e-4ca8-8827-a25c3147ad71/text/' + i)
.then(response => response.json())
.then(text => {
renderText(text, element, data);
})
}
}
console.log(data);
})
.catch(error => {
console.error(error);
});
}
function renderText(text, container, config) {
const source = normalizeSource(text.source);
const details = [];
if (source) {
details.push(`Bron: ${source.label}`);
}
if (text.updated_at && config.display.showLastModified) {
details.push(`Laatst gewijzigd op ${text.updated_at}`);
}
container.innerHTML = `
${config.display.showTitle ? `${text.name}
` : ''}
${text.text}
${details.length ? `${details.join(' - ')}
` : ''}
`;
forEach(container.querySelectorAll('a'), (element) => {
element.setAttribute('target', '_blank');
element.setAttribute('rel', 'noopener noreferrer');
});
}
// De bron wordt niet altijd met protocol bewaard. Zonder https:// volgt de browser
// de link als relatief pad op de site van de klant, dus vullen we het hier aan.
function normalizeSource(source) {
if (!source) {
return null;
}
const value = String(source).trim();
if (!value) {
return null;
}
const url = /^https?:\/\//i.test(value) ? value : `https://${value}`;
return { url: url, label: url.replace(/^https?:\/\//i, '') };
}
function forEach(array, callback) {
for (var i = 0, len = array.length; i < len; ++i) {
callback(array[i]);
}
}
window.onload = function () {
replaceElements(54);
};