Benutzer:TenWhile6/GRNHelper.js
Zur Navigation springen
Zur Suche springen
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
var v = 'v1.1'
var n = 'GRNHelper'
var GRNHelper = n + ' ' + v
var config = [n, `${n} ${v}`, `[[User:TenWhile6/${n}|${n}]]`, `[[User:TenWhile6/${n}|${n}]] ${v}`];
function execute() {
const wikiPage = 'Wikipedia:Benutzernamen_ändern';
function openDialog() {
const api = new mw.Api();
api.get({
action: 'parse',
page: wikiPage,
prop: 'sections',
format: 'json'
}).then(function(data) {
if (data && data.parse && data.parse.sections) {
let dialogContent = '<form><fieldset>';
dialogContent += '<h3>Warteschlange 🐍 </h3>';
data.parse.sections.forEach(function(section) {
if (section.index > 1) {
dialogContent += `<label><input type="radio" name="section" id="${section.index}" value="${section.index}" />${section.line}</label><br>`;
lastsection = section.index;}
});
try {$(`#${lastsection}`).prop('checked', true);}catch{mw.notify('Warteschlange derzeit leer');return;}
dialogContent += '<h3>Aktion</h3>';
dialogContent += `<label><input type="radio" name="edit" value="Ok" /> Annehmen</label><br>`;
dialogContent += `<label><input type="radio" name="edit" value="Nein1" /> Ablehnen (Ungeeignet)</label><br>`;
dialogContent += `<label><input type="radio" name="edit" value="Nein2" /> Ablehnen (keine Antwort)</label><br>`;
dialogContent += `<label><input type="radio" name="edit" value="Nein3" /> Ablehnen (Name bereits vergeben)</label><br>`;
dialogContent += `<label><input type="radio" name="edit" value="Nein4" /> Ablehnen (Name ist anderem zu ähnlich)</label><br>`;
dialogContent += `<label><input type="radio" name="edit" value="Nein5" /> Ablehnen (andere Begründung)</label><br>`;
dialogContent += `<label><input type="radio" name="edit" value="R" /> Abwartend (Rückfrage)</label><br>`;
dialogContent += '<div style="text-align: center;"><h6 style="color: red;">Made with ❤️ by <a href="https://de.wikipedia.org/wiki/User:TenWhile6">TenWhile6</a></h6></div></fieldset></form>';
const $dialog = $(dialogContent).dialog({
title: config[1],
modal: true,
width: 400,
buttons: {
"OK": function() {
const sectionIndex = $('input[name=section]:checked').val();
const editValue = $('input[name=edit]:checked').val();
const sectionTitle = data.parse.sections[sectionIndex-1].line;
sum = 'not done'
switch (editValue) {
case 'Ok':
addedtext = '{{Ok}} umbenannt';
sum = 'done'
break;
case 'Nein1':
addedtext = '{{Nein}}, ungeeigneter Benutzername, vgl. [[H:AM#Ungeeignet]]';
break;
case 'Nein2':
addedtext = '{{Nein}}, keine Antwort auf Rückfrage(n)';
break;
case 'Nein3':
addedtext = '{{Nein}}, der Benutzername ist bereits vergeben.';
break;
case 'Nein4':
addedtext = '{{Nein}}, der Benutzername ist [[Special:CentralAuth/' + prompt('Benutzername:') + '|einem Anderen]] zu ähnlich.';
break;
case 'Nein5':
addedtext = '{{Nein}}, ' + prompt('{{Nein}}, [Begründung eingeben]');
break;
case 'R':
addedtext = '{{Abwartend}} — ' + prompt('Rückfrage:','{{ping|BENUTZER}} FRAGE');
sum = "on hold"
break;
}
api.get({
action: 'parse',
page: wikiPage,
prop: 'wikitext',
section: sectionIndex,
format: 'json'
}).done(function(result) {
let wikitext = result.parse.wikitext['*'];
wikitext += `\n\n${addedtext} --~~`+'~~';
if (editValue !== 'R') {wikitext+= '\n{{erledigt|--~~'+'~~}}';}
api.postWithEditToken({
action: 'edit',
title: wikiPage,
section: sectionIndex,
text: wikitext,
summary: `/* ${sectionTitle} */ ${sum} (${config[3]})`,
notminor: true,
nocreate: true,
format: 'json'
}).done(function(result) {
if (result && result.edit && result.edit.result === 'Success') {
//alert(`Der Text "${editValue}" wurde erfolgreich zum Abschnitt ${sectionIndex} hinzugefügt.`);
location.reload();
} else {
console.error('Fehler beim Hinzufügen des Textes:', result);
}
}).fail(function(err) {
console.error('Fehler beim Hinzufügen des Textes:', err);
});
}).fail(function(err) {
console.error('Fehler beim Abrufen des Abschnitts:', err);
});
$(this).dialog('close');
},
"Abbrechen": function() {
$(this).dialog('close');
}
}
});
} else {
mw.notify('Keine Abschnitte gefunden.',{'type':'warn','title':GRNHelper});
}
}).fail(function(err) {
mw.notify('Fehler beim Abrufen der Abschnitte:',{'type':'error','title':GRNHelper});
});
}
openDialog();
}
if (mw.config.get('wgPageName') === 'Wikipedia:Benutzernamen_ändern' && mw.config.get('wgDBname') === 'dewiki') {
(function(mw, $) {
function init() {
mw.loader.using(['mediawiki.api', 'mediawiki.util', 'jquery.ui']).then(function() {
var portletLink = mw.util.addPortletLink(
'p-search',
'#',
config[0],
'ca-adduser',
`${config[1]} ausführen`,
null,
'#ca-adduser'
);
$(portletLink).click(function(e) {
e.preventDefault();
execute();
});
});
}
$(init);
}(mediaWiki, jQuery));}