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 dismiss buttons to watchlist-message, then unhide it

 * Allows multiple dismiss buttons on [[MediaWiki:Watchlist-messages]] with bumpable cookie IDs (now used for LS).

 * Note: HTML is backwards compatible with old version, new version ignores old syntax, except for dismissed IDs.

 * @author: [[:en:User:Ruud Koot]]

 * @author: [[:en:User:MZMcBride]]

 */

/*jslint white: true, regexp: true */

/*global jQuery, mediaWiki */

( function ( mw, $ ) {

'use strict';



var storageKey = 'hidewatchlistmessages';



function getDismissedNotices () {

	var hiddenNotices = mw.storage.get( storageKey )

		|| mw.storage.session.get( storageKey );



	try {

		return JSON.parse( hiddenNotices ) || []; 

	} catch (e) {

		return [];

	}

}



function saveDismissedNotices ( notices ) {

	notices = JSON.stringify( notices );

	mw.storage.set( storageKey, notices )

		|| mw.storage.session.set( storageKey, notices );

}



// Remove ids which are no longer defined

function expungeOldNotices ( currentList ) {

	var dismissedNotices = getDismissedNotices(),

		originalLength = dismissedNotices.length;

	for ( var i = dismissedNotices.length - 1; i >= 0; i--) {

		if( currentList.indexOf( dismissedNoticesi ) === -1 ) {

			dismissedNotices.splice( i, 1 );

		}

	}

	if( originalLength !== dismissedNotices.length ) {

		saveDismissedNotices( dismissedNotices );

	}

}



function dismissWatchlistMessage( event ) {

	var $message = $( this ).closest( '.watchlist-message' );

	var cid = $( this ).data( 'watchlistMessage' ).cid;

	var notices = getDismissedNotices();

	

	$message.hide();

	

	notices.push( cid );

	saveDismissedNotices( notices );

	

	event.preventDefault();

}



function addDismissButton() {

	var watchItems = $( 'div.watchlist-message' );

	var watchItemIds = [];

	var dismissedNotices = getDismissedNotices();

	var dismissedNoticesLength = dismissedNotices.length;

	

	if ( watchItems.length === 0) {

		watchItems = $( 'li.watchlist-message' );

	}

	if ( watchItems.length === 0) {

		return;

	}

	for ( var i = 0; i < watchItems.length; i++ ) {

		var watchlistCookieID = parseInt( watchItemsi].className.replace( /.*cookie\-ID\_(\d*).*/ig, '$1' ) );

		if ( isNaN( watchlistCookieID ) ) {

			continue;

		}

		watchItemIds.push( watchlistCookieID );

		if ( dismissedNotices.indexOf( watchlistCookieID ) !== -1 ) {

			watchItemsi].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', '#' );

		ButtonLink.setAttribute( 'title', 'Hide this message' );

		ButtonLink.appendChild( ButtonText );

		$( ButtonLink ).data( 'watchlistMessage', {

			index: i,

			cid: watchlistCookieID

		} );

		$( ButtonLink ).click( dismissWatchlistMessage );

		

		Button.appendChild( document.createTextNode(' [' ) );

		Button.appendChild( ButtonLink );

		Button.appendChild( document.createTextNode( ']' ) );

		watchItemsi].appendChild( Button );

	}

	expungeOldNotices( watchItemIds );

	

	$( '#watchlist-message' ).show();

}



$( addDismissButton );



}( mediaWiki, jQuery ) );
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 dismiss buttons to watchlist-message, then unhide it

 * Allows multiple dismiss buttons on [[MediaWiki:Watchlist-messages]] with bumpable cookie IDs (now used for LS).

 * Note: HTML is backwards compatible with old version, new version ignores old syntax, except for dismissed IDs.

 * @author: [[:en:User:Ruud Koot]]

 * @author: [[:en:User:MZMcBride]]

 */

/*jslint white: true, regexp: true */

/*global jQuery, mediaWiki */

( function ( mw, $ ) {

'use strict';



var storageKey = 'hidewatchlistmessages';



function getDismissedNotices () {

	var hiddenNotices = mw.storage.get( storageKey )

		|| mw.storage.session.get( storageKey );



	try {

		return JSON.parse( hiddenNotices ) || []; 

	} catch (e) {

		return [];

	}

}



function saveDismissedNotices ( notices ) {

	notices = JSON.stringify( notices );

	mw.storage.set( storageKey, notices )

		|| mw.storage.session.set( storageKey, notices );

}



// Remove ids which are no longer defined

function expungeOldNotices ( currentList ) {

	var dismissedNotices = getDismissedNotices(),

		originalLength = dismissedNotices.length;

	for ( var i = dismissedNotices.length - 1; i >= 0; i--) {

		if( currentList.indexOf( dismissedNoticesi ) === -1 ) {

			dismissedNotices.splice( i, 1 );

		}

	}

	if( originalLength !== dismissedNotices.length ) {

		saveDismissedNotices( dismissedNotices );

	}

}



function dismissWatchlistMessage( event ) {

	var $message = $( this ).closest( '.watchlist-message' );

	var cid = $( this ).data( 'watchlistMessage' ).cid;

	var notices = getDismissedNotices();

	

	$message.hide();

	

	notices.push( cid );

	saveDismissedNotices( notices );

	

	event.preventDefault();

}



function addDismissButton() {

	var watchItems = $( 'div.watchlist-message' );

	var watchItemIds = [];

	var dismissedNotices = getDismissedNotices();

	var dismissedNoticesLength = dismissedNotices.length;

	

	if ( watchItems.length === 0) {

		watchItems = $( 'li.watchlist-message' );

	}

	if ( watchItems.length === 0) {

		return;

	}

	for ( var i = 0; i < watchItems.length; i++ ) {

		var watchlistCookieID = parseInt( watchItemsi].className.replace( /.*cookie\-ID\_(\d*).*/ig, '$1' ) );

		if ( isNaN( watchlistCookieID ) ) {

			continue;

		}

		watchItemIds.push( watchlistCookieID );

		if ( dismissedNotices.indexOf( watchlistCookieID ) !== -1 ) {

			watchItemsi].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', '#' );

		ButtonLink.setAttribute( 'title', 'Hide this message' );

		ButtonLink.appendChild( ButtonText );

		$( ButtonLink ).data( 'watchlistMessage', {

			index: i,

			cid: watchlistCookieID

		} );

		$( ButtonLink ).click( dismissWatchlistMessage );

		

		Button.appendChild( document.createTextNode(' [' ) );

		Button.appendChild( ButtonLink );

		Button.appendChild( document.createTextNode( ']' ) );

		watchItemsi].appendChild( Button );

	}

	expungeOldNotices( watchItemIds );

	

	$( '#watchlist-message' ).show();

}



$( addDismissButton );



}( mediaWiki, jQuery ) );

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook