MediaWiki:Gadget-rollback-summary.js

来自Local Chinese Wikipedia
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
$(() => {
	const batchConv = require('ext.gadget.HanAssist').batchConv;

	const messages = batchConv({
		prompt: {
			hans: '请输入自定义回退摘要(留空则使用系统默认摘要)',
			hant: '請輸入自訂回退摘要(留空則使用系統預設摘要)'
		},
		cancelNotify: {
			hans: '已取消回退操作。',
			hant: '已取消回退操作。'
		},
		summary: {
			hans: '回退$1的编辑:$2',
			hant: '回退$1的編輯:$2'
		},
		summaryUser: {
			hans: '[[Special:Contributions/$1|$1]]([[User talk:$1|对话]])',
			hant: '[[Special:Contributions/$1|$1]]([[User talk:$1|對話]])'
		},
		summaryNoUser: {
			hans: '已隐藏用户',
			hant: '已隱藏使用者',
			hk: '已隱藏用戶'
		},
	});

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