Jump to content

User:MarkGallagher/monobook.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
   //  Add a "Kate" link to your monobook "personal menu" list at the very
   //  top of the page.
   //
   //  Indicate where you would like "Kate" to appear:
   //    pt-userpage, pt-mytalk, pt-preferences,
   //    pt-watchlist, pt-mycontris, pt-logout
   //
 gsKateInsertBefore = 'pt-mycontris'; // leave blank to append after "logout"
   //
 function KateLink()
 {
   var user = document.getElementById( 'pt-userpage').firstChild.firstChild.data;
 
   var li = document.createElement( 'li' );
     li.id = 'pt-kate';
 
     var a = document.createElement( 'a' );
       a.appendChild( document.createTextNode( 'Kate' ) ); // eh, the css makes the text lowercase
       a.href = 'http://tools.wikimedia.de/~kate/cgi-bin/count_edits?dbname=enwiki&user=' + user;
 
     li.appendChild( a );
 
   if ( ! gsKateInsertBefore ) // append to end (right) of list
   {  document.getElementById( 'pt-logout' ).parentNode.appendChild( li );
   }
   else
   {  var before = document.getElementById( gsKateInsertBefore );
       before.appendChild( li, before );
   }
 }
    if ( window.addEventListener ) window.addEventListener( 'load', KateLink, false );
 else if ( window.attachEvent      ) window.attachEvent   ( 'onload', KateLink );

// Stolen from User:Quarl/unwatch.js.  See there for more details.

// from http://wiki.riteme.site/wiki/User:Omegatron/monobook.js
// see a different implementation at http://wiki.riteme.site/wiki/User:Matthewmayer/monobook.js

// ================================================================
// Adds an unwatch link after each entry on the regular watchlist 
// (instead of requiring you to navigate to a separate page)
// by User:Omegatron
// Workaround for Bug 424 http://bugzilla.wikipedia.org/show_bug.cgi?id=424

function unwatchlinks(){
if(document.title.indexOf("My watchlist") == 0) {
    var x,i;
    x=document.links;                                           // Gets all the links on the page
        for(i=0;i<x.length;++i) {
            if (/action=history/.test(x[i].href)) {             // Find all the ones that link to history pages
                var newUnwatchLink = document.createElement('a');
                newUnwatchLink.href = x[i].href.match(/\/w\/.+?&/) + "action=unwatch";    // Replace the action=history with action=unwatch
                newUnwatchLink.innerHTML = "un";
                var newSeparator = document.createTextNode("; ");
                x[i].parentNode.insertBefore(newUnwatchLink, x[i].nextSibling);
                x[i].parentNode.insertBefore(newSeparator, x[i].nextSibling);             // Insert after the hist link with a semicolon
            }
        }
    }
}

addOnloadHook(unwatchlinks);