Utilisateur:Programmateur01/xpatrol.js
Apparence
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.// Fork de Utilisateur:Arkanosis/xpatrol.js
/*
* xpatrol - Permet d'effectuer rapidement certaines actions
* - ajouter un bandeau à une page
* - Compétition sportive en cours
* - Compétition sportive à venir
*/
/*
* (C) 2009-2021 Arkanosis <jroquet@arkanosis.net>
* (C) 2013 Orlodrim <orlodrim@wiki256.net>
* (C) 2016-2018 Od1n
* Released under the MIT/X11 license
*/
/* global alert, $, mw, window */
/* jshint laxbreak: true */
// <nowiki>
mw.loader.using( [ 'mediawiki.util', 'user' ], function () {
'use strict';
function xpatrolReload( callback ) {
$.get( mw.util.getUrl( null, { action: 'render' } ) ).done( function ( html ) {
$( '#mw-content-text' ).html( html );
if ( callback ) {
callback();
}
} ).error( function () {
$( '#mw-content-text' ).text( 'Impossible de recharger la page' );
if ( callback ) {
callback();
}
} );
}
function xpatrolEdit( article, mode, text, section, reason, button, callback ) {
function afterReload() {
if ( button ) {
var link = document.getElementById( button );
link.innerHTML = '<img src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Yes_check.svg/15px-Yes_check.svg.png"> ' + link.innerHTML;
}
if ( callback ) {
callback();
}
}
function afterEdit( data ) {
if ( article == mw.config.get( 'wgPageName' ) ) {
if ( !text ) {
$( '#mw-content-text' ).remove();
}
else {
xpatrolReload( afterReload );
return;
}
}
afterReload();
}
function onFailure() {
alert( 'Impossible d\'enregistrer la page ' + article );
}
var data = {
format: 'json',
title: article,
token: mw.user.tokens.get( 'csrfToken' ),
summary: section + '[[Utilisateur:Programmateur01/xpatrol.js|xpatrol]] : ' + reason
};
data[ mode ] = text;
if ( !data.token || data.token.length <= 2 ) {
alert( 'Vous n\'êtes plus connecté' );
} else {
$.post( mw.util.wikiScript( 'api' ) + '?action=edit', data, afterEdit ).error( onFailure );
}
}
function xpatrolAddBanner( article, banner, reason, button ) {
if ( confirm( 'Ajouter le bandeau ' + banner + ' à l\'article ' + article + ' pour ' + reason + ' ?' ) ) {
xpatrolEdit( article, 'prependtext', '{{' + banner + '}}\n', '', reason, button );
}
}
function xpatrolAddBannerLink( label, hint, banner, message, bannerQuestion ) {
var xpatrolNav = document.getElementById( 'xpatrol-nav' );
var link = document.createElement( 'a' );
link.href = 'javascript:';
link.onclick = function ( e ) {
e.preventDefault();
if ( bannerQuestion ) {
var input = prompt( bannerQuestion );
if ( input === null ) {
return;
}
banner = banner.replace( '__PROMPT__', function () { return input; } );
}
xpatrolAddBanner( mw.config.get( 'wgPageName' ), banner, message, 'xpatrol-' + label );
};
link.id = 'xpatrol-' + label;
link.title = hint;
link.appendChild( document.createTextNode( ' ' + label + ' ' ) );
xpatrolNav.appendChild(link);
}
function xpatrolAddBannerLinks() {
var today = new Date();
var month = [ 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre' ][ today.getMonth() ];
var date = '|date=' + month + ' ' + today.getFullYear();
var bodyContent = document.getElementById( 'bodyContent' );
var navLink = document.createElement( 'a' );
navLink.href = 'javascript:';
navLink.onclick = function ( e ) {
e.preventDefault();
var x = document.getElementById("xpatrol-nav");
// toggle display
if (x.style.display === "none") {
document.getElementById("xpatrol-nav-a").text = 'v Bandeaux : '
x.style.display = "block";
} else {
document.getElementById("xpatrol-nav-a").text = '> Bandeaux : '
x.style.display = "none";
}
};
navLink.id = 'xpatrol-nav-a';
navLink.appendChild(document.createTextNode('> Bandeaux : '));
var navBar = document.createElement( 'p' );
navBar.id = 'xpatrol-nav';
navBar.style.display = "none"
bodyContent.parentNode.insertBefore( navLink, bodyContent );
bodyContent.parentNode.insertBefore( navBar, bodyContent );
xpatrolAddBannerLink('[Compétition en cours]', 'Compétition sportive en cours', 'Compétition sportive en cours', 'Compétition en cours');
xpatrolAddBannerLink('[Compétition en cours+]', 'Compétition sportive en cours (avec sport)', 'Compétition sportive en cours|sport=__PROMPT__', 'Compétition en cours', 'Quel est le sport ?');
xpatrolAddBannerLink('[Compétition à venir]', 'Compétition sportive à venir', 'Compétition sportive à venir', 'Compétition à venir');
xpatrolAddBannerLink('[Compétition à venir+]', 'Compétition sportive à venir (avec sport)', 'Compétition sportive à venir|sport=__PROMPT__', 'Compétition à venir', 'Quel est le sport ?');
//xpatrolAddBannerLink( '?', 'Incompréhensible dans l’état actuel', '?' + date, '[[WP:RI|Incompréhensible dans l\’état actuel]]' );
xpatrolAddBannerLink( 'Pub', 'Ton trop promotionnel ou publicitaire', 'pub' + date, '[[WP:POV|Ton trop promotionnel ou publicitaire]]' );
xpatrolAddBannerLink( 'Admi', 'Admissibilité à vérifier', 'admissibilité à vérifier' + date, '[[WP:CAA|Admissibilité à vérifier]]' );
//xpatrolAddBannerLink( 'Admi+', 'Admissibilité à vérifier (avec motif)', 'admissibilité à vérifier' + date + '|motif=__PROMPT__', '[[WP:CAA|Admissibilité à vérifier]]', 'Pourquoi n\'êtes-vous pas convaincu de l\'admissibilité de cet article ?' );
//xpatrolAddBannerLink( 'Orth', 'Orthographe et grammaire à vérifier', 'Orthographe' + date, 'Orthographe et grammaire à vérifier' );
//xpatrolAddBannerLink( 'Redac', 'Style non encyclopédique', 'Rédaction' + date, '[[WP:STYLE|Style non encyclopédique]]' );
xpatrolAddBannerLink( 'Wikif', 'À wikifier', 'À wikifier' + date, '[[Aide:Wikification|À wikifier]]' );
//xpatrolAddBannerLink( 'MàJ', 'À mettre à jour', 'À mettre à jour' + date, 'À mettre à jour' );
//xpatrolAddBannerLink( 'Int', 'À internationaliser', 'À internationaliser' + date, 'À internationaliser' );
xpatrolAddBannerLink( 'Src', 'À sourcer', 'À sourcer' + date, '[[WP:REF|À sourcer]]' );
xpatrolAddBannerLink( 'Src2', 'Manque de sources secondaires', 'Sources secondaires' + date, '[[WP:SPS|Manque de sources secondaires]]' );
xpatrolAddBannerLink( 'Cat', 'À catégoriser', 'À catégoriser' + date, '[[Aide:Catégorie|À catégoriser]]' );
//xpatrolAddBannerLink( 'Src3', 'Sources à lier', 'Sources à lier' + date, '[[Modèle:Sources_à_lier/Explication|Sources à lier]]' );
//xpatrolAddBannerLink( 'TI', 'Travail inédit', 'Travail inédit' + date, '[[WP:TI|Travail inédit]]' );
//xpatrolAddBannerLink( 'CpVer', 'Soupçon de violation de droit d\'auteur', 'Copie à vérifier|1=__PROMPT__' + date, 'Soupçon de violation de [[Wikipédia:Droit d\'auteur|droit d\'auteur]]', 'Quelle est la source copiée illégalement ?' );
//xpatrolAddBannerLink( 'Sursis', 'Article en sursis', 'Article en sursis|TimeStamp={{subst' + ':CURRENTTIMESTAMP}}', '[[Modèle:Article en sursis/Documentation|Article en sursis]]' );
//xpatrolAddBannerLink( 'PàS', 'Proposition de suppression', 'Suppression' + date, '[[WP:PàS|Proposition de suppression]]' );
//xpatrolAddBannerLink( 'R3R', 'Guerre d\'édition', 'R3R' + date, '[[WP:R3R|Règle des trois révocations]]' );
}
function xpatrol() {
if ( document.getElementById( 'ca-edit' ) ) {
xpatrolAddBannerLinks();
}
}
$( xpatrol );
} );
// </nowiki>