Wijzigen voor document Huisstijl
Laatst gewijzigd door Jeeves de Butler op 07-10-2026 01:56
Van versie 16.1
gewijzigd door Jeeves de Butler
op 05-10-2026 03:49
op 05-10-2026 03:49
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,139 +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 zetIcoon(beeld) { 45 - beeld.classList.add('wb-kaart-geenbeeld'); 46 - var icoon = document.createElement('span'); 47 - icoon.className = 'fa fa-book wb-kaart-icoon'; 48 - icoon.setAttribute('aria-hidden', 'true'); 49 - beeld.appendChild(icoon); 50 - } 51 - 52 - function maakKaart(k) { 53 - var kaart = document.createElement(k.link ? 'a' : 'div'); 54 - kaart.className = 'wb-kaart'; 55 - if (k.link) { 56 - kaart.setAttribute('href', k.link.getAttribute('href')); 57 - if (k.link.getAttribute('target')) { 58 - kaart.setAttribute('target', k.link.getAttribute('target')); 59 - kaart.setAttribute('rel', 'noopener'); 60 - } 61 - } 62 - var beeld = document.createElement('span'); 63 - beeld.className = 'wb-kaart-beeld'; 64 - if (k.img) { 65 - var img = document.createElement('img'); 66 - // Het origineel laden in plaats van de door XWiki verkleinde versie (?width=…&height=…), zodat grote kaarten scherp zijn. 67 - img.src = (k.img.currentSrc || k.img.src).replace(/([?&])(width|height)=d+/g, '$1').replace(/[?&]+$/, '').replace(/?&+/, '?').replace(/&&+/g, '&'); 68 - img.alt = ''; 69 - img.loading = 'lazy'; 70 - img.decoding = 'async'; 71 - var geenBeeld = function () { 72 - img.remove(); 73 - zetIcoon(beeld); 74 - }; 75 - img.addEventListener('error', geenBeeld); 76 - // Sommige externe sites geven bij een verdwenen afbeelding een leeg plaatje in plaats van een fout. 77 - img.addEventListener('load', function () { 78 - if (!img.naturalWidth || img.naturalWidth < 4) { 79 - geenBeeld(); 80 - } 81 - }); 82 - beeld.appendChild(img); 83 - } else { 84 - zetIcoon(beeld); 85 - } 86 - var titel = document.createElement('span'); 87 - titel.className = 'wb-kaart-titel'; 88 - titel.textContent = k.titel; 89 - kaart.appendChild(beeld); 90 - kaart.appendChild(titel); 91 - return kaart; 92 - } 93 - 94 - function verwerk(tabel) { 95 - if (tabel.classList.contains('wb-vervangen')) { 96 - return; 97 - } 98 - var kaarten = kaartenUitTabel(tabel); 99 - if (!kaarten.length) { 100 - return; 101 - } 102 - var raster = document.createElement('div'); 103 - raster.className = 'wb-kaarten'; 104 - kaarten.forEach(function (k) { raster.appendChild(maakKaart(k)); }); 105 - tabel.parentNode.insertBefore(raster, tabel.nextSibling); 106 - tabel.classList.add('wb-vervangen'); 107 - } 108 - 109 - function start() { 110 - var actie = (window.XWiki && window.XWiki.contextaction) || 'view'; 111 - if (actie !== 'view') { 112 - return; 113 - } 114 - var tabellen = document.querySelectorAll('#xwikicontent table.vgmtabel'); 115 - Array.prototype.forEach.call(tabellen, function (tabel) { 116 - try { verwerk(tabel); } catch (e) { /* bij een fout blijft de tabel gewoon zichtbaar */ } 117 - }); 118 - } 119 - 120 - // Bij wijzigen op de pagina zelf: eerst de oorspronkelijke tabel terug, zodat de editor nooit de kaarten ziet. 121 - function herstel() { 122 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wb-kaarten'), function (r) { r.remove(); }); 123 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent table.wb-vervangen'), function (t) { t.classList.remove('wb-vervangen'); }); 124 - } 125 - 126 - if (typeof window.require === 'function') { 127 - window.require(['jquery'], function ($) { 128 - $(document).on('xwiki:actions:edit', herstel); 129 - $(document).on('xwiki:actions:view', function () { setTimeout(start, 0); }); 130 - }); 131 - } 132 - 133 - if (document.readyState === 'loading') { 134 - document.addEventListener('DOMContentLoaded', start); 135 - } else { 136 - start(); 137 - } 138 -})(); 139 - - 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
-
... ... @@ -764,13 +764,13 @@ 764 764 .wb-kaart:hover .wb-kaart-beeld img { 765 765 transform: scale(1.03); 766 766 } 767 -/* Geen of verdwenen afbeelding: het script zet er een boekpictogram in (geen backslash-codes in deze CSS: 768 - de CSS-verkleiner van XWiki breekt die, en dan valt de rest van het bestand weg). */ 769 -.wb-kaart-icoon { 767 +.wb-kaart-geenbeeld::before { 768 + content: "02d"; 770 770 position: absolute; 771 771 top: 50%; 772 772 left: 50%; 773 773 transform: translate(-50%, -50%); 773 + font-family: FontAwesome; 774 774 font-size: 34px; 775 775 color: #b86e00; 776 776 opacity: .5; ... ... @@ -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 7px; 896 -} 897 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td { 898 - word-break: normal; 899 - overflow-wrap: break-word; 900 - hyphens: manual; 901 -} 902 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.URL, 903 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.DOWNLOADURL { 904 - max-width: 140px; 905 - white-space: nowrap; 906 - overflow: hidden; 907 - text-overflow: ellipsis; 908 -} 909 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.URL:hover, 910 -#xwikicontent table.xwiki-livetable .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 -