User:Enterprisey/watchlist-notice.js

mw.loader.using( 'mediawiki.util', function () {var showNotice = function () { // Stick a "Watchlist update!" notice after the notification count$( "#pt-notifications-notice" ).after(        $( "<li>" ).append( $( "<a>" )        .text( "Watchlist update!" )        .css( {        "background-color": "green",        "color": "white",        "border-radius": "2px",        "padding": "0.25em 0.45em 0.2em",        "cursor": "pointer",        "font-weight": "bold",        "transition": "background-color 0.5s"        } )        .attr( "href", "/wiki/Special:Watchlist" )        .mouseover( updateNotice )        )        .attr( "id", "watchlist-update-notice" )        );};var updateNotice = function() {// Lighten the background color so the user knows we're updating$( "#watchlist-update-notice a" ).css( "background-color", "#7bff7b" );// Update the notice$.getJSON(    mw.util.wikiScript( 'api' ),    {    format: "json",    action: "query",    list: "watchlist",    wlshow: "unread",    wllimit: 1 // Because we're checking if there are *any* entries    } ).done(function( data ) {    if( !data.query ) return;    if( data.query.watchlist.length ) {     // There are new watchlist diffs to read, so show notice    if( !$( "#watchlist-update-notice" ).length ) {        // That is, if it isn't shown already    showNotice();    } else {        // There's already a notice, so change background    $( "#watchlist-update-notice a" ).css( "background-color", "green" );    }    } else {        // No new watchlist diffs to read, so hide notice    $( "#watchlist-update-notice" ).remove();    }    }    );};     $( document ).ready( function () {     updateNotice();    window.setInterval( updateNotice, 120000 );    } );} );