User:Kiteretsu/undo-last-edit.js: Difference between revisions

From Test Wiki
Jump to navigation Jump to search
+
 
m Kiteretsu moved page User:Infinityboy7/undo-last-edit.js to User:Kiteretsu/undo-last-edit.js without leaving a redirect: Username changed
 
(No difference)

Latest revision as of 17:31, 29 August 2024

$( function() {
    if( mw.config.get( "wgNamespaceNumber" ) < 0 ) return;
    mw.loader.using( [ "mediawiki.util", "mediawiki.api" ] ).then( function () {
        var link = mw.util.addPortletLink(
            "p-cactions",
            "#",
            "Undo last edit",
            "ca-undo",
            "Using the API, undo the last edit made to this page."
            );
        if( !link ) return;
        link.addEventListener( "click", function () {
            var api = new mw.Api();
            api.get( {
                prop: 'revisions',
                rvprop: 'content',
                rvlimit: 2,
                titles: mw.config.get( "wgPageName" )
            } ).done( function ( data ) {
                if ( !data.query || !data.query.pages ) return;
                var pageid = Object.getOwnPropertyNames( data.query.pages )[0],
                    text = data.query.pages[pageid].revisions[1]["*"];
                api.postWithToken( "csrf", {
                    action: "edit",
                    title: mw.config.get( "wgPageName" ),
                    summary: "Undoing last edit ([[User:Infinityboy7/undo-last-edit.js|undo-last-edit]])",
                    text: text
                } ).done ( function ( data ) {
                    if ( data && data.edit && data.edit.result && data.edit.result == 'Success' ) {
                        mw.notify( "Undid last edit successfully! Reloading..." );
                        document.location.reload( true );
                    }
                } );
            } );
        } );
    } );
} );