User:FR30799386/revert.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.
window.wgRelevantUser = function() {
var user;
if ($('.mw-mf-user-link').text() !== '') {
user = $('.mw-mf-user-link').text();
} else {
user = $('#mw-mf-userinfo .post-content div:nth-child(2)').text();
}
return user;
};
var href = ($('#mw-mf-diffarea > div.mw-mf-diff-info > h3 > a').attr('href')) || '';
window.wgRevId = href.split('&oldid=')[1];
if( $('#mw-mf-diffarea > ul > li.revision-history-next').length ) {
$('#mw-mf-diffarea > div.mw-mf-diff-info > h3').append(
$('<a>').attr('id','mobileRestore').attr('href','javascript:void(0)').append(
$('<b>').text('(restore)')
)
);
}
$('#mobileRestore').click(function(e){
e.preventDefault();
$('#mobileRestore b').text('(Loading....)');
$('#mobileRestore').css('pointer-events','none');
var customEditSummary = prompt('Add a reason to your edit summary !');
if(customEditSummary === null) {
$('#mobileRestore b').text('(restore)');
$('#mobileRestore').css('pointer-events','auto');
return;
}
var username =wgRelevantUser();
var editSummary = 'Reverted to revision ' +wgRevId+ ' by [[Special:Contributions/'+username+'|'+username+']]([[User talk:'+username+'|talk]]) ';
editSummary = editSummary + customEditSummary + ' ([[m:User:FR30799386/undo|mobileUndoβ]])';
$.when(mw.loader.load('mediawiki.api')).then(function(){
var api = new mw.Api();
api.get({
'action':'query',
'prop':'revisions',
'titles':mw.config.get('wgRelevantPageName'),
'rvprop':'ids'
}).done(function(result){
if(result.query.pages) {
var StartRevId = result.query.pages[mw.config.get('wgRelevantArticleId')].revisions[0].revid;
console.log(StartRevId);
api.postWithToken('csrf', {
action: "edit",
title: mw.config.get('wgRelevantPageName'),
summary: editSummary,
undo:StartRevId,
undoafter:wgRevId,
}).done(function(result) {
if (typeof result.edit.nochange !== 'undefined') {
$('#mobileRestore b').text('(Failed)');
alert( 'No change occured');
return;
}
console.log(result);
$('#mobileRestore b').text('(Successful)')
mw.notify('Revert successful.... Reloading in a sec');
setTimeout(function() {
location.href = mw.util.getUrl('Special:MobileDiff/' + result.edit.newrevid);
}, 1500);
}).fail(function(code, jqxhr) {
$('#mobileRestore b').text('(Failed)');
var details;
if (code === 'http' && jqxhr.textStatus === 'error') {
details = 'HTTP error: ' + jqxhr.xhr.status;
} else if (code === 'http') {
details = 'HTTP error: ' + jqxhr.textStatus;
} else if (code === 'ok-but-empty') {
details = 'An empty response was given the server';
} else {
details = jqxhr.error.info;
}
alert( details );
});
} else {
alert('Failed to retrieve page details');
}
});
});
});