<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-LazyAdminTools-core.js</id>
	<title>MediaWiki:Gadget-LazyAdminTools-core.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-LazyAdminTools-core.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-LazyAdminTools-core.js&amp;action=history"/>
	<updated>2026-04-11T05:08:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-LazyAdminTools-core.js&amp;diff=42201&amp;oldid=prev</id>
		<title>Alex at 11:06, 20 October 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-LazyAdminTools-core.js&amp;diff=42201&amp;oldid=prev"/>
		<updated>2024-10-20T11:06:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-LazyAdminTools-core.js&amp;amp;diff=42201&amp;amp;oldid=917&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-LazyAdminTools-core.js&amp;diff=917&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;// LazyAdminTools: easy delete, rollback, and block buttons for admins // @author Jr Mime // @author Iiii_I_I_I  $(function () {     if (mw.config.get(&quot;wgCanonicalSpecialPageName&quot;) != &quot;Contributions&quot;) return;      var username = mw.config.get(&quot;wgPageName&quot;).split(&quot;/&quot;)[1],         lazyAdminTools = {};      // Fieldset maker     lazyAdminTools.init = function () {         var blockSection = new OO.ui.ActionFieldLayout(             new OO.ui.ComboBoxInputWidget({...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-LazyAdminTools-core.js&amp;diff=917&amp;oldid=prev"/>
		<updated>2024-10-13T00:59:57Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;// LazyAdminTools: easy delete, rollback, and block buttons for admins // @author Jr Mime // @author Iiii_I_I_I  $(function () {     if (mw.config.get(&amp;quot;wgCanonicalSpecialPageName&amp;quot;) != &amp;quot;Contributions&amp;quot;) return;      var username = mw.config.get(&amp;quot;wgPageName&amp;quot;).split(&amp;quot;/&amp;quot;)[1],         lazyAdminTools = {};      // Fieldset maker     lazyAdminTools.init = function () {         var blockSection = new OO.ui.ActionFieldLayout(             new OO.ui.ComboBoxInputWidget({...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// LazyAdminTools: easy delete, rollback, and block buttons for admins&lt;br /&gt;
// @author Jr Mime&lt;br /&gt;
// @author Iiii_I_I_I&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
    if (mw.config.get(&amp;quot;wgCanonicalSpecialPageName&amp;quot;) != &amp;quot;Contributions&amp;quot;) return;&lt;br /&gt;
&lt;br /&gt;
    var username = mw.config.get(&amp;quot;wgPageName&amp;quot;).split(&amp;quot;/&amp;quot;)[1],&lt;br /&gt;
        lazyAdminTools = {};&lt;br /&gt;
