MediaWiki:Common.js: Difference between revisions
Appearance
Der Seiteninhalt wurde durch einen anderen Text ersetzt: „→Das folgende JavaScript wird für alle Benutzer geladen.: “ Tag: Replaced |
No edit summary |
||
Line 1: | Line 1: | ||
/* Das folgende JavaScript wird für alle Benutzer geladen. */ | /* Das folgende JavaScript wird für alle Benutzer geladen. */ | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | |||
console.log('DataTables-Skript wird geladen...'); | |||
// DataTables JS nachladen und dann initialisieren | |||
mw.loader.getScript('https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js') | |||
.then(function() { | |||
console.log('DataTables erfolgreich geladen! Initialisiere Tabelle...'); | |||
$(document).ready(function() { | |||
$('#catalog').DataTable({ | |||
paging: true, | |||
pageLength: 100, | |||
searching: true, | |||
ordering: true, | |||
lengthMenu: [ [10, 25, 50, 100, 200, 600], [10, 25, 50, 100, 200, 600] ], | |||
order: [[1, 'asc']], | |||
language: { | |||
search: "Suche:", | |||
lengthMenu: "Show _MENU_ Entries", | |||
zeroRecords: "No Matches", | |||
info: "Page _PAGE_ of _PAGES_", | |||
infoEmpty: "Empty", | |||
infoFiltered: "(out of _MAX_ total entries)" | |||
}, | |||
initComplete: function () { | |||
// Fügt für jede Spalte ein Suchfeld hinzu | |||
this.api().columns().every(function () { | |||
var column = this; | |||
var header = $(column.header()); | |||
var columnTitle = header.text(); // Spaltentitel extrahieren | |||
var input = $('<input type="text" placeholder="' + columnTitle + ' ..." style="width: 100%; padding: 5px;"/>') | |||
.appendTo($(header).empty()) // Leert die Headerzelle und fügt das Eingabefeld ein | |||
.on('keyup change', function () { | |||
column.search(this.value).draw(); // Filtert die Spalte nach Eingabewerten | |||
}) | |||
.on('click', function(e) { | |||
e.stopPropagation(); // Verhindert, dass der Klick die Sortierung beeinflusst | |||
}); | |||
}); | |||
} | |||
}); | |||
}); | |||
}) | |||
.catch(function(err) { | |||
console.error('Fehler beim Laden von DataTables:', err); | |||
}); |
Revision as of 22:26, 24 June 2025
/* Das folgende JavaScript wird für alle Benutzer geladen. */ /* Any JavaScript here will be loaded for all users on every page load. */ console.log('DataTables-Skript wird geladen...'); // DataTables JS nachladen und dann initialisieren mw.loader.getScript('https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js') .then(function() { console.log('DataTables erfolgreich geladen! Initialisiere Tabelle...'); $(document).ready(function() { $('#catalog').DataTable({ paging: true, pageLength: 100, searching: true, ordering: true, lengthMenu: [ [10, 25, 50, 100, 200, 600], [10, 25, 50, 100, 200, 600] ], order: [[1, 'asc']], language: { search: "Suche:", lengthMenu: "Show _MENU_ Entries", zeroRecords: "No Matches", info: "Page _PAGE_ of _PAGES_", infoEmpty: "Empty", infoFiltered: "(out of _MAX_ total entries)" }, initComplete: function () { // Fügt für jede Spalte ein Suchfeld hinzu this.api().columns().every(function () { var column = this; var header = $(column.header()); var columnTitle = header.text(); // Spaltentitel extrahieren var input = $('<input type="text" placeholder="' + columnTitle + ' ..." style="width: 100%; padding: 5px;"/>') .appendTo($(header).empty()) // Leert die Headerzelle und fügt das Eingabefeld ein .on('keyup change', function () { column.search(this.value).draw(); // Filtert die Spalte nach Eingabewerten }) .on('click', function(e) { e.stopPropagation(); // Verhindert, dass der Klick die Sortierung beeinflusst }); }); } }); }); }) .catch(function(err) { console.error('Fehler beim Laden von DataTables:', err); });