Gebruiker:Kameraad Pjotr/imagedelete.js
Uiterlijk
Opmerking: na het publiceren is het wellicht nodig uw browsercache te legen om de veranderingen te zien.
- Firefox / Safari: houd Shift ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
- Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
- Edge: houd Ctrl ingedrukt terwijl u:je op Vernieuwen klikt of druk op Ctrl-F5.
/* <pre><nowiki> */
/* quickimgdelete.js
* Current version: 1.9
* =======================================
* Created by [[:en:User:Howcheng|Howard Cheng]], Nederlandse vertaling door [[Gebruiker:Kameraad Pjotr|Kameraad Pjotr]]
* Released under the [[GNU Public License]] (GPL)
* Full documentation at [[User talk:Howcheng/quickimgdelete.js]]
* =======================================
*/
// ==General configuration==
qid_autosave = true; // Should the edits be saved automatically?
// Site info
qid_path = "/w/index.php";
qid_prettypath = "/wiki/";
qid_hostname = window.location.hostname;
// ==Helper functions==
// from [[User:Jnothman/automod.js]]
function GuessUTCDate() {
var today = new Date();
return today.getUTCFullYear() + '' + today.getUTCMonth() + '' + today.getUTCDate();
}
// From [[en:User:Lupin/autoedit.js]]
function getParamValue(paramName) {
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');
var h=document.location;
var m=cmdRe.exec(h);
if (m) {
try {
return decodeURIComponent(m[1]);
} catch (someError) {}
}
return null;
}
function qid_openWindow(url, windowName) {
if (!windowName) windowName = 'qid_window';
var res = window.open(url, windowName);
if (!res) alert("qid_openWindow: window.open() returned null");
}
function qid_getUploader() {
// Get uploader from first point in the list under "File history"
// Uploader is stored in second A tag in UL tag under "File history"
// Returns title of user page (without name space) in URL form
var el = document.getElementById('filehistory')
if (!el) {
alert("qid_getUploader: Kan de bestandsgeschiedenis niet vinden ... gestopt");
return null;
}
while (el.nextSibling) {
el = el.nextSibling;
if (el.tagName && el.tagName.toLowerCase() == 'ul')
break;
}
if (!el) {
alert("qid_getUploader: Kan de ul-tag niet vinden ... gestopt");
return null;
}
var els = el.getElementsByTagName('li');
if (!els) {
alert("qid_getUploader: Kan de li-tag niet vinden ... gestopt");
return null;
}
var uploaders = new Array();
var re1 = new RegExp('http://' + (qid_hostname + qid_prettypath).replace(/\./g, '\\.') + 'Gebruiker:(.*)$');
var re2 = new RegExp('http://' + (qid_hostname + qid_path).replace(/\./g, '\\.') + '\\?title=Gebruiker:([^&]*)');
var re3 = /Overleg( gebruiker)?:(.*)$/; // this is for IE and handling Unicode characters
var m;
var uploader;
var uploaderList = "";
var count = 0;
el = els[0];
do {
var as = el.childNodes;
for (var k=0; k<as.length; k++) {
if (as[k].tagName != 'A') continue;
m = re3.exec(as[k].title);
if (m) uploader = encodeURIComponent(m[2]);
m = re1.exec(as[k].href);
if (m) uploader = m[1];
m = re2.exec(as[k].href);
if (m) uploader = m[1];
}
if (uploaderList.indexOf(uploader) == -1) {
if (count > 0) uploaderList += "; ";
uploaderList += count + " - " + uploader;
uploaders[uploaders.length] = uploader;
count += 1;
}
el = el.nextSibling;
} while (el);
if (!uploaders || uploaders.length == 0) {
alert("qid_getUploader: Kan de uploader niet vinden ... gestopt");
return null;
}
if (uploaders.length == 1)
return uploaders[0];
var which = parseInt(window.prompt("Welke uploader moet gewaarschuwd worden? " + uploaderList, ""));
if (isNaN(which) || which < 0 || which >= uploaders.length) {
alert("qid_getUploader: Foute selectie ... gestopt");
return null;
}
return uploaders[which];
}
function qid_removeTemplate(editformval, template) {
var templatepos = editformval.indexOf('{{' + template);
if (templatepos > -1) {
var lastbracepos = editformval.indexOf('}}', templatepos) + 1;
editformval = editformval.substr(0, templatepos) + editformval.substr(lastbracepos + 2);
}
return editformval;
}
function qid_doesTemplateExist(editformval, template) {
var templatepos = editformval.indexOf('{{' + template);
return (templatepos > -1);
}
function qid_checkForRedirect(editformval, type) {
if (editformval.toLowerCase().indexOf("#redirect") == -1)
return;
var re = /\[\[([^\]]+)\]\]/;
var m = re.exec(editformval);
var redirtarget = m[1];
var fakeaction = getParamValue("fakeaction");
var pagename = getParamValue("target");
var redirurl = qid_path + '?title=' + redirtarget
+ '&action=edit&fakeaction=' + fakeaction + '&target=' + pagename;
if (type)
redirurl += '&type=' + type;
window.location.replace(redirurl);
}
function qid_saveEditForm(txt, summary) {
document.editform.wpTextbox1.value = txt;
document.editform.wpSummary.value = summary;
if (qid_autosave) document.editform.wpSave.click();
}
function qid_userBeenWarned(txt, template) {
var re = eval("/\<!-- ?Template:" + template + " ?--\>/;");
return re.test(txt);
}
/** ================================================================================
* ==Automatic 'nominate for deletion/gi' script==
* The actions in this section do three things:
* 1. Add a tag to the image page.
* 2. List the image on a log page.
* 3. Add a warning template to the uploader's talk page.
*/
// Configuration
nfd_text = "Nomineer voor verwijdering";
nfd_tooltip = "Nomineer deze afbeelding voor verwijdering";
nfd_prompt = "Reden voor de nominatie?";
nfd_delReq = "Wikipedia:Te_verwijderen_afbeeldingen/Toegevoegd_" + GuessUTCDate();
nfd_deleteTemplate = "afbweg";
nfd_idwTemplate = "awn";
nfd_ifdTemplate = "Gebruiker:Kameraad_Pjotr/Delete";
nfd_glossary = new Array(
new Array("GI", "Geen info"),
new Array("AU", "Schendt auteursrechten"),
new Array("TO", "Twijfel aan toestemming"),
new Array("BG", "Beperkt gebruik"),
new Array("EW", "Enkel wikipedia"),
new Array("NE", "Niet encyclopedisch")
);
function nfd_tagImage(which) {
var promptTxt;
var targetUrl;
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
editlk += '&fakeaction=' + which + '_delete'
switch (which) {
case 'nfd':
promptTxt = nfd_prompt;
targetUrl = nfd_delReq;
break;
}
var reason = prompt(promptTxt, '');
if (!reason) return;
var pagename = encodeURIComponent(mw.config.get('wgPageName'));
var uploader = qid_getUploader();
if (!uploader) return;
qid_openWindow(qid_path + '?title=Overleg_gebruiker:' + uploader
+ '&action=edit&fakeaction=' + which + '_warn&target=' + pagename);
qid_openWindow(qid_path + '?title=' + targetUrl + '&action=edit&fakeaction=' + which + '_add'
+ '&target=' + pagename + '&reason=' + encodeURIComponent(reason)
+ '&uploader=' + uploader, 'qid_ifd_window');
window.location = editlk;
}
function nfd_addDeleteTemplate(template, otherparam) {
var txt = '{{' + template;
var summary;
switch (template) {
case nfd_deleteTemplate:
summary = 'nomineer voor verwijdering';
break;
}
txt += '}}';
var editformval = qid_removeTemplate(document.editform.wpTextbox1.value, 'untagged');
qid_saveEditForm(txt + '\n' + editformval, summary);
}
function nfd_addIdwTemplate(template, target) {
var editformval = document.editform.wpTextbox1.value;
qid_checkForRedirect(editformval);
var txt = '{{' + template + '}}';
editformval += '\n' + txt + '\n';
qid_saveEditForm(editformval, txt);
}
function nfd_updateDelReq(target, reason, uploader) {
var colonPos = target.indexOf(':');
var imageName = target.substring(colonPos + 1);
var abbrevCount = 0;
for (var i = 0; i < nfd_glossary.length; i++) {
var abbrev = nfd_glossary[i][0];
var meaning = nfd_glossary[i][1];
var re = eval("/\\b" + abbrev + "\\b/");
if (re.test(reason))
reason = reason.replace(re, meaning);
}
var txt = '{{subst:' + nfd_ifdTemplate + '|naam=' + imageName +
'|reden=' + reason + '}}';
var editformval = document.editform.wpTextbox1.value + ' - ' + txt + ' ~~' + '~~ \n';
var summary = 'Nominatie van [[:' + target + ']]';
qid_saveEditForm(editformval, summary);
}
function nfd_onload() {
if (document.getElementById('ca-edit') == null) // not editable by non-admin
return;
if (wgCanonicalNamespace == "Afbeelding") {
mw.util.addPortletLink('p-tb', 'javascript:nfd_tagImage(\'nfd\')', nfd_text, 'nom-for-del', nfd_tooltip);
}
var fakeaction = getParamValue('fakeaction');
switch (fakeaction) {
case 'nfd_delete':
nfd_addDeleteTemplate(nfd_deleteTemplate);
break;
break;
case 'nfd_warn':
nfd_addIdwTemplate(nfd_idwTemplate, decodeURIComponent(getParamValue('target')));
break;
case 'nfd_add':
nfd_updateDelReq(decodeURIComponent(getParamValue('target')),
decodeURIComponent(getParamValue('reason')), decodeURIComponent(getParamValue('uploader')));
break;
}
}
$(nfd_onload);
/** ================================================================================
* ==Automatic speedy tagging==
* The actions in this section do one thing:
* 1. Add a tag to the image page.
*/
mmtc_text = "Verplaatsbaar naar Commons";
mmtc_tooltip = "Verplaatsbaar naar Commons";
mncd_text = "Nucommons";
mncd_tooltip = "Nucommons";
function speedyi_addTemplate(template, imagetarget) {
var summary;
var usesubst = false;
switch (template) {
case 'vnc':
summary = 'Afbeelding verplaatsbaar naar [[Commons:Main Page|Commons]].';
break;
case 'nucommons':
var commonsimgname = (!imagetarget) ? wgPageName : imagetarget;
summary = 'Afbeelding bestaat als [[Commons:' + commonsimgname + '|]] op [[Commons:Main Page|Commons]]';
usesubst = true;
break;
}
var editformval = qid_removeTemplate(document.editform.wpTextbox1.value, 'untagged');
if (template == 'Nucommons') { // for ncd, remove "Move to Commons" (and variations thereof) template
var mtctemplates = new Array('vnc', 'Verplaats naar Wikimedia Commons', 'Verplaats naar Commons', 'Verplaats naar commons', 'Verplaats naar Wikimedia commons', 'Verplaats naar wikimedia Commons', 'Verplaats naar wikimedia commons', 'Vnc', 'VNC');
for (var i = 0; i < mtctemplates.length; i++) {
editformval = qid_removeTemplate(editformval, mtctemplates[i]);
}
}
qid_saveEditForm(txt + '\n' + editformval, summary);
}
function speedyi_mark(action) {
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
var xtra = '';
switch (action) {
case "speedyi_mncd":
var commonsimg = window.prompt('Naam op Commons? (leeg laten als de naam hetzelfde is)', '');
if (commonsimg == null) {
alert('speedyi_mark: Action canceled.');
return;
}
if (commonsimg != '') {
xtra = '&target=' + commonsimg;
}
break;
}
window.location = editlk + '&fakeaction=' + action + xtra;
}
function speedyi_onload() {
if (document.getElementById('ca-edit') == null) // not editable by non-admin
return;
if (wgCanonicalNamespace == "Afbeelding") {
mw.util.addPortletLink('p-tb', 'javascript:speedyi_mark(\'speedyi_mmtc\')', mmtc_text, 'verplaats nar commons', mmtc_tooltip);
mw.util.addPortletLink('p-tb', 'javascript:speedyi_mark(\'speedyi_mncd\')', mncd_text, 'nucommons', mncd_tooltip);
}
var fakeaction = getParamValue('fakeaction');
switch (fakeaction) {
case 'speedyi_mmtc':
speedyi_addTemplate('Verplaats naar commons');
break;
case 'speedyi_mncd':
var target = getParamValue('target');
if (target) target = decodeURIComponent(target);
speedyi_addTemplate('nucommons', target);
break;
}
}
$(speedyi_onload);
/* </nowiki></pre> */