1 397
modifications
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 13 : | Ligne 13 : | ||
//--------------------------------------------------------------------------- | //--------------------------------------------------------------------------- | ||
mw. | if(mw.config.get("wgTitle") == "Créer une nouvelle recette"){ | ||
// | //document.getElementById("dsg_NonEditeur").style.display = 'none'; | ||
var inputTitreRecette = new OO.ui.TextInputWidget( { | 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 | |||
if ( !inputTitreRecette.value) { | 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); | |||
}); | |||
if(feuVertTitre && feuVertCategorie) { | 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; | |||
} | } | ||
}); | |||
}); | |||
} | |||
} | |||
/*******************************************************************************/ | /*******************************************************************************/ |