Benutzer:Fomafix/hideduplicatecontribs.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Contributions' )
mw.hook( 'wikipage.content' ).add( function ( $content ) {
	var $list = $content.find( '.mw-contributions-list' );
	var showTopOnly = document.getElementById( 'mw-show-top-only' );
	if ( !showTopOnly ) return;
	showTopOnly = showTopOnly.parentNode;
	showTopOnly.style.marginRight = '1em';
	showTopOnly.parentNode.appendChild( document.createTextNode( ' ' ) );

	var nobreak = document.createElement( 'span' );
	nobreak.style.whiteSpace = 'nowrap';
	nobreak.style.marginRight = '1em';

	var cbdupl = document.createElement( 'input' );
	cbdupl.id = 'cbdupl';
	cbdupl.type = 'checkbox';
	nobreak.appendChild( cbdupl );
	nobreak.appendChild( document.createTextNode( '\u00a0' ) );

	var lbdupl = document.createElement( 'label' );
	lbdupl.appendChild( document.createTextNode( 'Doppeleinträge ausblenden' ) );
	lbdupl.htmlFor = 'cbdupl';
	nobreak.appendChild( lbdupl );

	showTopOnly.parentNode.appendChild( nobreak );
	showTopOnly.parentNode.appendChild( document.createTextNode( ' ' ) );

	nobreak = document.createElement( 'span' );
	nobreak.style.whiteSpace = 'nowrap';

	var cbtop = document.createElement( 'input' );
	cbtop.id = 'cbtop';
	cbtop.type = 'checkbox';
	nobreak.appendChild( cbtop );
	nobreak.appendChild( document.createTextNode( '\u00a0' ) );

	var lbtop = document.createElement( 'label' );
	lbtop.appendChild( document.createTextNode( 'aktuelle Beiträge ausblenden' ) );
	lbtop.htmlFor = 'cbtop';
	nobreak.appendChild( lbtop );

	showTopOnly.parentNode.appendChild( nobreak );

	function refreshContribs() {
		var li = $list.children( 'li' );
		var titles = Object.create( null );
		for ( var i = 0; i < li.length; i++ ) {
			var title = li[i].getElementsByClassName( 'mw-contributions-title' )[0].href;
			var uctop = $( li[i] ).find( '.mw-uctop' );
			if ( ( titles[title] && cbdupl.checked ) || ( uctop.length && cbtop.checked ) ) {
				li[i].style.display = 'none';
			} else {
				li[i].style.display = null;
			}
			titles[title] = true;
		}
	}
	cbdupl.addEventListener( 'change', refreshContribs, false );
	cbtop.addEventListener( 'change', refreshContribs, false );
} );