Utilisateur:Daniel/common.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.
/*******************************************************************************
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
...
*/
//---------------------------------------------------------------------------
// A documenter
// https://www.mediawiki.org/wiki/OOUI/OOjs_primer
//---------------------------------------------------------------------------
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: 'Valider le titre',
} );
var fieldtitre = new OO.ui.ActionFieldLayout(
inputTitreRecette,
buttonValiderTitre,
{
label: 'Entrez le nom de la recette puis validez le',
align: 'top',
help: 'This is help text'
}
);
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. 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_TestButton' ).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) {
lienAppelCreation = encodeURI (titreProposed + "?action=edit§ion=new&preload=Modèle:" + categorieChoisie);
alert (lienAppelCreation);
alert (window.location);
// 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
//---------------------------------------------------------------------------
/*
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 );
});
*/
//---------------------------------------------------------------------------
// A documenter
//---------------------------------------------------------------------------
/*
mw.loader.using('mediawiki.widgets').then( function (){
// A ButtonInputWidget rendered as an HTML button, the default.
var button = new OO.ui.ButtonInputWidget( {
label: 'Input button',
icon: 'check',
value: 'check'
} );
$( '#mw-content-text' ).append( button.$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()"> </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();
}
}
//*/