MediaWiki:Common.js/watchlist.js

/** Add dismiss buttons to watchlist-message ************************************* * * Description: Allows multiple dismiss buttons on MediaWiki:Watchlist-details with bump-able cookie IDs. * Note: HTML is backwards compatible with old version, new version ignores old syntax, except for dismissed IDs. * Maintainers: Ruud Koot, MZMcBride */

function addDismissButton { var watchItems = $("div.watchlist-message"); if (watchItems.length == 0) watchItems = $("li.watchlist-message") if (watchItems.length == 0) return for (var i = 0; i < watchItems.length; i++) { var watchlistCookieID = parseInt(watchItems[i].className.replace(/.*cookie\-ID\_(\d*).*/ig,'$1')); if (isNaN(watchlistCookieID)) continue if (document.cookie.indexOf('hidewatchlistmessage-' + watchlistCookieID + '=yes') != -1) { watchItems[i].style.display = 'none'; continue; }   var Button     = document.createElement('span'); var ButtonLink = document.createElement('a'); var ButtonText = document.createTextNode('dismiss');

ButtonLink.className = 'dismissButton'; ButtonLink.setAttribute('href','javascript:dismissWatchlistMessage(' + i + ',' + watchlistCookieID + ')'); ButtonLink.setAttribute('title','Hide this message'); ButtonLink.appendChild(ButtonText);

Button.appendChild(document.createTextNode(' [')); Button.appendChild(ButtonLink); Button.appendChild(document.createTextNode(']')); watchItems[i].appendChild(Button); } }

function dismissWatchlistMessage(num,cid) { var watchItems = $("div.watchlist-message"); if(watchItems.length == 0) watchItems = $("li.watchlist-message") watchItems[num].style.display = 'none';

var e = new Date; e.setTime( e.getTime + (4*7*24*60*60*1000) ); document.cookie = 'hidewatchlistmessage-' + cid + '=yes; expires=' + e.toGMTString + '; path=/'; }

/** * Hide the "green bullets" message for those using enhanced recent changes. */ $( document ).ready( function { if ( $( 'table.mw-enhanced-rc' ).length > 0 ) {    mw.util.addCSS( '#mw-wlheader-showupdated, #mw-watchlist-resetbutton { display: none; } ' );  }  addDismissButton; });