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

Apparition d'une fenêtre modale lors de la soumission d'un formuliare.

Richard Naoufal - on 8/20/10 at 3:49 PM

Bonjour,

Voici mon besoin : Je souhaite mettre en place un traitement (connexion a un service web) lors du passage d'un publication d'une étape de workflow à une autre. Ce traitement doit pouvoir, lorsque c'est nécessaire, interrompre le traitement du formulaire (écriture dans le store) pour afficher une fenêtre modale avec un message et des options (boutons) du type :

1/ Revenir à la page actuelle (il s'agit du formulaire back office lorsque l'on édite à partir du du back office ou du menu contextuel de la publication en front office où l'on peut modifier l'état de la publication dans son workflow). 2/ Revenir à la page précédente lorsqu'on édite la publication à partir du back office (annuler l'édition de la publication). 3/ Valider la soumission du formulaire (la fenêtre modale remonte un message d'erreur mais l'utilisateur décide de poursuivre).

La mise en place d'un datacontrolleur est pratique pour faire le traitement avant l'écriture dans le store (on dispose de la publication avant et après le traitement), on peut redirigé l'utilisateur vers le formulaire back office avec un message d'erreur mais comment faire afficher une pop up avec les 3 options (boutons) ?

entre autre : est ce qu'il est possible de faire apparaitre une lightbox à partir d'un datacontrolleur ?

Merci beaucoup pour votre aide.

Guillaume Jacobelli - on 8/24/10 at 11:48 AM

Bonjour,

Il est impossible de faire apparaitre une modale directement à partir d'un dataController.
Par contre vous avez la possibilité de passer une variable (dans la sessions par exemple), vous permettant de savoir si vous devez afficher cette lightBox dans la page qui suit la validation du formulaire (au choix, une portlet, une catégorie, un contenu, le formulaire, etc).

Cordialement.

Richard Naoufal - on 8/25/10 at 11:17 AM

L'apparition et le contenu de la ligntbox dépend d'un traitement qui doit être fait lors de la soumission du formulaire. La lightBox s'ouvre (en fonction du traitement) alors que le formulaire est toujours affiché.

La lightBox offre la possibilité de : 1 Revenir sur le formulaire. 2 Poursuivre la soumission du formulaire. 3 Annuler l'édition de la publication en question.

Merci pour vos réponses.

Guillaume Jacobelli - on 8/26/10 at 9:44 AM

Bonjour,

Je pense que la réponse apportée plus haut devrait répondre à votre question, afin d'y apporter plus de détails, pouvez vous me préciser s'il s'agit d'un type de formulaire ou d'un type de contenu ?

Bonne journée

Richard Naoufal - on 8/26/10 at 10:05 AM

Il s'agit du formulaire d'édition d'un type de contenu : "editMonTypeDeContenu.jsp"

Richard Naoufal - on 8/26/10 at 3:55 PM

J'ai une question a vous posez :

Dans un Datacontroller on a accès a un objet context. Je souhaite transmettre un flag à mon Datacontroller à l'aide de ce "context". Comment est ce que je peux faire ?

Merci pour vos réponses c'est un peu urgent.

Guillaume Jacobelli - on 8/26/10 at 4:13 PM

OK alors voici la procédure détaillée :

Il faut placer le traitement (connexion à un service web) dans le checkWrite() d'un datacontroller.
Lors de la soumission du formulaire, le checkWrite est appelé. Si la lightBox doit s'afficher, le checkWrite renvoie un ControllerStatus avec un message d'erreur.
La jsp "editMonTypeDeContenu.jsp" est alors appelée à nouveau et c'est ici qu'il faut développer l'ouverture de la lightBox:
Le comportement standard de jcms serait d'afficher un message d'erreur grâce à "doMessageBox.jsp" qui est inclue via doEditPubHeader.jsp.
L'idée est de developper un code permettant de ne pas afficher le message d'erreur via doMessageBox.jsp mais plutôt d'afficher la lightBox. Donc pour résumer :

  • Developper le traitement dans le checkWrite()
  • Retourner un message d'erreur via le controller Status
  • Copier coller "doEditPubHeader.jsp" pour en faire un "doEditPubHeaderCustom.jsp" et l'inclure à la place du standard dans "editMonTypeDeContenu.jsp"
  • Dans "doEditPubHeaderCustom.jsp" ne pas inclure "doMeesageBox.jsp" en cas de message d'erreur "spéciale" (que vous decidez)
  • Afficher la lightBox.

Richard Naoufal - on 8/26/10 at 4:50 PM

Merci pour votre réponse, comment faire pour avoir un comportement similaire lorsque l'utilisateur passe (à partir du menu contextuel d'une publication) la publication d'une étape de workflow à une autre (affichage de popup également).

Merci.

Guillaume Jacobelli - on 8/26/10 at 5:21 PM

Si c'est dans le back Office, vous pouvez essayer de place le code d'affichage de la lightBox dans le doMeesageBox.jsp directement.
Si c'est en front office ca devient plus compliqué !

Richard Naoufal - on 8/26/10 at 5:37 PM

C'est dans le front office !

Login   Home   fr en
JALIOS SA - SIREN 440 126 035