MediaWiki:Gadget-ForcedUndoSummary.js
阅读:160 更新:2023-12-21
来自柯南百科
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:按 Ctrl-F5。
(function() {
const urlParams = new URLSearchParams(window.location.search);
if (mw.config.get('wgAction') === 'edit' && urlParams.has('undoafter') && urlParams.has('undo')) {
const saveBtn = document.getElementById('wpSave');
const editSummaryField = document.getElementById('wpSummary');
const summaryVal = editSummaryField.value;
const saveVal = saveBtn.value;
const regex = /\[\[Special:Contributions\/([^|]+)\|[^|]+\]\]/;
const match = summaryVal.match(regex);
if (match && match[1]) {
const username = match[1];
if (mw.config.get('wgUserName') !== username) {
editSummaryField.value = '';
editSummaryField.placeholder = '请填写撤销理由,不少于5个字。';
disableBtn(saveBtn);
editSummaryField.addEventListener('input', function() {
if (editSummaryField.value.length >= 5 && !areAllCharactersSame(editSummaryField.value)) {
saveBtn.disabled = false;
saveBtn.value = saveVal;
saveBtn.parentNode.classList.remove('oo-ui-widget-disabled');
saveBtn.parentNode.classList.add('oo-ui-widget-enabled', 'oo-ui-flaggedElement-progressive', 'oo-ui-flaggedElement-primary');
} else {
disableBtn(saveBtn);
}
});
}
}
}
function disableBtn(saveBtn) {
saveBtn.disabled = true;
saveBtn.value = '请填写撤销理由';
saveBtn.parentNode.classList.remove('oo-ui-widget-enabled', 'oo-ui-flaggedElement-progressive', 'oo-ui-flaggedElement-primary');
saveBtn.parentNode.classList.add('oo-ui-widget-disabled');
}
function areAllCharactersSame(str) {
const trimmedString = str.trim().replace(/[,。?!,.;!?]/g, '');
const uniqueCharacters = trimmedString.split('').filter(function (value, index, self) {
return self.indexOf(value) === index;
});
return uniqueCharacters.length === 1;
}
})();