mw.loader.using(['mediawiki.util', 'mediawiki.api'], function () { // 1. Add a link to the toolbox mw.util.addPortletLink( '
mw.loader.using(['mediawiki.util', 'mediawiki.api'], function () {
// 1. Add a link to the toolbox
mw.util.addPortletLink(
'p-tb',
mw.util.getUrl('User:Cactusisme/Add Text'),
'Add Text to Pages',
't-addtext',
'Open Add Text panel'
);
// 2. Check if we're on the tool page
if (mw.config.get('wgPageName') === 'User:Cactusisme/Add_Text') {
var $content = $('#mw-content-text');
$content.empty(); // Clear existing content
// Inject form UI
$content.append(`
<h2>Add Text to Multiple Pages</h2>
<div id="add-text-tool">
<label><b>Text to add:</b></label><br>
<textarea id="addtext-text" rows="5" style="width:100%"></textarea><br><br>
<label><b>Pages (one per line):</b></label><br>
<textarea id="addtext-pages" rows="10" style="width:100%"></textarea><br><br>
<button id="addtext-submit">Add Text</button>
<div id="addtext-status" style="margin-top:1em;"></div>
</div>
`);
var api = new mw.Api();
function editPage(title, text) {
return api.get({
action: 'query',
prop: 'revisions',
rvprop: 'content',
titles: title,
formatversion: 2
}).then(function (data) {
var page = data.query.pages[0];
var newContent = (page.missing ? '' : page.revisions[0].content) + '\n' + text;
return api.edit(title, function () {
return {
text: newContent,
summary: 'Added text via Add Text tool'
};
});
});
}
$('#addtext-submit').on('click', function () {
var text = $('#addtext-text').val().trim();
var pages = $('#addtext-pages').val().split('\n').map(p => p.trim()).filter(Boolean);
if (!text || pages.length === 0) {
alert('Please enter both text and at least one page.');
return;
}
var $status = $('#addtext-status').empty().text('Processing...');
var promises = pages.map(function (title) {
return editPage(title, text).then(function () {
$status.append(`<div>✔ Edited ${mw.html.escape(title)}</div>`);
}).catch(function (err) {
$status.append(`<div>❌ Failed to edit ${mw.html.escape(title)}: ${err}</div>`);
});
});
Promise.all(promises).then(function () {
$status.append('<div><b>All done!</b></div>');
});
});
}
});
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.