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
/*global UrlParameters, Actions, AdminActions, DOM, EditCommentLength, FeedbackArea, adminflag, deleting, newActionBar, wgPageName, wgTitle, addOnloadHook */
// <pre>
var NowCommons = {
KeepParameterName: 'nc_keep',
TemplateMatch: /\{\{\s*([Vv]orlage:|[Tt]emplate:)?\s*[Nn](CT?|ow[Cc]ommons)\s*(\|(\s*[^}]+\s*))?\}\}/,
GleicherName: false,
CommonsName: '',
Baustein: null,
keepTasks: {
1: {
caption: 'Behalten',
desc: 'Entfernt die NowCommons-Vorlage und fügt einen Hinweis hinzu',
func: function () {
NowCommons.getCommonsName();
if (!NowCommons.CommonsName) {
return;
}
var textbox = document.editform.wpTextbox1;
textbox.value = textbox.value.replace(NowCommons.TemplateMatch,'');
var commons_text = "[[commons:File:" + NowCommons.CommonsName + "|Commons-Version]] (zur Sicherheit sollte die lokale Kopie behalten werden)";
var infoversions = new RegExp(/\|Andere[ _]Versionen\s*=/);
var lizenz = new RegExp("==[^=]*Lizenz[^=]*==");
if (textbox.value.match(infoversions)) {
textbox.value = textbox.value.replace(infoversions, "|Andere Versionen = " + commons_text);
} else if (textbox.value.match(lizenz)) {
textbox.value = textbox.value.replace(lizenz, "* Andere Versionen: " + commons_text + "\n\n== Lizenz ==");
} else {
textbox.value = textbox.value + "* Andere Versionen: " + commons_text;
}
document.editform.wpSummary.value = "Diese Datei ist auf Commons nicht sicher, die lokale Kopie sollte behalten werden.";
}
},
2: {
caption: 'Mängel',
desc: 'Ersetzt die NowCommons-Vorlage durch NowCommons/Mängel',
func: function () {
var textbox = document.editform.wpTextbox1;
textbox.value = textbox.value.replace(NowCommons.TemplateMatch, "{{NowCommons/Mängel$3}}");
document.editform.wpSummary.value = "NowCommons/Mängel";
}
},
4: {
caption: 'Mängel+DÜP',
desc: 'Ersetzt die NowCommons-Vorlage durch NowCommons/Mängel, ergänzt {{DÜP}}',
func: function () {
var textbox = document.editform.wpTextbox1;
textbox.value = "{{Dateiüberprüfung|Quelle|Urheber|Lizenz|Freigabe}}\n\n" + textbox.value.replace(NowCommons.TemplateMatch, "{{NowCommons/Mängel$3}}");
document.editform.wpSummary.value = "NowCommons/Mängel, DÜP";
}
}
},
init: function () {
var nc_keep = UrlParameters[NowCommons.KeepParameterName];
if (!nc_keep) {
NowCommons.Baustein = DOM.get('Vorlage_NowCommons');
if (!NowCommons.Baustein) {
return;
}
NowCommons.getCommonsName();
if (!NowCommons.CommonsName) {
return;
}
NowCommons.markProblems();
NowCommons.addActionLinks();
} else {
NowCommons.keepTasks[nc_keep].func.call();
}
},
addActionLinks: function () {
var normal_link = '/w/index.php?title=' + wgPageName;
var action_div = newActionBar('NowCommons_Actions');
// Löschbutton(s) bauen.
if (typeof adminflag === 'undefined' || adminflag === true) {
var del_grund = 'Eine identische Datei ist auf Commons [[:commons:File:' + NowCommons.CommonsName + '|verfügbar]]' + (NowCommons.GleicherName ? '.' : ', alle Referenzen wurden ersetzt.');
if ( EditCommentLength(del_grund) > -55 ) {
del_grund = del_grund + ' Sämtliche Metainformationen wurden korrekt übertragen.';
}
var normal_dellink = normal_link + '&action=delete&wpReason=' + encodeURIComponent(del_grund);
var createNormal = false;
var del_a = document.createElement('a');
del_a.style.fontWeight = 'bold';
del_a.style.fontSize = '150%';
del_a.style.cursor = 'pointer';
del_a.innerHTML = 'Löschen';
if ( typeof AdminActions === 'object' && typeof AdminActions.deletePage === 'function' ) { // Codeispoetry-Löschen
del_a.setAttribute('onclick', 'AdminActions.nukeDelete("' + del_grund + '", function() { nextItem("NowCommons", 6); }, "File:" + wgTitle, ' + (DOM.get('ca-talk').className === 'new' ? 'false' : '"File talk:' + wgTitle + '"') + ');');
del_a.title = 'Löscht die Datei sofort mit einer passenden Begründung';
createNormal = true;
} else if ( typeof deleting === 'function' ) { // DerHexer-Löschen
del_a.setAttribute('onclick', 'deleting("' + del_grund + '");');
del_a.title = 'Löscht die Datei sofort mit einer passenden Begründung';
createNormal = true;
} else if (typeof Actions === 'object' && typeof Actions.deleteFile === 'function' && typeof FeedbackArea === 'function') { // D-Löschen
del_a.setAttribute('onclick', 'var feedback = new FeedbackArea(); Actions.deleteFile(feedback, "' + wgPageName + '", "' + del_grund + '", function() { nextItem("NowCommons", 6);});');
del_a.title = 'Löscht die Datei sofort mit einer passenden Begründung';
createNormal = true;
} else {
del_a.href = normal_dellink;
del_a.title = 'Löscht die Datei über die normale Mediawiki-Oberfläche';
createNormal = false;
}
action_div.appendChild(del_a);
action_div.appendChild(document.createTextNode(' '));
if (createNormal) {
action_div.addLink('(Langsam)', 'Löscht die Datei über die normale Mediawiki-Oberfläche', normal_dellink);
}
}
for (var key in NowCommons.keepTasks) {
action_div.addLink(
NowCommons.keepTasks[key].caption,
NowCommons.keepTasks[key].desc,
normal_link + '&action=edit&' + NowCommons.KeepParameterName + '=' + key
);
}
action_div.addLink('Nächstes', 'Springt zur nächsten als NowCommons markierten Datei', '', "nextItem('NowCommons', 6)");
NowCommons.Baustein.insertBefore(action_div, NowCommons.Baustein.firstChild);
},
markProblems: function () {
var prob_div = document.createElement('div');
prob_div.style.color = '#ff0000';
prob_div.style.width = '100%';
prob_div.style.textAlign = 'center';
prob_div.id = 'NowCommons_Problems';
prob_div.addItem = function (caption, title) {
var item = document.createElement('span');
item.innerHTML = caption;
item.title = title;
this.appendChild(item);
this.appendChild(document.createTextNode(' '));
};
// Noch verwendete Datei mit anderem Commonsnamen
if (!NowCommons.GleicherName) {
if (document.getElementById('mw-imagepage-section-linkstoimage')) {
prob_div.addItem ('Verwendung', 'Die Datei liegt auf Commons unter einem anderen Namen und wird noch verwendet.');
} else if (wgAction === 'view' && !document.getElementById('mw-imagepage-nolinkstoimage')) {
prob_div.addItem ('Verwendung:Bug!', 'Verwendungen konnten nicht bestimmt werden, vermutlich ein Bug im NowCommons-Script.');
} else if (wgAction === 'edit') {
prob_div.addItem ('Verwendung?', 'Verwendungen konnten nicht bestimmt werden, da im Vorschaumodus');
}
}
// existierende Diskussionsseite
if (document.getElementById('ca-talk').className !== 'new') {
prob_div.addItem ('Disku', 'Eine Diskussionsseite existiert.');
}
// NoCommons-Baustein
if ( document.getElementById('Vorlage_NoCommons') ) {
prob_div.addItem ('NoCommons', 'Auf der Dateibeschreibungsseite ist ein NoCommons-Hinweis eingebunden');
}
// Commons-Version identisch?
var found = false;
var lis = DOM.fetch(DOM.get('mw-imagepage-section-duplicates'), 'li');
if (lis !== null) {
for (var n = 0 ; n < lis.length ; ++n) {
var regexp = new RegExp(('http://commons.wikimedia.org/wiki/Image:' + NowCommons.CommonsName).escapeRE().replace(/[_ ]/g, '[_ ]'));
if (decodeURIComponent(lis[n].getElementsByTagName('a')[0].getAttribute('href')).search(regexp) === 0) {
found = true;
break;
}
}
}
if (lis === null || !found) {
prob_div.addItem ('Nicht-identisch', 'Die Commonsversion ist nicht vorhanden oder nicht identisch.');
}
NowCommons.Baustein.insertBefore(prob_div, NowCommons.Baustein.firstChild);
NowCommons.Baustein.insertBefore(document.createElement('span'), prob_div.nextSibling); // stupid IE fix.
},
getCommonsName: function () {
if (document.location.toString().match(/action=(edit|submit)/)) {
NowCommons.CommonsName = document.editform.wpTextbox1.value.match(NowCommons.TemplateMatch)[4];
if (!NowCommons.CommonsName) {
NowCommons.CommonsName = wgTitle;
NowCommons.GleicherName = true;
}
} else {
var a = DOM.fetch(NowCommons.Baustein, 'A', 'extiw');
for (var i = 0; i < a.length; i++) {
if (((a[i].title.search(/^commons:/i) === 0) || (a[i].href && a[i].href.search("http://commons.wikimedia.org/wiki/File:")===0)) && a[i].title !== "commons:Hauptseite") {
NowCommons.CommonsName = a[i].title.match(/^[Cc]ommons:\s*[Ff]ile\s*:\s*(.+)$/)[1];
if (a[i].innerHTML.search("dem selben Namen") >= 0) {
NowCommons.GleicherName = true;
}
}
}
}
}
};
addOnloadHook(NowCommons.init);
// </pre>