User:NhacNy2412/Restorer.js
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)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/*** Restorer ***/
// Easily restore an older version of a page
// Documentation at [[User:BrandonXLF/Restorer]]
// By [[User:BrandonXLF]]
$(function() {
if(mw.config.get('wgDBname') == 'viwiki')
window.restorerSummary = window.restorerSummary || 'Hồi sửa về phiên bản $ID của [[Special:Contributions/$USER|$USER]] ([[w:en:User:BrandonXLF/Restorer|Restorer]])';
else
window.restorerSummary = window.restorerSummary || 'Restored revision $ID by [[Special:Contributions/$USER|$USER]] ([[w:en:User:BrandonXLF/Restorer|Restorer]])';
function restore(user, revid) {
$.post(mw.config.get('wgScriptPath') + '/api.php', {
action: 'edit',
pageid: mw.config.get('wgArticleId'),
undo: mw.config.get('wgCurRevisionId'),
undoafter: revid,
summary: window.restorerSummary.replace(/\$ID/g, revid).replace(/\$USER/g, user),
token: mw.user.tokens.get('csrfToken'),
format: 'json'
}).fail(function() {
if (mw.config.get('wgDBname') == 'viwiki')
mw.notify('Đã xảy ra lỗi khi phục hồi phiên bản.', {type: 'error'});
else
mw.notify('An error occured while restoring the revision.', {type: 'error'});
}).done(function(result) {
if (result.error) {
mw.notify(result.error.info, {type: 'error'});
} else {
if (mw.config.get('wgDBname') == 'viwiki')
mw.notify('Phục hồi phiên bản thành công.');
else
mw.notify('Restored revision sucessfully.');
location.reload();
}
});
}
function addLink(item) {
var revid = item.getAttribute('data-mw-revid'),
user,
links,
ele,
parent;
if (revid != mw.config.get('wgCurRevisionId')) {
user = item.getElementsByClassName('mw-userlink')[0].textContent.replace('User:', '');
links = item.getElementsByClassName('mw-changeslist-links');
links = links[links.length - 1];
parent = document.createElement('span');
ele = document.createElement('a');
ele.addEventListener('click', function() {
restore(user, revid);
});
if (mw.config.get('wgDBname') == 'viwiki')
ele.innerHTML = 'phục hồi';
else
ele.innerHTML = 'restore';
parent.appendChild(ele);
links.appendChild(parent);
}
}
if (location.search.includes('action=history')) {
var i,
parents = document.querySelectorAll('li[data-mw-revid]');
for (i = 0; i < parents.length; i++) {
addLink(parents[i]);
}
}
});