$( function() {
// 10 is "Template:" and 828 is "Module:"
if ( ( mw.config.get( "wgNamespaceNumber" ) === 10 || mw.config.get( "wgNamespaceNumber" ) === 828 ) && mw.config.get( "wgPageName" ).includes( "/sandbox" ) ) {
var link = mw.util.addPortletLink(
"p-cactions",
"#",
"Sync with main",
"ca-sync",
"Overwrite the sandbox code with the code from the main template"
);
mw.loader.using( "mediawiki.api", function () {
link.addEventListener( "click", function () {
var api = new mw.Api();
api.get( {
prop: 'revisions',
rvprop: 'content',
rvlimit: 1,
titles: mw.config.get( "wgPageName" ).replace( "/sandbox", "" )
} ).done( function ( data ) {
if ( !data.query || !data.query.pages ) return;
var pageid = Object.getOwnPropertyNames( data.query.pages ),
text = data.query.pages.revisions;
api.postWithEditToken( {
action: "edit",
title: mw.config.get( "wgPageName" ),
summary: "Syncing sandbox code with main template (])",
text: text
} ).done ( function ( data ) {
if ( data && data.edit && data.edit.result && data.edit.result == 'Success' ) {
mw.notify( "Synced successfully! Reloading in 5 seconds..." );
window.setTimeout( function () {
document.location.reload( true );
}, 5000 );
}
} );
} );
} );
} );
}
} );