Utilisateur:DreZhsh/Apparence.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/* jshint esversion: 6 */
mw.loader.using( [ 'mediawiki.util', 'mediawiki.api', 'oojs-ui-core' ], () => {
	// "Mes liens"
	// Label - Texte
	const spanLabel = document.createElement( 'span' );
	spanLabel.classList.add( 'vector-menu-heading-label' );
	spanLabel.textContent = 'Mes liens';
	// Label
	const divLabel = document.createElement( 'div' );
	divLabel.classList.add( 'vector-menu-heading' );
	divLabel.append( spanLabel );
	// Contenu - Liste
	const ulContent = document.createElement( 'ul' );
	ulContent.classList.add( 'vector-menu-content-list' );
	// Contenu
	const divContent = document.createElement( 'div' );
	divContent.classList.add( 'vector-menu-content' );
	divContent.append( ulContent );
	// Élément principal
	const portlet = document.createElement( 'div' );
	portlet.classList.add( 'vector-main-menu-group', 'vector-menu', 'mw-portlet', 'mw-portlet-cs' );
	portlet.setAttribute( 'id', 'p-cs' );
	portlet.append( divLabel );
	portlet.append( divContent );
	// Date
	const date = new Date(),
		jour = date.getDate(),
		numéroMois = date.getMonth(),
		annee = date.getFullYear(),
		mois = [ 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre' ],
		pageBistroJour = `Wikipédia:Le Bistro/${jour} ${mois[ numéroMois ]} ${annee}`;

	/**
	 * newLink
	 *
	 * @param {string} page - L'URL du lien
	 * @param {string} text - Le texte du lien
	 */
	function newLink( page, text ) {
		mw.util.addPortletLink( 'p-cs', page, text );
	}

	document.getElementById( 'p-Contribuer' ).after( portlet );
	newLink( `/wiki/${pageBistroJour}`, 'Bistro du jour' );
	newLink( '/wiki/Utilisateur:DreZhsh/common.js', 'Gadgets' );
	newLink( '/wiki/Utilisateur:DreZhsh/Aide_mémoire', 'Aide mémoire' );
	newLink( 'https://meta.wikimedia.org/wiki/Special:GlobalWatchlist', 'Liste de suivi' );
	newLink( '/wiki/Wikipédia:Bulletin_des_administrateurs', 'Bulletin' );
	newLink( '/wiki/Wikipédia:Requête_aux_administrateurs', 'Requêtes' );

	// Menu Outils
	if ( mw.config.get( 'wgNamespaceNumber' ) !== 0 || mw.config.get( 'wgNamespaceNumber' ) !== -1 ) {
		mw.util.addPortletLink(
			'p-tb',
			`https://fr.wikipedia.org/wiki/Spécial:Index/${mw.config.get( 'wgPageName' )}/`,
			'Sous-pages',
			'p-spages',
			'Sous-pages'
		);
	}
	if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
		mw.util.addPortletLink(
			'p-tb',
			'https://refswikipedia.toolforge.org/index.php',
			'Références',
			'p-refswikipedia',
			'Mise en forme des références'
		);
	}

	// Menu Plus
	if ( mw.config.get( 'wgNamespaceNumber' ) !== -1 ) {
		if ( mw.config.get( 'wgNamespaceNumber' ) === 2 || mw.config.get( 'wgNamespaceNumber' ) === 3 ) {
			mw.util.addPortletLink(
				'p-cactions',
				`https://fr.wikipedia.org/wiki/Sp%C3%A9cial:Journal_du_filtre_antiabus?wpSearchUser=${mw.config.get( 'wgRelevantUserName' )}`,
				'Filtre',
				'ca-filtreantiabus',
				'Filtre'
			);
		}
		mw.util.addPortletLink(
			'p-cactions',
			`https://fr.wikipedia.org/wiki/Sp%C3%A9cial:Journal?type=&page=${mw.config.get( 'wgPageName' )}`,
			'Journal',
			'ca-log',
			'Journal'
		);
	}

	// Bas de page
	mw.util.addPortletLink(
		'footer-places',
		'https://fr.wikipedia.org/wiki/Sp%C3%A9cial:Journal_du_filtre_antiabus',
		'Filtre',
		'p-FILTRE'
	);
	mw.util.addPortletLink(
		'footer-places',
		'https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Patrouille_RC',
		'Patrouille',
		'p-PRC',
		'Accueil de la patrouille'
	);
	mw.util.addPortletLink(
		'footer-places',
		'https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Patrouille_RC/Tableau',
		'Tableau de bord',
		'p-TBORD',
		'Tableau de bord'
	);
	mw.util.addPortletLink(
		'footer-places',
		'https://fr.wikipedia.org/wiki/Wikipédia:Patrouille RC/Outils',
		'Outils',
		'p-TOOLS',
		'Outils'
	);
	mw.util.addPortletLink(
		'footer-places',
		'https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Bulletin_des_patrouilleurs',
		'Bulletin',
		'p-BULLPAT',
		'Bulletin des patrouilleurs'
	);
	mw.util.addPortletLink(
		'footer-places',
		'https://fr.wikipedia.org/wiki/Projet:Scripts_et_gadgets',
		'Scripts et gadgets',
		'p-JS',
		'JavaScript'
	);
	mw.util.addPortletLink(
		'footer-places',
		'https://intersect-contribs.toolforge.org/',
		'Intersect Contribs',
		'p-Intersect',
		'Contributions'
	);
	mw.util.addPortletLink(
		'footer-places',
		'https://interaction-timeline.toolforge.org/',
		'Interaction Timeline',
		'p-Timeline',
		'Contributions'
	);
	// Message pour page non patrouillée
	new mw.Api().get( {
		action: 'query',
		format: 'json',
		list: 'recentchanges',
		rcprop: 'parsedcomment|ids|user',
		rcshow: '!patrolled',
		rctype: 'edit',
		rctoponly: 1,
		rctitle: mw.config.get( 'wgPageName' )
	} ).then(
		( query ) => {
			const data = query.query.recentchanges[ 0 ];
			if ( data !== undefined ) {
				const warningPossibleVand = new OO.ui.MessageWidget( {
					type: 'error',
					label: new OO.ui.HtmlSnippet( `<strong>Page non patrouillée</strong><br><p>La <a href="/wiki/Special:Diff/${data.revid}">dernière modification</a> de cette page effectuée par <a href="/wiki/Spécial:Contributions/${data.user}">${data.user}</a>${data.parsedcomment !== '' ? ` avec le commentaire \u00ab ${data.parsedcomment} \u00bb` : ''} n'a pas été vérifiée.</p>` ),
					showClose: true
				} );
				$( document.querySelector( '.mw-body-header' ) ).after( warningPossibleVand.$element );
			}
	} );
} );