|
|
Ligne 17 : |
Ligne 17 : |
| */ | | */ |
|
| |
|
| //--------------------------------------------------------------------------- | | /*******************************************************************************/ |
| // Javascript nécessaire à la page de création d'une nouvelle recette | | /* Javascript pour afficher le statut de l'utilisateur actuel */ |
| // Testé ici sous connexion Daniel pour mise au point | | /* sur la page "lescatpat:Utilisateurs" ou d'autres à définir */ |
| // | | /********************************************************************************/ |
| // Version en exploitation : ce script doit être copié dans les deux pages
| |
| // Mediawiki:Common.js et Mediawiki:Mobile.js | |
| //--------------------------------------------------------------------------- | |
|
| |
|
| /*
| | dsg_wgTitle = mw.config.get("wgTitle"); |
| mw.loader.using('mediawiki.widgets').then( function (){ | | dsg_wgCanonicalNamespace = mw.config.get("wgCanonicalNamespace"); |
| | dsg_wgUserGroups = mw.config.get("wgUserGroups"); |
|
| |
|
| // See documentation at:
| | if(dsg_wgTitle == "Utilisateurs" & dsg_wgCanonicalNamespace == "Project"){ |
| // https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.ActionFieldLayout
| | if($.inArray('sysop', dsg_wgUserGroups) !== -1){ |
| // https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.TextInputWidget
| | statut = 'administrateur'; |
| // https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.ButtonWidget
| | }else if($.inArray('Editeur', dsg_wgUserGroups) !== -1){ |
|
| | statut = 'éditeur'; |
| var inputTitreRecette = new OO.ui.TextInputWidget( {
| | }else if($.inArray('user', dsg_wgUserGroups) !== -1){ |
| placeholder: 'Le titre de la recette'
| | statut = 'utilisateur connecté'; |
| } );
| | }else{ |
| | | statut = 'utilisateur non connecté'; |
| 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§ion=new&preload=Modèle:" + categorieChoisie);
| |
| }else{
| |
| //alert('On est en local');
| |
| lienAppelCreation = '/index.php/';
| |
| lienAppelCreation = lienAppelCreation + titreProposed +
| |
| encodeURI ( "?action=edit§ion=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()"> </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();
| |
| } | | } |
| | //alert(statut); |
| | $(".monstatut").text(statut); |
| } | | } |
| | | //alert("22"); |
| //*/ | |