Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
// Das Script Datatables.js lädt Datatables in der Version 1.13.5 und nimmt tabellenpezifische Anpassungen vor, insbesondere für die Toolliste
// Parameter des Querystrings zurückgeben, siehe Quelle https://stackoverflow.com/questions/979975/how-to-get-the-value-from-the-url-parameter
var querystring = function () {
var query_string = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if (typeof query_string[pair[0]] === "undefined") {
query_string[pair[0]] = pair[1];
} else if (typeof query_string[pair[0]] === "string") {
var arr = [ query_string[pair[0]], pair[1] ];
query_string[pair[0]] = arr;
} else {
query_string[pair[0]].push(pair[1]);
}
}
return query_string;
} ();
// Toolliste
if (mw.config.get( 'wgPageName' ) === 'Portal:Tools') {
// Das Script datatables-1.10.19.min.js erstellt interaktive Tabellen mit Filterfunktionen
// Der Quellcode wurde durch Sprymedia Ltd. unter der MIT-Lizenz bereitgestellt
// Weitere Informationen unter http://www.datatables.net
$.getScript( 'https://wiki.llz.uni-halle.de/resources/assets/js/datatables-1.13.5.min.js', function() {
// Die Erweiterung fnGetColumnData wurde von Benedikt Forchhammer bereitgestellt
$.fn.dataTableExt.oApi.fnGetColumnData = function ( oSettings, iColumn, bUnique, bFiltered, bIgnoreEmpty ) {
if ( typeof iColumn == "undefined" ) return new Array();
if ( typeof bUnique == "undefined" ) bUnique = true;
if ( typeof bFiltered == "undefined" ) bFiltered = true;
if ( typeof bIgnoreEmpty == "undefined" ) bIgnoreEmpty = true;
var aiRows;
if (bFiltered == true) aiRows = oSettings.aiDisplay;
else aiRows = oSettings.aiDisplayMaster; // all row numbers
var asResultData = new Array();
for (var i=0,c=aiRows.length; i<c; i++) {
iRow = aiRows[i];
var aData = this.fnGetData(iRow);
var sValue = aData[iColumn];
if (bIgnoreEmpty == true && sValue.length == 0) continue;
else if (bUnique == true && jQuery.inArray(sValue, asResultData) > -1) continue;
else asResultData.push(sValue);
}
return asResultData;
};
// Die Erweiterung fnFilterClear wurde von Allan Jardine bereitgestellt
$.fn.dataTableExt.oApi.fnFilterClear = function ( oSettings ) {
oSettings.oPreviousSearch.sSearch = "";
if ( typeof oSettings.aanFeatures.f != 'undefined' ) {
var n = oSettings.aanFeatures.f;
for ( var i=0, iLen=n.length ; i<iLen ; i++ ) {
$('input', n[i]).val( '' );
}
}
for ( var i=0, iLen=oSettings.aoPreSearchCols.length ; i<iLen ; i++ ) {
oSettings.aoPreSearchCols[i].sSearch = "";
}
oSettings.oApi._fnReDraw( oSettings );
};
// Toolliste in diesem Wiki
// Menüfeld füllen
function fillSelectFilter( arrColumnData ) {
var strAll = '';
var expSeparator = / *,{1} */;
var arrSelectList = new Array();
for ( i = 0; i < arrColumnData.length; i++ ) {
arrFieldData = arrColumnData[i].split(expSeparator);
for ( j = 0; j < arrFieldData.length; j++ ) {
if (jQuery.inArray(arrFieldData[j], arrSelectList) > -1) {
continue;
} else {
arrSelectList.push(arrFieldData[j]);
}
}
}
arrSelectList.sort();
var strHtml = '<select><option value="">' + strAll + '</option>', i;
for ( k = 0; k < arrSelectList.length; k++ ) {
strHtml += '<option value="' + arrSelectList[k] + '">' + arrSelectList[k] + '</option>';
}
return strHtml + '</select>';
}
// Eigenschaften festlegen
var objFilterTable = $(".datatable #tools").dataTable( {
"bAutoWidth": true,
"bFilter": true,
"bInfo": false,
"bLengthChange": false,
"bPaginate": false,
"bProcessing": false,
"bSort": false,
"bSortClasses": false,
"oLanguage": {
"sEmptyTable": "Die Tabelle ist leer.",
"sSearch": "",
"sZeroRecords": "Die Filter führen zu keinem Ergebnis.",
},
"columnDefs": [
{
"targets": [6, 7],
"visible": false,
"searchable": true
}
]
});
// Toolbar erweitern
$("#tools_filter").append("<div class='zusatzfilter'><label><input type='checkbox' id='intern'>Nur universitätsweite Tools anzeigen</label><label><input type='checkbox' id='datenschutzkonform'>Nur datenschutzkonforme Tools anzeigen</label></div>");
$(".dataTables_filter input[type='search']").attr("placeholder", "Suchbegriff");
// Filter erstellen
$(".datatable thead td").each( function ( i ) {
if ($(this).hasClass("selectFilter")){
this.innerHTML = fillSelectFilter( objFilterTable.fnGetColumnData(i) );
$("select", this).change( function () {
objFilterTable.fnFilter( $(this).val(), i );
});
} else if ($(this).hasClass("inputFilter")) {
this.innerHTML = '<input>';
};
});
// Nicht-universelle Filter für die Toolliste
$(".datatable thead input:eq(0)").keyup( function () {
objFilterTable.fnFilter( $(this).val(), 0 );
});
$(".datatable thead input:eq(3)").keyup( function () {
objFilterTable.fnFilter( $(this).val(), 3 );
});
$("#datenschutzkonform").click(function() {
if ($(this).is(":checked")) {
objFilterTable.fnFilter("Datenschutzkonform", 6);
} else {
objFilterTable.fnFilter("", 6);
}
});
$("#intern").click(function() {
if ($(this).is(":checked")) {
objFilterTable.fnFilter("Universitätsweit", 7);
} else {
objFilterTable.fnFilter("", 7);
}
});
// Alle Filter zurücksetzen
$( ".datatable .aktionen a#resetFilter" ).click( function( ) {
objFilterTable.fnFilterClear();
$(".datatable thead td").each( function ( ) {
$("input").val( '' );
$("select").val( '' );
});
$("#datenschutzkonform").prop("checked", false);
$("#intern").prop("checked", false);
});
// Kategorie vorauswählen
var strKategorie = querystring.kategorie;
if (typeof(strKategorie) !== 'undefined') {
$(".datatable thead td").each( function ( i ) {
if ( $(this).attr('id') == 'kategorie' ) {
objFilterTable.fnFilter( strKategorie, i );
$("select").val( strKategorie );
}
});
}
});
}
// Tool vorschlagen
if (mw.config.get( 'wgPageName' ) === 'Tool_vorschlagen') {
// Formular absenden
$(".formular .aktionen a#absenden").click( function(){
var strKey = '<input type="hidden" name="key" value="pI32JzLW7zz8IsL4wm6zmtLBHoneKJUgeVgRahJ9ryLALdf3ZoYJHtM0yGglOZ7">';
$(".formular form#vorschlagen").append(strKey).submit();
alert("Das Formular wurde versendet.");
$(".formular input, .formular select").each( function() {
$(this).val('');
});
});
}
// Tool hinzufügen
if (mw.config.get( 'wgPageName' ) === 'Hilfe:Tool_hinzufügen') {
// Auswahlmenüs füllen
$.each (menü, function(feld, wert) {
var strAll = '';
var strHtml = '<option value="">' + strAll + '</option>';
for ( i = 0; i < wert.length; i++ ) {
strHtml += '<option value="' + wert[i] + '">' + wert[i] + '</option>';
}
$(".formular #" + feld + " select").prepend(strHtml);
});
// Auswahl hinzufügen
$(".formular select").change(function (){
var expSeparator = / *,{1} */;
var strAdd = $(this).val();
if (strAdd.length > 0) {
var arrInput = new Array();
if ($(this).next(".formular input").val().length > 0) {
var arrInput = $(this).next(".formular input").val().split(expSeparator);
}
if ($.inArray(strAdd, arrInput) == -1) {
arrInput.push(strAdd);
}
$(this).next(".formular input").val(arrInput.join(', '));
}
});
// Quelltext für Toolliste
$(".formular .aktionen#merkmale a#liste").click( function() {
var strQuelltext = toolliste;
$(".formular input, .formular textarea").each(function() {
strQuelltext = strQuelltext.replace('{{' + $(this).parent().attr("id") + '}}', $(this).val().trim());
});
if ( $("#verfügbarkeit input").val().indexOf("Universitätsweit") > -1 ) {
strQuelltext = strQuelltext.replace('{{label}}', ' class="label"');
} else {
strQuelltext = strQuelltext.replace('{{label}}', '');
}
$(".formular .quelltext textarea").val(strQuelltext);
$(".formular .quelltext div").html('Diesen Quelltext in die <b>Toolliste</b> kopieren.');
});
// Quelltext für Detailseite
$(".formular .aktionen#merkmale a#details").click( function() {
var strQuelltext = detailseite;
$(".formular input, .formular textarea").each(function() {
strQuelltext = strQuelltext.replace('{{' + $(this).parent().attr("id") + '}}', $(this).val().trim());
});
$(".formular .quelltext textarea").val(strQuelltext);
$(".formular .quelltext div").html('Diesen Quelltext in die <b>Detailseite</b> kopieren.');
});
// Detailseite erstellen
$(".formular #seitenname input").keyup(function(){
if ($(".formular #seitenname input").val().trim().length > 0) {
var strLink = '<a id="erstellen" href="https://wiki.llz.uni-halle.de/index.php?title=' + $(".formular #seitenname input").val().trim() + '&action=edit" target="editor">Detailseite erstellen</a>';
$(".formular .aktionen#quelltext a#erstellen").remove();
$(".formular .aktionen#quelltext").append(strLink);
} else {
$(".formular .aktionen#quelltext a#erstellen").remove();
}
});
}