„MediaWiki:Gadget-importUtility/inarbeit.js“ – Versionsunterschied
Inhalt gelöscht Inhalt hinzugefügt
in-Arbeit-Buttons | Keine Bearbeitungszusammenfassung | ||
Zeile 15: | Zeile 15: | ||
if (!currentText.includes("(in Arbeit)")) { | if (!currentText.includes("(in Arbeit)")) { | ||
alert(currentText); | |||
return; | |||
var editSummary = `[[#${currentText} (in Arbeit)|→${currentText} (in Arbeit)]]: in Arbeit`; | var editSummary = `[[#${currentText} (in Arbeit)|→${currentText} (in Arbeit)]]: in Arbeit`; | ||
var username = mw.config.get('wgUserName'); | var username = mw.config.get('wgUserName'); |
Version vom 13. Juli 2024, 19:03 Uhr
(function() {
if (mw.config.get('wgPageName') === 'Wikipedia:Importwünsche') {
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function() {
$('#bodyContent').find('.mw-heading :header[id], .mw-headline[id]').each(function() {
if (!$(this).text().includes("(in Arbeit)")) {
$(this).after('<button class="iu-inarbeit" style="cursor:pointer; margin-left:1em;" data-heading-id="' + $(this).attr('id') + '">in Arbeit</button>');
}
});
$('.iu-inarbeit').on('click', function() {
var pageName = 'Wikipedia:Importwünsche';
var headingElement = $('#' + $(this).data('heading-id'));
var currentText = headingElement.text();
var sectionNumber = headingElement.closest('.mw-heading, .mw-headline').prevAll('.mw-heading, .mw-headline').length + 1;
if (!currentText.includes("(in Arbeit)")) {
alert(currentText);
return;
var editSummary = `[[#${currentText} (in Arbeit)|→${currentText} (in Arbeit)]]: in Arbeit`;
var username = mw.config.get('wgUserName');
new mw.Api().get({
action: 'parse',
page: pageName,
prop: 'wikitext',
section: sectionNumber
}).done(function(data) {
var sectionContent = data.parse.wikitext['*'];
var headingMatch = sectionContent.match(/^(=+[^=\n]+?=+)\s*\n/);
if (headingMatch) {
var updatedContent = sectionContent.replace(
headingMatch[0],
headingMatch[1].replace(/([^=]+)/, '$1(in Arbeit) ') + '\n{{/In Arbeit|' + username + '|~~' + '~' + '~~}}\n'
);
new mw.Api().postWithToken('csrf', {
action: 'edit',
title: pageName,
section: sectionNumber,
text: updatedContent,
summary: editSummary
}).done(function() {
window.location.reload(true);
}).fail(function(error) {
mw.notify('Failed to mark section as in progress: ' + error, {type: 'error'});
});
} else {
mw.notify('Failed to find section heading', {type: 'error'});
}
}).fail(function(error) {
mw.notify('Failed to fetch section content: ' + error, {type: 'error'});
});
}
});
});
}
})();