Wijzigen voor document Huisstijl
Laatst gewijzigd door Jeeves de Butler op 07-10-2026 01:56
Van versie 11.1
gewijzigd door Jeeves de Butler
op 05-10-2026 03:40
op 05-10-2026 03:40
Opmerking bij wijziging:
Er is geen opmerking bij deze versie
Naar versie 7.1
gewijzigd door Jeeves de Butler
op 05-10-2026 02:49
op 05-10-2026 02:49
Opmerking bij wijziging:
Er is geen opmerking bij deze versie
Samenvatting
-
Objecten (1 gewijzigd, 0 toegevoegd, 1 verwijderd)
Details
- XWiki.JavaScriptExtension[0]
-
- cache
-
... ... @@ -1,1 +1,0 @@ 1 -long - code
-
... ... @@ -1,130 +1,0 @@ 1 -/* Wardenburg Kennisbank; presentatie van tegeltabellen (class "vgmtabel"). 2 - Een tegeltabel is een rij met titels (kopcellen) met daaronder een rij met afbeeldingen die naar een pagina linken. 3 - Dit script toont dezelfde titels, afbeeldingen en links als een rustig kaartenraster. De pagina zelf verandert niet: 4 - de tabel blijft in de pagina staan en wordt alleen verborgen. Werkt alleen in de leesweergave. */ 5 -(function () { 6 - 'use strict'; 7 - 8 - function cellen(rij) { 9 - return rij ? Array.prototype.slice.call(rij.cells) : []; 10 - } 11 - 12 - function isKopRij(rij) { 13 - var c = cellen(rij); 14 - return c.length > 0 && c.every(function (cel) { return cel.tagName === 'TH'; }); 15 - } 16 - 17 - function kaartenUitTabel(tabel) { 18 - var rijen = Array.prototype.slice.call(tabel.rows); 19 - var kaarten = []; 20 - for (var i = 0; i < rijen.length; i++) { 21 - var kop = rijen[i]; 22 - if (!isKopRij(kop)) { 23 - continue; 24 - } 25 - var beeldRij = rijen[i + 1] && !isKopRij(rijen[i + 1]) ? rijen[i + 1] : null; 26 - var beeldCellen = cellen(beeldRij); 27 - cellen(kop).forEach(function (th, j) { 28 - var td = beeldCellen[j] || null; 29 - var titel = (th.textContent || '').replace(/\s+/g, ' ').trim(); 30 - var img = (td && td.querySelector('img')) || th.querySelector('img'); 31 - var link = (td && td.querySelector('a[href]')) || th.querySelector('a[href]'); 32 - if (!titel && !img) { 33 - return; 34 - } 35 - kaarten.push({ titel: titel || (img && img.getAttribute('alt')) || '', img: img, link: link }); 36 - }); 37 - if (beeldRij) { 38 - i++; 39 - } 40 - } 41 - return kaarten; 42 - } 43 - 44 - function maakKaart(k) { 45 - var kaart = document.createElement(k.link ? 'a' : 'div'); 46 - kaart.className = 'wb-kaart'; 47 - if (k.link) { 48 - kaart.setAttribute('href', k.link.getAttribute('href')); 49 - if (k.link.getAttribute('target')) { 50 - kaart.setAttribute('target', k.link.getAttribute('target')); 51 - kaart.setAttribute('rel', 'noopener'); 52 - } 53 - } 54 - var beeld = document.createElement('span'); 55 - beeld.className = 'wb-kaart-beeld'; 56 - if (k.img) { 57 - var img = document.createElement('img'); 58 - img.src = k.img.currentSrc || k.img.src; 59 - img.alt = ''; 60 - img.loading = 'lazy'; 61 - img.decoding = 'async'; 62 - var geenBeeld = function () { 63 - beeld.classList.add('wb-kaart-geenbeeld'); 64 - img.remove(); 65 - }; 66 - img.addEventListener('error', geenBeeld); 67 - // Sommige externe sites geven bij een verdwenen afbeelding een leeg plaatje in plaats van een fout. 68 - img.addEventListener('load', function () { 69 - if (!img.naturalWidth || img.naturalWidth < 4) { 70 - geenBeeld(); 71 - } 72 - }); 73 - beeld.appendChild(img); 74 - } else { 75 - beeld.classList.add('wb-kaart-geenbeeld'); 76 - } 77 - var titel = document.createElement('span'); 78 - titel.className = 'wb-kaart-titel'; 79 - titel.textContent = k.titel; 80 - kaart.appendChild(beeld); 81 - kaart.appendChild(titel); 82 - return kaart; 83 - } 84 - 85 - function verwerk(tabel) { 86 - if (tabel.classList.contains('wb-vervangen')) { 87 - return; 88 - } 89 - var kaarten = kaartenUitTabel(tabel); 90 - if (!kaarten.length) { 91 - return; 92 - } 93 - var raster = document.createElement('div'); 94 - raster.className = 'wb-kaarten'; 95 - kaarten.forEach(function (k) { raster.appendChild(maakKaart(k)); }); 96 - tabel.parentNode.insertBefore(raster, tabel.nextSibling); 97 - tabel.classList.add('wb-vervangen'); 98 - } 99 - 100 - function start() { 101 - var actie = (window.XWiki && window.XWiki.contextaction) || 'view'; 102 - if (actie !== 'view') { 103 - return; 104 - } 105 - var tabellen = document.querySelectorAll('#xwikicontent table.vgmtabel'); 106 - Array.prototype.forEach.call(tabellen, function (tabel) { 107 - try { verwerk(tabel); } catch (e) { /* bij een fout blijft de tabel gewoon zichtbaar */ } 108 - }); 109 - } 110 - 111 - // Bij wijzigen op de pagina zelf: eerst de oorspronkelijke tabel terug, zodat de editor nooit de kaarten ziet. 112 - function herstel() { 113 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wb-kaarten'), function (r) { r.remove(); }); 114 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent table.wb-vervangen'), function (t) { t.classList.remove('wb-vervangen'); }); 115 - } 116 - 117 - if (typeof window.require === 'function') { 118 - window.require(['jquery'], function ($) { 119 - $(document).on('xwiki:actions:edit', herstel); 120 - $(document).on('xwiki:actions:view', function () { setTimeout(start, 0); }); 121 - }); 122 - } 123 - 124 - if (document.readyState === 'loading') { 125 - document.addEventListener('DOMContentLoaded', start); 126 - } else { 127 - start(); 128 - } 129 -})(); 130 - - name
-
... ... @@ -1,1 +1,0 @@ 1 -Wardenburg tegels als kaarten - parse
-
... ... @@ -1,1 +1,0 @@ 1 -Nee - use
-
... ... @@ -1,1 +1,0 @@ 1 -always
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -781,25 +781,6 @@ 781 781 font-weight: 500; 782 782 line-height: 1.35; 783 783 } 784 -/* Grote schermen: grote kaarten, foto's in hun oorspronkelijke 3:2-verhouding */ 785 -@media (min-width: 1200px) { 786 - .wb-kaarten { 787 - grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); 788 - gap: 26px; 789 - } 790 - .wb-kaart-beeld { 791 - aspect-ratio: 3 / 2; 792 - } 793 - .wb-kaart-titel { 794 - padding: 14px 18px 16px; 795 - font-size: 17px; 796 - } 797 -} 798 -@media (min-width: 1800px) { 799 - .wb-kaarten { 800 - grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); 801 - } 802 -} 803 803 804 804 /* Zonder script: de tabel past in elk geval binnen het scherm */ 805 805 #xwikicontent table.vgmtabel { ... ... @@ -886,35 +886,3 @@ 886 886 } 887 887 } 888 888 889 -/* Overzichtstabellen (livetable): woorden heel laten, lange adressen afkappen met ...; bij aanwijzen het volledige adres */ 890 -#xwikicontent table.xwiki-livetable { 891 - font-size: 14px; 892 -} 893 -#xwikicontent .xwiki-livetable-display-header th, 894 -#xwikicontent .xwiki-livetable-display-body td { 895 - padding: 6px 8px; 896 -} 897 -.xwiki-livetable-display-body td { 898 - word-break: normal; 899 - overflow-wrap: break-word; 900 - hyphens: manual; 901 -} 902 -.xwiki-livetable-display-body td.URL, 903 -.xwiki-livetable-display-body td.DOWNLOADURL { 904 - max-width: 160px; 905 - white-space: nowrap; 906 - overflow: hidden; 907 - text-overflow: ellipsis; 908 -} 909 -.xwiki-livetable-display-body td.URL:hover, 910 -.xwiki-livetable-display-body td.DOWNLOADURL:hover { 911 - white-space: normal; 912 - overflow-wrap: anywhere; 913 -} 914 -/* Een brede overzichtstabel blijft binnen de pagina en schuift zo nodig opzij */ 915 -#xwikicontent table.xwiki-livetable { 916 - display: block; 917 - max-width: 100%; 918 - overflow-x: auto; 919 -} 920 -