&lt;br /&gt;
    // Fieldset maker&lt;br /&gt;
    lazyAdminTools.init = function () {&lt;br /&gt;
        var blockSection = new OO.ui.ActionFieldLayout(&lt;br /&gt;
            new OO.ui.ComboBoxInputWidget({&lt;br /&gt;
                options: [&lt;br /&gt;
                    { data: &amp;#039;1 day&amp;#039; },&lt;br /&gt;
                    { data: &amp;#039;3 days&amp;#039; },&lt;br /&gt;
                    { data: &amp;#039;1 week&amp;#039; },&lt;br /&gt;
                    { data: &amp;#039;2 weeks&amp;#039; },&lt;br /&gt;
                    { data: &amp;#039;1 month&amp;#039; },&lt;br /&gt;
                    { data: &amp;#039;3 months&amp;#039; },&lt;br /&gt;
                    { data: &amp;#039;infinite&amp;#039; }&lt;br /&gt;
                ],&lt;br /&gt;
                value: &amp;#039;3 days&amp;#039;,&lt;br /&gt;
                placeholder: &amp;#039;Block duration&amp;#039;&lt;br /&gt;
            }),&lt;br /&gt;
            new OO.ui.ButtonWidget({&lt;br /&gt;
                classes: [&amp;#039;LAT-button-block&amp;#039;],&lt;br /&gt;
                label: &amp;#039;Block&amp;#039;&lt;br /&gt;
            }),&lt;br /&gt;
            {&lt;br /&gt;
                align: &amp;#039;top&amp;#039;,&lt;br /&gt;
                classes: [&amp;#039;LAT-section-block&amp;#039;],&lt;br /&gt;
                label: &amp;#039;Block with reason &amp;quot;Spam/vandalism&amp;quot; for:&amp;#039;,&lt;br /&gt;
            }&lt;br /&gt;
        );&lt;br /&gt;
        var deleteSection = new OO.ui.ActionFieldLayout(&lt;br /&gt;
            new OO.ui.TextInputWidget({&lt;br /&gt;
                value: &amp;#039;Removing spam/vandalism&amp;#039;,&lt;br /&gt;
                placeholder: &amp;#039;Reason for deletion&amp;#039;&lt;br /&gt;
            }),&lt;br /&gt;
            new OO.ui.ButtonWidget({&lt;br /&gt;
                classes: [&amp;#039;LAT-button-delete&amp;#039;],&lt;br /&gt;
                label: &amp;#039;Delete&amp;#039;&lt;br /&gt;
            }),&lt;br /&gt;
            {&lt;br /&gt;
                align: &amp;#039;top&amp;#039;,&lt;br /&gt;
                classes: [&amp;#039;LAT-section-delete&amp;#039;],&lt;br /&gt;
                label: &amp;#039;Delete page creations with reason:&amp;#039;&lt;br /&gt;
            }&lt;br /&gt;
        );&lt;br /&gt;
        var rollbackSection = new OO.ui.FieldLayout(&lt;br /&gt;
            new OO.ui.ButtonWidget({&lt;br /&gt;
                classes: [&amp;#039;LAT-button-rollback&amp;#039;],&lt;br /&gt;
                label: &amp;#039;Rollback&amp;#039;&lt;br /&gt;
            }),&lt;br /&gt;
            {&lt;br /&gt;
                align: &amp;#039;top&amp;#039;,&lt;br /&gt;
                classes: [&amp;#039;LAT-section-rollback&amp;#039;],&lt;br /&gt;
                label: &amp;#039;Revert current revisions:&amp;#039;&lt;br /&gt;
            }&lt;br /&gt;
        );&lt;br /&gt;
        var everythingSection = new OO.ui.FieldLayout(&lt;br /&gt;
            new OO.ui.ButtonWidget({&lt;br /&gt;
                classes: [&amp;#039;LAT-button-everything&amp;#039;],&lt;br /&gt;
                label: &amp;#039;You\&amp;#039;re a big guy&amp;#039;,&lt;br /&gt;
                title: &amp;#039;For you&amp;#039;,&lt;br /&gt;
                flags: [ &amp;#039;primary&amp;#039;, &amp;#039;destructive&amp;#039; ]&lt;br /&gt;
            }),&lt;br /&gt;
            {&lt;br /&gt;
                align: &amp;#039;top&amp;#039;,&lt;br /&gt;
                classes: [&amp;#039;LAT-section-everything&amp;#039;],&lt;br /&gt;
                label: &amp;#039;Perform all three actions:&amp;#039;&lt;br /&gt;
            }&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        $(&amp;#039;&amp;lt;fieldset/&amp;gt;&amp;#039;, { class: &amp;#039;gadget-LAT&amp;#039; }).append(&lt;br /&gt;
            $(&amp;#039;&amp;lt;legend/&amp;gt;&amp;#039;, { text: &amp;#039;LazyAdminTools&amp;#039; }),&lt;br /&gt;
            $(&amp;#039;&amp;lt;div/&amp;gt;&amp;#039;, { class: &amp;#039;LAT-container&amp;#039; }).append(&lt;br /&gt;
                blockSection.$element,&lt;br /&gt;
                deleteSection.$element,&lt;br /&gt;
                rollbackSection.$element,&lt;br /&gt;
                everythingSection.$element&lt;br /&gt;
            )&lt;br /&gt;
        ).prependTo(&amp;#039;#mw-content-text&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
        // On click of any of the buttons, call the functions&lt;br /&gt;
        $(&amp;quot;.LAT-button-rollback&amp;quot;).on(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
            lazyAdminTools.rollback();&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        $(&amp;quot;.LAT-button-block&amp;quot;).on(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
            lazyAdminTools.block();&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        $(&amp;quot;.LAT-button-delete&amp;quot;).on(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
            lazyAdminTools.del();&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        $(&amp;quot;.LAT-button-everything&amp;quot;).on(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
            // Poor way of doing all&lt;br /&gt;
            lazyAdminTools.rollback();&lt;br /&gt;
            lazyAdminTools.block();&lt;br /&gt;
            lazyAdminTools.del();&lt;br /&gt;
        });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    // Rollback function: get all rollback links in browser, then strike the edit&lt;br /&gt;
    lazyAdminTools.rollback = function () {&lt;br /&gt;
        $(&amp;quot;.mw-rollback-link a&amp;quot;).each(function (i) {&lt;br /&gt;
            var obj = $(this),&lt;br /&gt;
                href = obj.attr(&amp;quot;href&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            setTimeout(function () {&lt;br /&gt;
                $.get(href);&lt;br /&gt;
                obj.text(&amp;quot;gone!&amp;quot;)&lt;br /&gt;
                    .css({&lt;br /&gt;
                        color: &amp;quot;grey&amp;quot;,&lt;br /&gt;
                        &amp;quot;text-decoration&amp;quot;: &amp;quot;line-through&amp;quot;,&lt;br /&gt;
                    })&lt;br /&gt;
                    .removeAttr(&amp;quot;href&amp;quot;)&lt;br /&gt;
                    .parents()&lt;br /&gt;
                    .eq(1)&lt;br /&gt;
                    .css({&lt;br /&gt;
                        color: &amp;quot;grey&amp;quot;,&lt;br /&gt;
                        &amp;quot;text-decoration&amp;quot;: &amp;quot;line-through&amp;quot;,&lt;br /&gt;
                    })&lt;br /&gt;
                    .children()&lt;br /&gt;
                    .removeAttr(&amp;quot;href&amp;quot;)&lt;br /&gt;
                    .css({&lt;br /&gt;
                        color: &amp;quot;grey&amp;quot;,&lt;br /&gt;
                        &amp;quot;text-decoration&amp;quot;: &amp;quot;line-through&amp;quot;,&lt;br /&gt;
                    });&lt;br /&gt;
            }, i * 500);&lt;br /&gt;
        });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    // Block function, simple API call&lt;br /&gt;
    lazyAdminTools.block = function () {&lt;br /&gt;
        new mw.Api()&lt;br /&gt;
            .postWithEditToken({&lt;br /&gt;
                format: &amp;quot;json&amp;quot;,&lt;br /&gt;
                action: &amp;quot;block&amp;quot;,&lt;br /&gt;
                user: username,&lt;br /&gt;
                expiry: $(&amp;#039;.LAT-section-block .oo-ui-inputWidget-input&amp;#039;).val(),&lt;br /&gt;
                nocreate: 0,&lt;br /&gt;
                autoblock: 0,&lt;br /&gt;
                reason: &amp;quot;Spam/vandalism&amp;quot;,&lt;br /&gt;
                bot: 1&lt;br /&gt;
            })&lt;br /&gt;
            .done(function (d) {&lt;br /&gt;
                if (!d.error) {&lt;br /&gt;
                    alert(&amp;quot;User has been blocked!&amp;quot;);&lt;br /&gt;
                } else {&lt;br /&gt;
                    alert(&amp;quot;Failed to block &amp;quot; + username + &amp;quot;: &amp;quot; + d.error.code);&lt;br /&gt;
                }&lt;br /&gt;
            })&lt;br /&gt;
            .fail(function () {&lt;br /&gt;
                alert(&amp;quot;Failed to block &amp;quot; + username + &amp;quot;!&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    // Delete function, get all titles if the line has a &amp;quot;newpage&amp;quot; attribute, delete&lt;br /&gt;
    lazyAdminTools.del = function () {&lt;br /&gt;
        function apiDelete(page, reason) {&lt;br /&gt;
            new mw.Api()&lt;br /&gt;
                .postWithEditToken({&lt;br /&gt;
                    format: &amp;quot;json&amp;quot;,&lt;br /&gt;
                    action: &amp;quot;delete&amp;quot;,&lt;br /&gt;
                    title: page,&lt;br /&gt;
                    reason: reason,&lt;br /&gt;
                    bot: 1&lt;br /&gt;
                })&lt;br /&gt;
                .done(function (d) {&lt;br /&gt;
                    if (!d.error) {&lt;br /&gt;
                        // console.log(&amp;#039;Deletion of &amp;#039; + page + &amp;#039; successful!&amp;#039;);&lt;br /&gt;
                    } else {&lt;br /&gt;
                        console.log(&amp;quot;Failed to delete &amp;quot; + page + &amp;quot;: &amp;quot; + d.error.code);&lt;br /&gt;
                    }&lt;br /&gt;
                })&lt;br /&gt;
                .fail(function () {&lt;br /&gt;
                    console.log(&amp;quot;Failed to delete &amp;quot; + page + &amp;quot;!&amp;quot;);&lt;br /&gt;
                });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $(&amp;quot;li .newpage ~ a&amp;quot;).each(function () {&lt;br /&gt;
            var title = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            apiDelete(title, $(&amp;#039;.LAT-section-delete .oo-ui-inputWidget-input&amp;#039;).val());&lt;br /&gt;
            $(this)&lt;br /&gt;
                .parent()&lt;br /&gt;
                .css({&lt;br /&gt;
                    color: &amp;quot;grey&amp;quot;,&lt;br /&gt;
                    &amp;quot;text-decoration&amp;quot;: &amp;quot;line-through&amp;quot;,&lt;br /&gt;
                })&lt;br /&gt;
                .children()&lt;br /&gt;
                .removeAttr(&amp;quot;href&amp;quot;)&lt;br /&gt;
                .css({&lt;br /&gt;
                    color: &amp;quot;grey&amp;quot;,&lt;br /&gt;
                    &amp;quot;text-decoration&amp;quot;: &amp;quot;line-through&amp;quot;,&lt;br /&gt;
                });&lt;br /&gt;
        });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    // Launch the damn thing&lt;br /&gt;
    lazyAdminTools.init();&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>