|
|
Ligne 6 : |
Ligne 6 : |
|
| |
|
| //--------------------------------------------------------------------------- | | //--------------------------------------------------------------------------- |
| // Javascript nécessaire à la page de création d'une nouvelle recette | | // Javascript nécessaire en exploitation |
| // A Tester sous connexion Daniel pour mise au point du script dans la | | // Version en exploitation : cette importation doit être dans les deux pages |
| | // Mediawiki:Common.js et Mediawiki:Mobile.js qui sont mutuellement exclusives |
| | |
| | // Pour les tests utiliser la connexion Daniel pour mise au point du script dans la |
| // page Utilisateur:Daniel/common.js | | // page Utilisateur:Daniel/common.js |
| // Version en exploitation : ce script doit être dans les deux pages
| |
| // Mediawiki:Common.js et Mediawiki:Mobile.js qui sont mutuellement exclusive
| |
| //--------------------------------------------------------------------------- | | //--------------------------------------------------------------------------- |
|
| |
|
| | importScript('MediaWiki:Catpat.js'); |
|
| |
|
| if(mw.config.get("wgTitle") == "Créer une nouvelle recette"){
| |
|
| |
|
| //document.getElementById("dsg_NonEditeur").style.display = 'none';
| |
|
| |
| if($.inArray('Editeur', mw.config.get("wgUserGroups")) !== -1){
| |
| document.getElementById("dsg_OuiEditeur").style.display = 'inline-block';
| |
| }else{
| |
| document.getElementById("dsg_NonEditeur").style.display = 'inline-block';
| |
| }
| |
|
| |
| 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§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;
| |
| }
| |
|
| |
| });
| |
|
| |
| });
| |
| }
| |
|
| |
|
| /*******************************************************************************/ | | /*******************************************************************************/ |
| /* Javascript pour afficher le statut de l'utilisateur actuel */ | | // Les scripts suivants sont spécifiques de la mise en page en version bureau |
| /* 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 (voir if... plus bas) | | /* Javascript applicable à la catégorie des recettes (voir if... plus bas) |
| /* Javascript pour modifier la navigation Outils */ | | /* Javascript pour modifier la navigation Outils */ |
Ligne 257 : |
Ligne 103 : |
| jQuery( CustomizeModificationsOfSidebar ); | | jQuery( CustomizeModificationsOfSidebar ); |
| } | | } |
|
| |
| /*******************************************************************************/
| |
| /* 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();
| |
|
| |
|
| |
| });
| |
|
| |
| //}
| |
|
| |
|
|
| |
|
Ligne 570 : |
Ligne 314 : |
|
| |
|
| }; | | }; |
|
| |
| /* A del en version > 1.33
| |
| /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar . . . * /
| |
| if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
| |
| mw.loader.using( 'user.options', function () {
| |
| // This can be the string "0" if the user disabled the preference ([[bugzilla:52542#c3]])
| |
| if ( mw.user.options.get( 'usebetatoolbar' ) == 1 && mw.user.options.get( 'showtoolbar' ) == 1 ) {
| |
| $.when(
| |
| mw.loader.using( 'ext.wikiEditor.toolbar' ),
| |
| $.ready
| |
| ).then( customizeToolbar );
| |
| }
| |
| } );
| |
| }
| |
| */
| |
|
| |
|
| /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */ | | /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */ |