MediaWiki:Mobile.js
Apparence
Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
- Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
- Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
- Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
/* Le Javascript placé ici n’affectera que les utilisateurs du site mobile */
/* Penser à aligner Mobile.js et Common.js pour la version bureau */
alert ("Mobile.js");
//---------------------------------------------------------------------------
// Copie d'un texte vers presse papier par bouton 11/2023
// Operationnel, installé dans comme suit
// Mediawiki:Mobile.js pour exploitation pour les mobiles
// Mediawiki:common.js non installé car non nécessaires aux versions bureau
// Utilisateur:Daniel/common.js conservé en commentaire pour tests
//---------------------------------------------------------------------------
/*
Voir
https://www.mediawiki.org/wiki/Gadget_kitchen
https://www.mediawiki.org/wiki/Manual:CopyTextLayout
https://www.mediawiki.org/wiki/How_to_enhance_wiki_content_with_JavaScript
https://doc.wikimedia.org/oojs-ui/master/demos/?page=widgets&theme=wikimediaui&direction=ltr&platform=mobile#ButtonWidget-normal
*/
mw.loader.using('mediawiki.widgets').then( function (){
var copyText = new mw.widgets.CopyTextLayout( {
title: 'Copy the text',
copyText: '\{\{subst:Modèle:entrée\}\}'
} );
var copyTextPlat = new mw.widgets.CopyTextLayout( {
title: 'Copy the text',
copyText: '\{\{subst:Modèle:plat\}\}'
} );
var copyTextDessert = new mw.widgets.CopyTextLayout( {
title: 'Copy the text',
copyText: '\{\{subst:Modèle:dessert\}\}'
} );
//$( '#bodyContent' ).prepend( copyText.$element );
$( '.dsg_RecetteCategorie' ).append(copyText.$element );
$( '.dsg_RecetteCategorie' ).append(copyTextPlat.$element );
$( '.dsg_RecetteCategorie' ).append(copyTextDessert.$element );
});
/*******************************************************************************/
/* 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 */
/* */
/* 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();
});
//}