Benutzer:Forrester/düp-setzen-monobook.js
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
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
mw.loader.getScript('https://de.wikipedia.org/w/index.php?title=Benutzer:Forrester/d%C3%BCp-helperfunctions-monobook.js&action=raw&ctype=text/javascript').then(function () {
// DÜP-Template overlay
var DuepTemplate = {
name: "Dateiüberprüfung",
rows: [
{ element: 'duep_quelle', field: "Quelle", title: "Wenn nicht deutlich wird, woher der Uploader die Datei hat" },
{ element: 'duep_urheber', field: "Urheber", title: "Wenn nicht deutlich wird, wer der Urheber der Datei ist" },
{ element: 'duep_lizenz', field: "Lizenz", title: "Wenn die Datei nicht unter einer freien Lizenz veröffentlicht wurde" },
{ element: 'duep_freigabe', field: "Freigabe", title: "Wenn nicht deutlich wird, dass der Urheber einer freien Lizenz zugestimmt hat" },
{ element: 'duep_gezeigtes', field: "Gezeigtes Werk", title: "Wenn nicht klar ist, dass der Urheber des Originalwerks einer freien Lizenz zugestimmt hat" },
{ element: 'duep_besonderer', field: "Besonderer Fall", title: "Wenn ein besonderer Fall vorliegt (persönliche Benachrichtigung)" }
],
eachRow: function(it) {
for (var i=0; i<this.rows.length; i++) {
it(this.rows[i]);
}
}
};
/** add the form overlay */
function addForm() {
var overlay = document.createElement("div");
overlay.setAttribute("id", "overlay-duep");
overlay.style.cssText = "position:absolute; "
+ "top:200px; "
+ "left:200px; "
+ "border:2px solid black; "
+ "background-color:#DDDDDD; "
+ "z-index:99999; "
+ "padding:10px; "
+ "font-size:12pt;";
var form = document.createElement("form");
form.setAttribute("id", "duep_overlay_form");
DuepTemplate.eachRow(function(row) {
var input = document.createElement("input");
input.setAttribute("id", row.element);
input.setAttribute("type", "checkbox");
input.setAttribute("checked", "checked");
form.appendChild(input);
var label = document.createElement("label");
label.setAttribute("for", row.element);
label.setAttribute("title", row.title);
label.textContent = row.field;
form.appendChild(label);
form.appendChild(document.createElement("br"));
});
form.appendChild(document.createElement("br"));
form.appendChild(MiniUtil.jsLink("Ok", execute));
form.appendChild(document.createTextNode(" "));
form.appendChild(MiniUtil.jsLink("Clear", clearForm));
form.appendChild(document.createTextNode(" "));
form.appendChild(MiniUtil.jsLink("Cancel", removeForm));
overlay.appendChild(form);
document.getElementsByTagName("body")[0]
.appendChild(overlay);
}
/** remove the form overlay */
function removeForm() {
MiniUtil.removeNode(
document.getElementById("overlay-duep"));
}
/** reset checkboxes in the form overlay */
function clearForm() {
DuepTemplate.eachRow(function(row) {
document.getElementById(row.element).checked = false;
});
}
/** change the current page by replacing duep-templates with new ones */
function execute() {
var newText = compile();
function change(text) {
var out1 = text.replace(/\{\{Dateiüberprüfung.*\}\}/, newText);
var out2 = text.replace(/\{\{DÜP.*\}\}/, newText);
return out1 != text ? out1 :
out2 != text ? out2 :
newText + "\n\n" + text;
}
MiniWiki.changeText(mw.config.get('wgPageName'), change, "Dateiüberprüfung", MiniUtil.reloader());
removeForm();
}
/** compile checkboxes into a template string */
function compile() {
var newText = "{{" + DuepTemplate.name;
DuepTemplate.eachRow(function(row) {
if (document.getElementById(row.element).checked)
newText += "|" + row.field;
});
newText += "}}";
return newText;
}
//------------------------------------------------------------------------------
//## init
if (MiniUtil.imageView()) {
MiniUtil.addJsTab("DÜP", addForm);
}
});