User:Bosco/rollback-summary.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
//https://zh.wikipedia.org/wiki/MediaWiki:Gadget-rollback-summary.js
(() => {
const messages = {
prompt: 'Please enter a custom rollback summary (leave blank to use the default summary).',
cancelNotify: 'Rollback canceled',
summary: 'Reverted edit(s) by $1: $2',
summaryUser: '[[Special:Contributions/$1|$1]]([[User talk:$1|talk]])',
summaryNoUser: 'hidden user',
};
const loadedMap = new WeakMap();
mw.hook('wikipage.content').add(() => {
for (const link of $('.mw-rollback-link a')) {
if (loadedMap.has(link)) {
continue;
}
loadedMap.set(link, true);
$(link)
.on('click', (ev) => {
const summary = prompt(messages.prompt);
if (summary === null) {
// 取消回退
ev.preventDefault();
mw.notify(messages.cancelNotify);
return;
} else if (summary === '') {
// 不自訂摘要
return;
}
ev.preventDefault();
const url = new URL(link.href);
const username = url.searchParams.get('from');
url.searchParams.set('summary', mw.format(
messages.summary,
username ? mw.format(messages.summaryUser, username) : messages.summaryNoUser,
summary
));
window.location.assign(url.href);
})
.css('color', '#099');
}
});
})();