Bonjour,
dans mon formulaire de création de message, j’ai attribut média.
quand je change de média, je veux afficher un champs contenu différent : texte ou texte riche.
pour cela, j’ai 2 attributs : aleMsgTxt et aleMsgTxtRiche que je veux afficher ou cacher en fonction du média sélectionné. le média est un objet lié qui a un attribut aleParamMediaTypeContenu qui contient TEXTE ou TEXTE_RICHE selon ce qui a été défini par l’utilisateur.
j’ai donc écrit un hook :
p.form.onload = function(ctn, obj) {
// Quand le média change => on vide les champs paramMsg et aleMsgTxt et aleMsgTxtRiche
var media = ui.getUIField(ctn, obj, "aleMsgParamMedia_fk");
var msgType = ui.getUIField(ctn, obj, "aleMsgParamMsg_fk");
var msgTxt=ui.getUIField(ctn, obj, "aleMsgTxt");
var msgTxtRiche=ui.getUIField(ctn, obj, "aleMsgTxtRiche");
media.ui.change(function() {
console.log("media.ui.val :"+media.ui.val());
var typeContenu=ui.getUIField(ctn,obj,"aleMsgParamMedia_fk.aleParamMediaTypeContenu");
if(ui.getUIField(ctn,obj,"aleMsgParamMedia_fk.aleParamMediaTypeContenu").ui.val()=="TEXTE"){
ui.getUIField(ctn, obj, "aleMsgTxt").ui.visible(Simplicite.VIS_FORM);
msgTxtRiche.ui.visible(Simplicite.VIS_HIDDEN);
}else{
ui.getUIField(ctn, obj, "aleMsgTxt").ui.visible(Simplicite.VIS_HIDDEN);
msgTxtRiche.ui.visible(Simplicite.VIS_FORM);
}
});
Mon problème : quand je change ma sélection de média, je ne récupère pas la bonne valeur de aleMsgParamMedia_fk.aleParamMediaTypeContenu. il y a un clique de décalage.
Exemple : pour un sms c’est du texte, pour le mail c’est du texte riche.
quand je change sms en mail => aleMsgParamMedia_fk.aleParamMediaTypeContenu=TEXTE
quand je rechange mail en sms => aleMsgParamMedia_fk.aleParamMediaTypeContenu=TEXTE_RICHE
il faut sélectionner 2 fois de suite le même média pour avoir le bon effet …
ma version :