Utilisateur:Daniel/archives.js

De Lescatpat

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).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.

/*******************************************************************************
	 Javascript ...	backups des scripts en exploitation ou à conserver		
	 pour mémoire. Permet de limiter Utilisateur:Daniel/common.js au
	 développement de nouveaux scripts
								
 ********************************************************************************/

	alert ("Daniel archives.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
...
*/

//---------------------------------------------------------------------------
//	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();
	}
}

//*/