MediaWiki:Gadget-labelfilter.js

Från Wikipedia

OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.

  • Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
  • Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
  • Internet Explorer / Edge: Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5
  • Opera: Tryck Ctrl-F5.
/*
 * Ersätter inmatningsfältet där man kan ange ett märke (se [[Wikipedia:Märken]]) att filtrera
 * på med en nedfällbar listruta. Detta görs på två ställen:
 *   1. I listan över senaste ändringar, [[Special:Senaste ändringar]].
 *   2. I listan med ändringar på angränsande sidor, [[Special:Senaste relaterade ändringar]].
 *
 * När man lägger till ett märke, aktiverar ett märke (genom att koppla minst ett aktivt filter
 * till det) eller avaktiverar ett märke (genom att alla filter kopplade till märket raderas,
 * avaktiveras eller upphör att vara kopplade till märket) måste man komma ihåg att även ändra
 * i filen MediaWiki:Gadget-labelfilter.json. Vi visar för närvarande även märken som är
 * avaktiverade i listrutan, men de visas i en egen grupp och med tillägget "(inaktivt)". En
 * lista över alla märken finns här: [[Special:Märken]].
 */
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Recentchanges' ||
		mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Recentchangeslinked'
) {
	$( function() {
		'use strict';
		$.getJSON( mw.config.get( 'wgScript' ) + '?title=MediaWiki:Gadget-labelfilter.json&action=raw&ctype=text/json', function( arr ) {
			var $textfield = $( 'input:visible[name="tagfilter"]' ).eq( 0 );
			var $select = $( '<select>' ).attr( 'name', 'tagfilter' );
			$select.append( '<option></option>' );
			if ( Array.isArray( arr ) ) {
				arr.forEach( function( optgroup ) {
					var $optgroup = $( '<optgroup>' );
					$optgroup.attr( 'label', optgroup.optgrouplabel );
					var tags = optgroup.tags ;
					if ( Array.isArray( tags ) ) {
						tags.forEach( function( obj ) {
							var $option = $( '<option>' )
								.text( obj.label )
								.prop( 'value', obj.id );
							$optgroup.append( $option );
						} );
						$select.append( $optgroup );
					}
				} );
				$select.val( mw.util.getParamValue( 'tagfilter' ) );
				$select.addClass( 'mw-tagfilter-input' );
				$textfield.replaceWith( $select );
			}
		} );
	} );
}