JaliosXperience
fr en
Path > Home > Forums > French Forum
Link

ControllerStatus et utilisateurs JCMS 5.7.3

Sébastien Delamotte - on 3/2/10 at 6:04 PM

Bonjour,

Dans ma webapp j'utilise un datacontrolleur avec la méthode checkwrite qui renvoie un controllerStatus pour valider ou non mon enregistrement.

Lorsque mon enregistrement n'est pas validé l'utilisateur récupère un message ini tialisé dans le controllerStatus et l'enregistrement est bloqué.

J'aimerais savoir s'il était possible d'avertir l'utilisateur par un message, mais avec la possibilité qu'il puisse valider qd même l'opération d'enregistrement.(Opération non bloquante)

Exemple:

le pb est le suivant voulez vous vraiment effectuer cette opération?

Cordialement.

Bruno Courtiau - on 3/4/10 at 3:59 PM

Bonjour,

vous pourriez ajouter dans votre interface un lien ou un bouton "le pb est le suivant voulez vous vraiment effectuer cette opération" dont l'url embarquerait un paramètre ou un attribut que vous récupéreriez dans votre checkWrite et qui vous permettrait du coup de savoir si vous devez empêcher l'opération ou non.

Sébastien Delamotte - on 3/5/10 at 9:49 AM

Bonjour,

Merci pour la réponse,

Il est vrai que j'avais pas complètement décrit ce que je cherchait à faire.

Le pb c'est que je cherche à limitter le nombre de copie de travail d'une publication.

Exemple si une copie de travail existe déja pour cette publication je veut renvoyer un message qui en informe l'utilisateur en ajoutant sa reférence.Ensuite l'utilisateur peut confirmer ou non la création de la copie de travail.

Si l'utilisateur utilise le menu contextuel en back office pour déclencher une copie de travail ,ce bouton sera bypassé.

Existe t'il un moyen de répondre a ce besoin?

Bruno Courtiau - on 3/5/10 at 12:03 PM

Tu as la méthode getWorkCopySet() sur une publication qui te permet de savoir si ta publication a des copies de travail. Par conséquent tu peux retourner comme message facilement le fait que la publication a une copie de travail et proposer le fonctionnement du lien tel qu'indiqué plus haut dans cette discussion.

Sébastien Delamotte - on 3/5/10 at 12:11 PM

Pour la méthote getWorkCopySet() et la manière de vérifier les copies de travail j'ai pas de soucis.

Mais je ne comprend pas bien la solution du bouton.Ce bouton serait un lien qui déclenche la copie de travail avec un paramètre qui permet de forcer ou non la création dans le checkwrite.

Mais ou je le met ce bouton? En back office en front office?

Sébastien Delamotte - on 3/5/10 at 3:35 PM

Ok j'ai trouvé pour le bouton.

Je vais injecter du code HTML dans le message du controllerStatus. Mais parcontre que dois-je appeler pour déclencher une copie de travail?

Une jsp? Une fonction javascript?

Sébastien Delamotte - on 3/5/10 at 5:27 PM

J'ai un autre pb c'est que je ne voit pas trop comment récupérer le paramètre dans mon datacontrolleur.

Sébastien Delamotte - on 3/9/10 at 5:02 PM

Merci Bruno pour ton aide.

Voici la solution que j'ai validée et mise en place.

Dans mon DataController j’ai créé la méthode checkWrite qui permet de vérifier que je suis bien dans le cas d’une copie de travail.

pub.isWorkCopy()

Ensuite je récupère ma publication d’origine :

pub.getMainInstance();

A partir de la publication d’origine je récupère un set de copie de travail.

pubOrigine.getWorkCopySet();

Si mon Set est > 0

Je renvoie un ControllerStatus en injectant du code html avec un message + le lien ou bouton qui pointe sur une JSP dont le code génère une copie de travail

Publication maPub=channel.getPublication(pubId); if(loggedMember.canCreateWorkCopy(maPub)){ Publication maWorkCopy=maPub.createWorkCopy(loggedMember); } Et dont l’url contient 2 paramètres : Id de la publication d’origine et confirm=true pour forcer la création de la copie de travail.

Le paramètre confirm=true se récupère dans le checkwrite pour forcer la création de la copie de travail avec la méthode suivante :

request=Channel.getChannel().getCurrentJcmsContext().getRequest();

Login   Home   fr en
JALIOS SA - SIREN 440 126 035