User:Enterprisey/multi-lock-helper.js

From Meta, a Wikimedia project coordination wiki

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.
$( function() {
    if( mw.config.get( "wgPageName" ) === "Steward_requests/Global" ) {
        var lockHeadlines = document.querySelectorAll( "h3 > span[id^=Global_lock]" );
        var currHeadline, listItems, wpTarget;
        for( var i = 0, numHeadlines = lockHeadlines.length; i < numHeadlines; i++ ) {
            try {
                currHeadline = lockHeadlines[i];
                listItems = currHeadline.parentNode.nextElementSibling.nextElementSibling.children;
                for( var j = 0, wpTarget = []; j < listItems.length; j++ ) {
                    wpTarget.push( encodeURIComponent( listItems[j].children[0].children[0].textContent ) );
                }
                wpTarget = wpTarget.join( "%0A" );
                currHeadline.nextSibling.removeChild( currHeadline.nextSibling.lastElementChild );
                currHeadline.nextSibling.innerHTML += '<span class="mw-editsection-divider"> | </span><a href="https://meta.wikimedia.org/wiki/Special:MultiLock?wpTarget=' + wpTarget + '">lock all</a><span class="mw-editsection-bracket">]</span>';
            } catch ( error ) {console.log(error);}
        }
    }
} );