Änderungen von Dokument Abkürzungsverzeichnis

Zuletzt geändert von Richard Kaden am 10.11.2025 14:47

Von Version 11.1
bearbeitet von admin
am 22.08.2025 12:08
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 13.1
bearbeitet von Erik Hübner
am 23.10.2025 11:59
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.admin
1 +XWiki.ErikHuebner
XWiki.JavaScriptExtension[0]
cache
... ... @@ -1,0 +1,1 @@
1 +long
code
... ... @@ -1,0 +1,89 @@
1 +function initTableFilter() {
2 + var table = document.querySelector('table'); // Erste Tabelle auf der Seite
3 + if (!table) return; // Fallback, falls keine Tabelle
4 + var tbody = table.querySelector('tbody') || table; // Fallback auf table, falls kein tbody
5 + var rows = Array.from(table.querySelectorAll('tr')).slice(1); // Alle Zeilen außer Header
6 + var availableLetters = new Set();
7 +
8 + // Alphabetisch sortieren
9 + rows.sort(function(a, b) {
10 + var textA = a.querySelector('td:first-child').textContent.trim().toUpperCase();
11 + var textB = b.querySelector('td:first-child').textContent.trim().toUpperCase();
12 + return textA.localeCompare(textB, 'de', { sensitivity: 'base' });
13 + });
14 +
15 + // Sortierte Zeilen wieder in die Tabelle einfügen
16 + rows.forEach(function(row) {
17 + tbody.appendChild(row);
18 + });
19 +
20 + // Klassen dynamisch zuweisen und Anfangsbuchstaben sammeln
21 + rows.forEach(function(row) {
22 + var firstCell = row.querySelector('td:first-child'); // Erste Spalte (Begriff)
23 + if (firstCell && firstCell.textContent) {
24 + var firstChar = firstCell.textContent.trim().charAt(0).toUpperCase();
25 + // Umlaute handhaben
26 + if (firstChar === 'Ä') firstChar = 'Ä';
27 + else if (firstChar === 'Ö') firstChar = 'Ö';
28 + else if (firstChar === 'Ü') firstChar = 'Ü';
29 + row.classList.add('letter-' + firstChar);
30 + availableLetters.add(firstChar);
31 + }
32 + });
33 +
34 + // Buchstaben ohne Einträge ausgrauen
35 + var letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'Ä', 'Ö', 'Ü'];
36 + letters.forEach(function(letter) {
37 + var link = document.getElementById('letter-' + letter);
38 + if (link && !availableLetters.has(letter)) {
39 + link.classList.add('disabled');
40 + link.style.pointerEvents = 'none'; // Klick deaktivieren
41 + }
42 + });
43 +
44 + // Initial: Alle anzeigen und "Alle" highlighten
45 + filterTable('Alle', document.getElementById('all-link')); // "Alle" mit Link-Referenz aufrufen
46 +}
47 +
48 +function filterTable(letter, targetLink) {
49 + var table = document.querySelector('table');
50 + if (!table) return;
51 + var rows = table.querySelectorAll('tr');
52 + var visibleCount = 0;
53 +
54 + rows.forEach(function(row, index) {
55 + if (index === 0) { // Header immer sichtbar
56 + row.style.display = '';
57 + return;
58 + }
59 + if (letter === 'Alle') {
60 + row.style.display = '';
61 + visibleCount++;
62 + } else if (row.classList.contains('letter-' + letter)) {
63 + row.style.display = '';
64 + visibleCount++;
65 + } else {
66 + row.style.display = 'none';
67 + }
68 + });
69 +
70 + // Aktiven Buchstaben highlighten
71 + var links = document.querySelectorAll('#alpha-nav a');
72 + links.forEach(function(link) {
73 + link.style.fontWeight = 'normal';
74 + link.style.color = 'inherit';
75 + });
76 + // Highlight entweder über targetLink (Initialisierung) oder event.target (Klick)
77 + var linkToHighlight = targetLink || event.target;
78 + if (linkToHighlight) {
79 + linkToHighlight.style.fontWeight = 'bold';
80 + linkToHighlight.style.color = '#00597B'; // Corporate Design: Dunkelblau
81 + }
82 +}
83 +
84 +// Initialisierung nach Laden
85 +if (document.readyState === 'loading') {
86 + document.addEventListener('DOMContentLoaded', initTableFilter);
87 +} else {
88 + initTableFilter();
89 +}
name
... ... @@ -1,0 +1,1 @@
1 +Abkürzungsverzeichnis
use
... ... @@ -1,0 +1,1 @@
1 +currentPage