« MediaWiki:Common.js » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 2 : | Ligne 2 : | ||
/* Penser à aligner Mobile.js et Common.js pour la version bureau */ | /* Penser à aligner Mobile.js et Common.js pour la version bureau */ | ||
alert("common.js"); | |||
importScript('Mediawiki:Lescatpat:js'); | importScript('Mediawiki:Lescatpat:js'); | ||
Version du 4 décembre 2023 à 20:00
/* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */ /* Penser à aligner Mobile.js et Common.js pour la version bureau */ alert("common.js"); importScript('Mediawiki:Lescatpat:js'); /*******************************************************************************/ /* Javascript pour afficher le statut de l'utilisateur actuel */ /* sur la page "lescatpat:Utilisateurs" ou d'autres à définir */ /********************************************************************************/ dsg_wgTitle = mw.config.get("wgTitle"); dsg_wgCanonicalNamespace = mw.config.get("wgCanonicalNamespace"); dsg_wgUserGroups = mw.config.get("wgUserGroups"); if(dsg_wgTitle == "Utilisateurs" & dsg_wgCanonicalNamespace == "Project"){ if($.inArray('sysop', dsg_wgUserGroups) !== -1){ statut = 'administrateur'; }else if($.inArray('Editeur', dsg_wgUserGroups) !== -1){ statut = 'éditeur'; }else if($.inArray('user', dsg_wgUserGroups) !== -1){ statut = 'utilisateur connecté'; }else{ statut = 'utilisateur non connecté'; } //alert(statut); $(".monstatut").text(statut); } //alert("22"); /*******************************************************************************/ /* Javascript applicable à la catégorie des recettes (voir if... plus bas) /* Javascript pour modifier la navigation Outils */ /* */ /* http://www.mediawiki.org/w/index.php?title=Manual:Interface/Sidebar */ /********************************************************************************/ function ModifySidebar( action, section, name, link ) { try { switch ( section ) { case 'languages': var target = 'p-lang'; break; case 'toolbox': var target = 'p-tb'; break; case 'navigation': var target = 'p-navigation'; break; default: var target = 'p-' + section; break; } if ( action == 'add' ) { var node = document.getElementById( target ) .getElementsByTagName( 'div' )[0] .getElementsByTagName( 'ul' )[0]; var aNode = document.createElement( 'a' ); var liNode = document.createElement( 'li' ); aNode.appendChild( document.createTextNode( name ) ); aNode.setAttribute( 'href', link ); liNode.appendChild( aNode ); liNode.className = 'plainlinks'; node.appendChild( liNode ); } if ( action == 'remove' ) { var list = document.getElementById( target ) .getElementsByTagName( 'div' )[0] .getElementsByTagName( 'ul' )[0]; var listelements = list.getElementsByTagName( 'li' ); for ( var i = 0; i < listelements.length; i++ ) { if ( listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name || listelements[i].getElementsByTagName( 'a' )[0].href == link ) { list.removeChild( listelements[i] ); } } } } catch( e ) { // let's just ignore what's happened return; } } function CustomizeModificationsOfSidebar() { ModifySidebar( 'remove', 'toolbox', 'Pages liées', '' ); ModifySidebar( 'remove', 'toolbox', 'Suivi des pages liées', '' ); ModifySidebar( 'remove', 'toolbox', 'Importer un fichier', 'Spécial:Téléverser' ); ModifySidebar( 'remove', 'toolbox', 'Pages spéciales', 'Spécial:Pages spéciales' ); ModifySidebar( 'remove', 'toolbox', 'Adresse de cette version', '' ); //ModifySidebar( 'remove', 'toolbox', 'Information sur la page', '' ); ModifySidebar( 'add', 'toolbox', 'Importer une image', 'Spécial:Téléverser' ); } dsg_wgCategories = mw.config.get("wgCategories"); if($.inArray('Recettes', dsg_wgCategories) !== -1){ //alert("105"); // addOnloadHook( CustomizeModificationsOfSidebar ); deprecated jQuery( CustomizeModificationsOfSidebar ); } /*******************************************************************************/ /* Javascript applicable à la catégorie des recettes */ /* */ /* Calcul des quantités d'ingrédients selon le nombre de parts */ /********************************************************************************/ // pour tester les éléments sélectionnés, utiliser .css({"color":"red","border":"2px solid red"}); //if($.inArray('Recettes', wgCategories) !== -1){ /* Ancienne méthode : le nombre de parts était supposé par défaut à 4 et les quantités d'ingrédients étaient données pour 1 part. C'est le cas des recettes de Catherine. Nouvelle méthode : on définit le nombre de parts x dans la page à l'aide du modèle {{pour|x}} et les quantités d'ingrédients sont alors données pour x parts. D'où la nécessité de 2 cas de calcul selon que l'on part des données pour 1 part ou des données pour x parts. La distinction se fait en repérant la balise class="recette_pour" dans le html. */ /* length = 0 correspond à absence de la class recette_pour ce qui correspond au format du tableau ingrédients initial donc à toutes les recettes de Catherine */ if($(".recette_pour").length === 0){ //alert("catherine"); ancien_format = true; nbpers = 4; }else{ //alert($(".recette_pour").text()); nbpers = $(".recette_pour").text(); ancien_format = false; } $(".ingredients-nbpersonnes").text(nbpers); var calcul_quantites = function(qu,nba){ if(qu === '')return; qu2 = qu.replace(',','.'); resultat = (qu2 / nba).toFixed(2).replace('.00',''); if(resultat === 0)return; return resultat; } var calcul_quantites2 = function(qu,nba){ if(qu === '')return; qu2 = qu.replace(',','.'); resultat = (qu2 * nba).toFixed(2).replace('.00',''); if(resultat === 0)return; return resultat; } $("tr.ligne-ingredient").each(function(){ if(ancien_format === true){ q_unitaire = $(this).find(".recette-qt").text(); $(this).find(".recette-q").text(q_unitaire); q_totale = calcul_quantites2(q_unitaire,nbpers); $(this).find(".recette-qt").text(q_totale); }else{ //alert ("new"); q_totale = $(this).find(".recette-qt").text(); q_unitaire = calcul_quantites(q_totale,nbpers); $(this).find(".recette-q").text(q_unitaire); } }); $(".table-ingredients-bouton-moins").click(function(){ nbpers--; $(".ingredients-nbpersonnes").text(nbpers); $("tr.ligne-ingredient").each(function(){ q_unitaire = $(this).find(".recette-q").text(); q_totale = calcul_quantites2(q_unitaire,nbpers); $(this).find(".recette-qt").text(q_totale); }); if(nbpers == 1)$(".table-ingredients-bouton-moins").hide(); }); $(".table-ingredients-bouton-plus").click(function(){ nbpers++; $(".ingredients-nbpersonnes").text(nbpers); $("tr.ligne-ingredient").each(function(){ q_unitaire = $(this).find(".recette-q").text(); q_totale = calcul_quantites2(q_unitaire,nbpers); $(this).find(".recette-qt").text(q_totale); }); if(nbpers > 1)$(".table-ingredients-bouton-moins").show(); }); //} /******************************************************************************/ /* préparation de la barre d'édition */ /* https://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization */ /******************************************************************************/ /** * préparation de la barre d'édition * https://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization */ var d_dsg = new Date(); var curr_date_dsg = d_dsg.getDate(); var curr_month_dsg = d_dsg.getMonth() + 1; var curr_year_dsg = d_dsg.getFullYear(); var customizeToolbar = function() { /* Your code goes here */ /* Remove le bouton reference $( '#wpTextbox1' ).wikiEditor( 'removeFromToolbar', { 'section': 'main', 'group': 'insert', 'tool': 'reference' }); */ //if($.inArray('Recettes', wgCategories) !== -1){ $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { 'sections': { 'recettes': { 'type': 'booklet', 'deferLoad': true, 'label': 'Ingrédients', 'pages': { 'format': { 'layout': 'table', 'label' : 'Table des ingrédients', 'headings': [ { 'textMsg': 'wikieditor-toolbar-help-heading-description' }, { 'textMsg': 'wikieditor-toolbar-help-heading-syntax' }, { 'textMsg': 'wikieditor-toolbar-help-heading-result' } ], 'rows': [ { 'description': { 'html':'Taper une ligne par ingrédient<br>sans omettre les séparateurs<br>|... /... /...' }, 'syntax': { 'html': '{{Ingrédients<br>|nom ingrédient/quantité par personne/unité<br>}}' }, 'result': { 'html': 'Un tableau des ingrédients mis en page' } } ] } } } } } ); //} $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { 'sections': { 'autres': { 'type': 'toolbar', // Can also be 'booklet' 'label': 'Autres' // or 'labelMsg': 'section-emoticons-label' for a localized label } } } ); $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { 'section': 'autres', 'groups': { 'commandes_dsg': { } } } ); $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { 'section': 'autres', 'group': 'commandes_dsg', 'tools': { 'a1': { 'labelMsg': 'A1', 'type': 'button', 'icon': 'resources/assets/button_head_A1.png', 'action': { 'type': 'encapsulate', 'options': { pre: "\n== ", 'peri': 'xxx', post: " ==\n" } } }, 'a2': { 'labelMsg': 'A2', 'type': 'button', 'icon': 'resources/assets/button_head_A2.png', 'action': { 'type': 'encapsulate', 'options': { pre: "\n=== ", 'peri': 'xxx', post: " ===\n" } } }, 'galerie': { 'labelMsg': 'Galerie', 'type': 'button', 'icon': 'resources/assets/btn_toolbar_gallery.png', 'action': { 'type': 'encapsulate', 'options': { pre: "<gallery>\n", 'peri': 'image:exemple1.png|aaa\nimage:exemple2.png\n', post: "</gallery>\n" } } }, 'date': { 'labelMsg': 'Date', 'type': 'button', 'icon': 'resources/assets/button_date.png', 'action': { 'type': 'encapsulate', 'options': { 'peri': curr_date_dsg + "/" +curr_month_dsg + "/" +curr_year_dsg } } }, 'attention': { 'labelMsg': 'Attention', 'type': 'button', 'icon': 'resources/assets/button_aviso.png', 'action': { 'type': 'encapsulate', 'options': { pre: "{{Attention}}", 'peri': 'xxx' } } }, 'retour_ligne': { 'labelMsg': 'Retour ligne', 'type': 'button', 'icon': 'resources/assets/button_br.png', 'action': { 'type': 'encapsulate', 'options': { pre: "<br>\n" } } }, 'liens': { label: 'Liens vers', type: 'button', icon: 'resources/assets/button_liens.png', action: { type: 'encapsulate', options: { pre: "{{liens|", peri: "Page liée", post: "}}" } } }, 'categorie': { label: 'Catégorie', type: 'button', icon: 'resources/assets/button_categorie.png', action: { type: 'encapsulate', options: { pre: "[[Catégorie:", peri: "A remplir", post: "]]" } } },'box': { label: 'Box', type: 'button', icon: 'resources/assets/button_box.png', action: { type: 'encapsulate', options: { pre: "<blockquote style=\"background: white; border: 1px solid black; padding: 1em;\">\n", peri: "Texte", post: "\n</blockquote>\n" } } }, 'code': { label: 'Code', type: 'button', icon: 'resources/assets/button_code.png', action: { type: 'encapsulate', options: { pre: "<pre>\n", peri: "Code", post: "\n</pre>\n" } } } } } ); }; /* A del en version > 1.33 /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar . . . * / if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) { mw.loader.using( 'user.options', function () { // This can be the string "0" if the user disabled the preference ([[bugzilla:52542#c3]]) if ( mw.user.options.get( 'usebetatoolbar' ) == 1 && mw.user.options.get( 'showtoolbar' ) == 1 ) { $.when( mw.loader.using( 'ext.wikiEditor.toolbar' ), $.ready ).then( customizeToolbar ); } } ); } */ /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */ if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) { mw.loader.using( 'user.options' ).then( function () { // This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]]) if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) { $.when( mw.loader.using( 'ext.wikiEditor' ), $.ready ).then( customizeToolbar ); } } ); } // Add the customizations to LiquidThreads' edit toolbar, if available mw.hook( 'ext.lqt.textareaCreated' ).add( customizeToolbar );