1 397
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"){ | ||
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 | ||
//--------------------------------------------------------------------------- | |||
// 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 buttonValiderTitre = new OO.ui.ButtonWidget( { | |||
label: 'Valider 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' | |||
} | |||
); | |||
// 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 | |||
// | var buttonCreerRecette = new OO.ui.ButtonWidget( { | ||
// | label: 'Créer la recette', | ||
href: 'https://doc.wikimedia.org', | |||
disabled: true | |||
} ); | |||
//--------------------------------------------------------------------------- | |||
// 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(); | |||
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); | |||
}); | |||
avecIngredients.on( 'change', function () { | |||
if(avecIngredients.isSelected()){ | |||
mettreTableau = "inline-block"; | |||
//alert("selected") ; | |||
} | |||
else { | |||
//alert("non selected"); | |||
mettreTableau = "none"; | |||
} | |||
}); | }); | ||
buttonCreerRecette.on( 'click', function () { | |||
//alert("FV categ "+feuVertCategorie); | |||
//alert("feuVertTitre "+feuVertTitre); | |||
if(feuVertTitre && feuVertCategorie) { | |||
suiteDuLien = "action=edit§ion=new&preload=Modèle:Recette"; | |||
suiteDuLien = suiteDuLien + "&preloadtitle=Titre d'un premier §"; | |||
suiteDuLien = suiteDuLien + "&preloadparams[]=" + categorieChoisie; | |||
suiteDuLien = suiteDuLien + "&preloadparams[]=" + mettreTableau; | |||
// 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 + titreProposed + "&"; | |||
lienAppelCreation = lienAppelCreation + encodeURI(suiteDuLien); | |||
}else{ | |||
//alert('On est en local'); | |||
lienAppelCreation = '/index.php/'; | |||
lienAppelCreation = lienAppelCreation + titreProposed + "?"; | |||
lienAppelCreation = lienAppelCreation + encodeURI(suiteDuLien); | |||
} | } | ||
}); | // 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; | |||
} | |||
}); | |||
}); | }); |