„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'});
                    });
                }
            });
        });
    }
})();