Aller au contenu

« MediaWiki:Catpat.js » : différence entre les versions

aucun résumé des modifications
 
Aucun résumé des modifications
Ligne 21 : Ligne 21 :
if(mw.config.get("wgTitle") == "Créer une nouvelle recette"){
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){
if($.inArray('Editeur', mw.config.get("wgUserGroups")) !== -1){
document.getElementById("dsg_OuiEditeur").style.display = 'inline-block';
document.getElementById("dsg_OuiEditeur").style.display = 'inline-block';
Ligne 35 : Ligne 33 :
// https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.TextInputWidget
// https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.TextInputWidget
// https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.ButtonWidget
// 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',
// Préparation du formulaire présenté dans la page "Créer une nouvelle recette"
} );
// On utilise ici des widgets mediawiki. Voir
// https://www.mediawiki.org/wiki/OOUI/Widgets/Selects_and_Options
// https://www.mediawiki.org/wiki/OOUI/Using_OOUI_in_MediaWiki
// https://doc.wikimedia.org/oojs-ui/master/demos/
// ?page=widgets&theme=wikimediaui&direction=ltr&platform=mobile#ButtonWidget-normal
//---------------------------------------------------------------------------
 
// Zone titre de la page à créer (nom de la recette)
var inputTitreRecette = new OO.ui.TextInputWidget( {
    placeholder: 'Le titre de la recette'
} );
var fieldtitre = new OO.ui.ActionFieldLayout(
var buttonValiderTitre = new OO.ui.ButtonWidget( {
inputTitreRecette,
label: 'Valider le titre',
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 fieldtitre = new OO.ui.ActionFieldLayout(
var buttonCreerRecette = new OO.ui.ButtonWidget( {
inputTitreRecette,
label: 'Créer la recette',
buttonValiderTitre,
href: 'https://doc.wikimedia.org',
    {
disabled: true
        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'
    }
);
 
// Zone choix de la catégorie
// A ButtonSelectWidget that contains three ButtonOptionWidgets.
 
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 principal'
    } ),
    option3 = new OO.ui.ButtonOptionWidget( {
        data: 3,
        label: 'Dessert',
        title: 'Dessert'
    } ),
    buttonSelect = new OO.ui.ButtonSelectWidget( {
        items: [ option1, option2, option3 ]
    } );
 
// Zone confirmer tableau ingrédients
var avecIngredients = new OO.ui.CheckboxInputWidget( {
selected: true
} );
fieldIngredients = new OO.ui.FieldLayout(
avecIngredients, {
align: 'inline',
label: 'Décocher si vous ne voulez pas le tableau des ingrédients',
help: 'Vous pourrez toujours l\'ajouter ultérieurement'
} );
 
// Zone finale : préparer et préremplir la nouvelle page
// A ButtonSelectWidget that contains three ButtonOptionWidgets.
var buttonCreerRecette = new OO.ui.ButtonWidget( {
// Note dsg : title est le nom du modèle de page qui est appelé pour créer la recette. Se limiter à 1 mot,
label: 'Créer la recette',
// l'espace étant mal interpreté par mediawiki quand il décode l'URI. Ainsi j'ai corrigé
href: 'https://doc.wikimedia.org',
// "plat principal" en le remplaçant par "plat".
disabled: true
// C'est dans le Modèle:plat que référence sera faite à la Catégorie:plt principal
} );
 
 
//---------------------------------------------------------------------------
// Installation des zones widget dans la page "Créer une nouvelle recette"
//---------------------------------------------------------------------------
 
$( '.dsg_TitreNouvellePage' ).append(fieldtitre.$element );
$( '.dsg_creationRecette' ).append(buttonCreerRecette.$element );
$( '.dsg_ButtonChoixCategorie' ).append(buttonSelect.$element );
$( '.dsg_Demande_TableauIngredients' ).append(fieldIngredients.$element );
 
//---------------------------------------------------------------------------
// Mise en oeuvre sur le poste client des actions à lancer
// pour la présentation de la fiche d'édition de la nouvelle recette
// avec préchargement selon Modèle:Recette
//---------------------------------------------------------------------------
 
feuVertTitre = false;
feuVertCategorie = false;
// A priori le tableau des ingredients est demandé par défaut
// (voir ci-dessus le paramètre selected de avecIngredients)
mettreTableau = "in-line";
 
buttonValiderTitre.on( 'click', function () {
titreProposed = inputTitreRecette.getValue();
var option1 = new OO.ui.ButtonOptionWidget( {
if ( !inputTitreRecette.value) {
        data: "1",
        //alert("input vide" );
        label: 'Entrée',
        feuVertTitre = false;
        title: 'Entrée',
        buttonCreerRecette.setDisabled(true);
    } ),
    } else {
    option2 = new OO.ui.ButtonOptionWidget( {
        //alert("titre recu "+titreProposed );
        data: 2,
      feuVertTitre = true;
        label: 'Plat',
      if(feuVertTitre && feuVertCategorie)
        title: 'Plat'
        buttonCreerRecette.setDisabled(false);
    } ),
        else buttonCreerRecette.setDisabled(true);
    option3 = new OO.ui.ButtonOptionWidget( {
    }
        data: 3,
 
        label: 'Dessert',
});
        title: 'Dessert'
 
    } ),
buttonSelect.on("choose", function () {
    buttonSelect = new OO.ui.ButtonSelectWidget( {
categorieChoisie = buttonSelect.findSelectedItem( ).getTitle();
        items: [ option1, option2, option3 ]
//alert (categorieChoisie);
    } );
//alert("titre recu "+titreProposed );
feuVertCategorie = true;
$( '.dsg_TitreNouvellePage' ).append(fieldtitre.$element );
    if(feuVertTitre && feuVertCategorie)
$( '.dsg_creationRecette' ).append(buttonCreerRecette.$element );
        buttonCreerRecette.setDisabled(false);
$( '.dsg_ButtonChoixCategorie' ).append(buttonSelect.$element );
    else buttonCreerRecette.setDisabled(true);
  });
feuVertTitre = false;
 
feuVertCategorie = false;
avecIngredients.on( 'change', function () {
if(avecIngredients.isSelected()){
buttonValiderTitre.on( 'click', function () {
mettreTableau = "inline-block";
titreProposed = inputTitreRecette.getValue();
//alert("selected") ;
}
if ( !inputTitreRecette.value) {
else {
        //alert("input vide" );
//alert("non selected");
        feuVertTitre = false;
mettreTableau = "none";
        buttonCreerRecette.setDisabled(true);
}
    } else {
        //alert("titre recu "+titreProposed );
      feuVertTitre = true;
      if(feuVertTitre && feuVertCategorie)
        buttonCreerRecette.setDisabled(false);
        else buttonCreerRecette.setDisabled(true);
    }
});
});
buttonSelect.on("choose", function () {
buttonCreerRecette.on( 'click', function () {
categorieChoisie = buttonSelect.findSelectedItem( ).getTitle();
//alert("FV categ "+feuVertCategorie);
//alert (categorieChoisie);
//alert("feuVertTitre "+feuVertTitre);
//alert("titre recu "+titreProposed );
feuVertCategorie = true;
    if(feuVertTitre && feuVertCategorie)
        buttonCreerRecette.setDisabled(false);
    else buttonCreerRecette.setDisabled(true);
  });
buttonCreerRecette.on( 'click', function () {
if(feuVertTitre && feuVertCategorie) {
//alert("FV categ "+feuVertCategorie);
 
//alert("feuVertTitre "+feuVertTitre);
suiteDuLien = "action=edit&section=new&preload=Modèle:Recette";
suiteDuLien = suiteDuLien + "&preloadtitle=Titre d'un premier §";
suiteDuLien = suiteDuLien + "&preloadparams[]=" + categorieChoisie;
suiteDuLien = suiteDuLien + "&preloadparams[]=" + mettreTableau;
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
// On prévoit ici les deux modes d'appel des pages des mediawikis.
// du type de serveur et de procédure de chaque site
// 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');
if(window.location.pathname == '/index.php'){
lienAppelCreation = window.location.pathname + '?title=';
//alert('On est chez ovh');
lienAppelCreation = lienAppelCreation + titreProposed + "&";
lienAppelCreation = window.location.pathname + '?title=';
lienAppelCreation = lienAppelCreation + encodeURI(suiteDuLien);
lienAppelCreation = lienAppelCreation + titreProposed;
suiteDuLien = "&action=edit&section=new&preload=Modèle:" + categorieChoisie;
}else{
suiteDuLien = suiteDuLien + "&preloadtitle=Début de création";
//alert('On est en local');
suiteDuLien = suiteDuLien + "&preloadparams[]=" + categorieChoisie;
lienAppelCreation = '/index.php/';
suiteDuLien = suiteDuLien + "&preloadparams[]=Titre de paragraphe";
lienAppelCreation = lienAppelCreation + titreProposed + "?";
//encodeURI (titreProposed + "&action=edit&section=new&preload=Modèle:" + categorieChoisie );
lienAppelCreation = lienAppelCreation + encodeURI(suiteDuLien);
//encodeURI (titreProposed + "&action=edit&section=new&preload=Modèle:" + categorieChoisie + "&preloadtitle=Titre de paragraphe");
//encodeURI ("&action=edit&section=new&preload=Modèle:" + categorieChoisie)
//+ encodeURI ("&preloadparams[]=Titre de paragraphe");
lienAppelCreation = lienAppelCreation + encodeURI(suiteDuLien);
}else{
//alert('On est en local');
lienAppelCreation = '/index.php/';
lienAppelCreation = lienAppelCreation + titreProposed;
suiteDuLien = "?action=edit&section=new&preload=Modèle:" + categorieChoisie;
suiteDuLien = suiteDuLien + "&preloadtitle=Début de création";
suiteDuLien = suiteDuLien + "&preloadparams[]=" + categorieChoisie;
suiteDuLien = suiteDuLien + "&preloadparams[]=Titre de paragraphe";
lienAppelCreation = lienAppelCreation + encodeURI(suiteDuLien);
//encodeURI (  "?action=edit&section=new&preload=Modèle:" + categorieChoisie);
//encodeURI (  "?action=edit&section=new&preload=Modèle:" + categorieChoisie + "&preloadtitle=Titre de paragraphe");
// encodeURI (  "?action=edit&section=new&preload=Modèle:" + categorieChoisie + "&preloadparams[]]=Titre de paragraphe");
}
// 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;
}
}
 
});
// 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;
}
 
});
});
});