1 397
modifications
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 2 : | Ligne 2 : | ||
/* Penser à aligner Mobile.js et Common.js pour la version bureau */ | /* Penser à aligner Mobile.js et Common.js pour la version bureau */ | ||
alert ("Mobile.js"); | //alert ("Mobile.js"); | ||
//--------------------------------------------------------------------------- | //--------------------------------------------------------------------------- | ||
// | // Javascript nécessaire à la page de création d'une nouvelle recette | ||
// | // Testé ici sous connexion Daniel pour mise au point | ||
// | // | ||
// | // Version en exploitation : ce script doit être copié dans les deux pages | ||
// Mediawiki:Common.js et Mediawiki:Mobile.js | |||
//--------------------------------------------------------------------------- | //--------------------------------------------------------------------------- | ||
mw.loader.using('mediawiki.widgets').then( function (){ | |||
https:// | // See documentation at: | ||
https:// | // https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.ActionFieldLayout | ||
https:// | // https://doc.wikimedia.org/oojs-ui/master/js/#!/api/OO.ui.TextInputWidget | ||
https://doc.wikimedia.org/ | // 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; | |||
} | |||
}); | |||
}); | |||
/*******************************************************************************/ | /*******************************************************************************/ |