Modifications

Aller à : navigation, rechercher

MediaWiki:Gadget-ResumeDeluxe.js

4 041 octets ajoutés, 3 juillet 2016 à 16:14
m
Annulation des modifications 102094 de FredoB (discussion)
/* * Résumé Deluxe.
*
* Ajoute des commentaires de modification prédéfinis
*
* Auteur : Dake
* Contributions : Pabix, Tieno, Ltrlg * Date de dernière révision * Dépendances : 10 avril 2009 * — les habituelles implicites 'mediawiki' & 'jquery' ; * — 'user' (chargement du common.js). * * {{Projet:JavaScript/Script|ResumeDeluxe}}
*/
var /* Vérifier la présence d’un titre de section. * Cela permet de n’ajouter un séparateur ' ; ' entre deux résumés que si * nécessaire. * Note : on ne vérifie que le fait que le motif est en fin de chaîne, pas * en début. */ sansPointVirgule = /\*\/\s*$/, /* La liste des liens qui seront affichés. * Les éléments du tableau sont d’une des deux formes suivantes : * — [ 'lien' , 'resume' ] * — 'texte' * où 'lien' représente l’intitulé du lien, 'resume' le résumé d’édition * inséré par le lien et 'texte' les deux à la fois. */ listeLiens = [], /* Liens affichés par défaut, même format que listeLiens. */ liensParDefaut = [ 'orthographe', 'typographie', 'catégorisation', 'wikification', 'image', 'mise en forme', 'mise en page', 'redirection', 'relecture', 'style', 'revert', 'réorganisation', 'réponse', 'maintenance', [ 'homonymie', 'création homonymie' ], [ 'bandeau', 'ajout de bandeau' ], 'infobox', 'références', 'retouche de la modification précédente' ], /* Objet permettant de désactiver des liens (parmi la liste par défaut * ci-avant), sous la forme { 'lien1': false, 'lien2': false, … } où * 'lien1', 'lien2'… est l’intitulé du lien à ne pas afficher. */ liensAffiches = window.ResumeDeluxe_affiches || {}, /* Objet jQuery contenant l’<input> ou le <textarea> constituant le résumé. */ $resume, /* Objet jQuery contenant la liste de liens. */ $liste; /* Fonction renvoyant l’intitulé d’un lien à partir de sa représentation sous * forme de tableau ou de chaîne. */function texteDuLien( definition ) { if ( $.isArray( definition ) ) { return definition[0]; } else { //Soyons sûr d’avoir une chaîne de caractères return definition.toString(); }} /* Fonction renvoyant le texte ajouté par un lien à partir de sa représentation * sous forme de tableau ou de chaîne. *//ZONE PERSONNALISABLE////////////function resumeAInserer( definition ) { if ( $.isArray( definition ) ) { return definition[1]; } else { //Soyons sûr d’avoir une chaîne de caractères. return definition.toString(); }} /* Procédure transformant l’ancien format de configuration pour la * compatibilité. */function transformerAncienneConfiguration() { var i; if ( //Appliqué seulement si le nouveau format n’existe pas ! $.isArray( window.ResumeDeluxe_liens ) && //Les deux tableaux doivent exister $.isArray( window.resumedeluxeTitles ) && $.isArray( window.resumedeluxeInputs ) && //Les deux tableaux doivent avoir la même longueurvar window.resumedeluxeTitles .length = new Array(= window.resumedeluxeInputs.length ){ window.ResumeDeluxe_liens = [];with for (i = 0; i < window.resumedeluxeTitles.length; i++ ) { window.ResumeDeluxe_liens.push("orthographe");[ push window.resumedeluxeTitles[i].replace("- typographie"/^.\s+/, '' );, window.resumedeluxeInputs[i] push("- complément" ] ); push(" } }} /* Procédure appliquant les préférences de l’utilisateur : * — si l’utilisateur a défini window.ResumeDeluxe_liens, celui- catégorisation")ci est utilisé * à la place de la liste par défaut liensParDefaut ; push("- interwiki") * — sinon si l’utilisateur a défini window.ResumeDeluxe_affiches, les règles * de désactivation sont appliquées ; push * — sinon liensAffiches est un objet vide, donc la liste par défaut est * utilisée. */function appliquerConfiguration("- wikification"){ var i, cle; push if ( $.isArray("- image"window.ResumeDeluxe_liens ) ){ listeLiens = window.ResumeDeluxe_liens; push } else { for ("- mise en page"i = 0; i < liensParDefaut.length; i++ );{ push cle = texteDuLien("- redirection"liensParDefaut[i] ); push if ("- relecture"liensAffiches[cle] !== false );{ listeLiens.push("- style"liensParDefaut[i] ); push } } }} /* Procedure effectuant l’ajout d’une chaîne au résumé d’édition, avec un * séparateur si besoin */function ajouterAuResume("- retour"chaine );{ push var resumeActuel = $resume.val("- révocation"); push if ("- réorganisation"resumeActuel === '' );{ push $resume.val("- réponse"chaine ); push } else if ( sansPointVirgule.test("- maintenance"resumeActuel ) );{ push $resume.val("- évaluation"resumeActuel + chaine ); push } else { $resume.val("- homonymie"resumeActuel + ' ; ' + chaine ); push } // L’ÉditeurVisuel ne se base plus sur le contenu mais sur l’évènement $resume.change("- bandeau"); push("- infobox"); push("- références"); // Conserver le focus sur le lien est inutile à l’utilisateur push(" // Plaçons- retouche le sur le champ de résumé, s’il veut compléter à la modification précédente"main $resume.focus();
}
var resumedeluxeInputs= new Array();with /* Fonction renvoyant un lien à partir de sa définition. */function $lien(resumedeluxeInputsdefinition ) { push var resume = resumeAInserer("orthographe"definition ); push return $("typographie"'<a>' ); push .text("Paragraphe complémentaire"); pushtexteDuLien("catégorisation"definition ); push("interwiki"); push .attr("wikification");{ push("image"); href: '#', push("mise en page"); title: 'Ajouter «\xA0' + resume + '\xA0» au résumé de modification' push("redirection" } ); push .click("relecture"); pushfunction ("style");{ push ajouterAuResume("retour version précédente"resume ); push("Révocation") return false; push("réorganisation"); push("réponse"); push("maintenance"); push("évaluation WikiGenWeb"); push("création homonymie"); push("ajout de bandeau"); push("infobox"); push("références"); push("retouche de la modification précédente" } );
}
/////////////////FIN DE LA ZONE PERSONNALISABLE/////////////////
/* Procédure construisant la liste de liens. */function setSummarycontruireListe(str){ var i, $ul; $ul = $( '<ul>' ) .addClass( 'liste-horizontale' ) .css( { document display: 'inline', margin: 0 } ); for( i = 0; i < listeLiens.editformlength; i++ ) { $ul.wpSummaryappend( $( '<li>' ).value append( $lien( listeLiens[i] ) ) ); } $cont = str$( '<div>' ).attr( 'id', 'ResumeDeluxe' ) .text( 'Messages prédéfinis\xA0: ' ) .append( $ul );
}
/* Procédure initialisant $resume et insérant la liste de liens dans le cas de * l’éditeur de wikicode, quand les nœuds nécessaires sont en place. */function addToSummarydemarrer_wikicode(str){ var resum = $( document).editform.wpSummary.value;ready( function () { if $(resum != 0 && resum'#wpSummaryLabel' ).indexOfbefore("*/"$cont ) < resum.length - 3) {; document.editform. $resume = $( '#wpSummary.value += " ; "' ); } document.editform.wpSummary.value += str);
}
/* Procédure initialisant $resume et insérant la liste de liens dans le cas de * l’ÉditeurVisuel, quand les nœuds nécessaires sont en place. */function DeluxeSummarydemarrer_EditeurVisuel(){ if mw.hook(document've.URLsaveDialog.indexOf("&section=new") > 0stateChanged' ) return; var sumLbl = document.getElementByIdadd("wpSummaryLabel"); iffunction (sumLbl) { var sumInput = document /* * Traitement : si le dialogue a été recréé, on y remet ce qu’il faut.getElementById("wpSummary"); sumInput * TODO Vérifier si cette vérification est encore nécessaire.style.width = "95%"; var str = "Messages prédéfinis : "; */ for if ( $( '#ResumeDeluxe' ).size(var cpt = 0; cpt ) < resumedeluxeTitles.length; cpt ++1 ) { var tmp = resumedeluxeInputs[cpt] $( '#MediaWiki-summary' ).after( $cont ); str += "<a href $resume =\"javascript:addToSummary$('" + tmp.replace( /[']/g , "\\'") + "ve-ui-mwSaveDialog-summary textarea')\"" + " class=\"sumLink\" title=\"Ajouter dans la boîte de résumé\">" + resumedeluxeTitles[cpt] + "</a> "; } sumLbl.innerHTML = str + "<br />" + sumLbl.innerHTML } ); }
}
addOnloadHook/* Procédure qui détermine quel éditeur peut être utilisé et démarre le gadget * selon le résultat. */function demarrer() { switch ( mw.config.get( 'wgAction' ) ) { case 'edit': case 'submit': // Désactivé pour la création de sections if ( ! /(\?|&)section=new(&|$)/.test( document.location.search ) ) { demarrer_wikicode(); } // fallthrough: L’EV peut démarrer de ces modes sans rechargement case 'view': demarrer_EditeurVisuel(); break; }} /***** Démarrage du tout *****/ // Compatibilité avec l’ancien format de configurationtransformerAncienneConfiguration();// Lecture des préférencesappliquerConfiguration();// Construction de la liste des lienscontruireListe();// Insère la liste dans l’arbre des nœuds et cherche le nœud contenant le résumédemarrer(DeluxeSummary);
ForumAdmin, ForumModerator, bureaucrate, administrateur, wgw
78 134
modifications

Menu de navigation