« Utilisateur:Daniel/common.js » : différence entre les versions

De Lescatpat
Aucun résumé des modifications
Aucun résumé des modifications
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 5 : Ligne 5 :
  ********************************************************************************/
  ********************************************************************************/


//alert ("Daniel common.js");
//alert ("Daniel:common.js");
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
Ligne 16 : Ligne 16 :
...
...
*/
*/
//---------------------------------------------------------------------------
// Javascript nécessaire à la page de création d'une nouvelle recette
// Testé ici sous connexion Daniel pour mise au point
//
// Version en exploitation : ce script doit être copié dans les deux pages
// Mediawiki:Common.js et Mediawiki:Mobile.js
//---------------------------------------------------------------------------
mw.loader.using('mediawiki.widgets').then( function (){
// See documentation at:
// https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.ActionFieldLayout
// https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.TextInputWidget
// https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.ButtonWidget
var inputTitreRecette = new OO.ui.TextInputWidget( {
    placeholder: 'Le titre de la recette'
} );
var buttonValiderTitre = new OO.ui.ButtonWidget( {
label: 'Validez le titre',
} );
var fieldtitre = new OO.ui.ActionFieldLayout(
inputTitreRecette,
buttonValiderTitre,
    {
        label: 'Entrez le titre de la recette puis validez le',
        align: 'top',
        help: 'Si une recette existe déjà sous ce titre, elle sera présentée pour modification'
    }
);
var buttonCreerRecette = new OO.ui.ButtonWidget( {
label: 'Créer la recette',
href: 'https://doc.wikimedia.org',
disabled: true
} );
// A ButtonSelectWidget that contains three ButtonOptionWidgets.
// Note dsg : title est le nom du modèle de page qui est appelé pour créer la recette. Se limiter à 1 mot,
// l'espace étant mal interpreté par mediawiki quand il décode l'URI. Ainsi j'ai corrigé
// "plat principal" en le remplaçant par "plat".
// C'est dans le Modèle:plat que référence sera faite à la Catégorie:plt principal
var option1 = new OO.ui.ButtonOptionWidget( {
        data: "1",
        label: 'Entrée',
        title: 'Entrée',
    } ),
    option2 = new OO.ui.ButtonOptionWidget( {
        data: 2,
        label: 'Plat',
        title: 'Plat'
    } ),
    option3 = new OO.ui.ButtonOptionWidget( {
        data: 3,
        label: 'Dessert',
        title: 'Dessert'
    } ),
    buttonSelect = new OO.ui.ButtonSelectWidget( {
        items: [ option1, option2, option3 ]
    } );
$( '.dsg_TitreNouvellePage' ).append(fieldtitre.$element );
$( '.dsg_creationRecette' ).append(buttonCreerRecette.$element );
$( '.dsg_ButtonChoixCategorie' ).append(buttonSelect.$element );
feuVertTitre = false;
feuVertCategorie = false;
buttonValiderTitre.on( 'click', function () {
titreProposed = inputTitreRecette.getValue();
if ( !inputTitreRecette.value) {
        //alert("input vide" );
        feuVertTitre = false;
        buttonCreerRecette.setDisabled(true);
    } else {
        //alert("titre recu "+titreProposed );
      feuVertTitre = true;
      if(feuVertTitre && feuVertCategorie)
        buttonCreerRecette.setDisabled(false);
        else buttonCreerRecette.setDisabled(true);
    }
});
buttonSelect.on("choose", function () {
categorieChoisie = buttonSelect.findSelectedItem( ).getTitle();
//alert (categorieChoisie);
//alert("titre recu "+titreProposed );
feuVertCategorie = true;
    if(feuVertTitre && feuVertCategorie)
        buttonCreerRecette.setDisabled(false);
    else buttonCreerRecette.setDisabled(true);
  });
buttonCreerRecette.on( 'click', function () {
//alert("FV categ "+feuVertCategorie);
//alert("feuVertTitre "+feuVertTitre);
if(feuVertTitre && feuVertCategorie) {
// On prévoit ici les deux modes d'appel des pages des mediawikis.
// Voir la documentation mediawiki sur les URL des sites qui dépendent
// du type de serveur et de procédure de chaque site
if(window.location.pathname == '/index.php'){
//alert('On est chez ovh');
lienAppelCreation = window.location.pathname + '?title=';
lienAppelCreation = lienAppelCreation +
encodeURI (titreProposed + "&action=edit&section=new&preload=Modèle:" + categorieChoisie);
}else{
//alert('On est en local');
lienAppelCreation = '/index.php/';
lienAppelCreation = lienAppelCreation + titreProposed +
encodeURI (  "?action=edit&section=new&preload=Modèle:" + categorieChoisie);
}
// Réinitialisation au cas où on utiliserait le bouton retour du navigateur
buttonCreerRecette.setDisabled(true);
inputTitreRecette.setValue(null);
// Création de la nouvelle page
window.location.href = lienAppelCreation;
}
});
});
//---------------------------------------------------------------------------
// 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
//---------------------------------------------------------------------------
// Non utilisée mais conservée ici au cas où
/*
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
*/
/*  Est maintenant dans mediawiki:Mobile.js
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 );
});
*/
//---------------------------------------------------------------------------
// Test de boutons zoom et zoom out d'une page
//---------------------------------------------------------------------------
/*
Voir
https://www.mediawiki.org/wiki/Gadget_kitchen
https://www.mediawiki.org/wiki/ChickTech_High_School_Kickoff_2017/Tasks
*/
/*
// toggled by toggle button. also determines which toggle button image to use
var useCustom = false;
// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default
var toggleImgs = [
'//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg',
'//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg'
];
var zoomInImg = '//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg';
var zoomOutImg = '//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg';
// create DOM elements
$('#firstHeading').append('<div id="zoomButtons">\
<img src="' + zoomInImg + '" alt="zoom in" onclick="zoom(1)">\
<img src="' + zoomOutImg + '" alt="zoom out" onclick="zoom(-1)">\
<img id="toggleButton" src="' + toggleImgs[+ useCustom] +
'" alt="toggle zoom" onclick="toggle()">&nbsp</div>');
$('#zoomButtons').css({'float': 'right'});
// find DOM elements used later
var $bodyContent = $('.mw-body-content');
var $toggleButton = $('#toggleButton');
// sizes[0] is default, sizes[1] is custom
var sizes = [parseFloat($('.mw-body-content').css('font-size'))];
// default custom zoom of 2
sizes[1] = sizes[0] + 2;
// the + converts bool to 0 or 1 to use as array index
function updateSize() {
$bodyContent.css({'font-size':(sizes[+ useCustom] + 'pt')});
}
function toggle() {
useCustom = !useCustom;
$toggleButton.attr('src',toggleImgs[+ useCustom]);
updateSize();
}
function zoom(dif) {
sizes[1] += dif;
if (useCustom) {
updateSize();
} else {
toggle();
}
}
//*/

Version actuelle datée du 8 janvier 2024 à 19:10


/*******************************************************************************
	 Javascript ...	pour test avant de passer en common pour tous		
	 http://www.mediawiki.org/w/index.php?...								
 ********************************************************************************/

	//alert ("Daniel:common.js");
	
//---------------------------------------------------------------------------
//	Rappels et notes
//---------------------------------------------------------------------------
/*
$(xxx) est une fonction de sélection de jquery. xxx est le critère de sélection. 
'div' pour avoir toutes les div du document
'.dsg_example-placeholder' pour avoir la div qui utilise cet id ou css
...
*/