Aller au contenu principal

Comment afficher une modale appartenant à un autre module/ressource dans Easy2Do ?

Dans Easy2Do, les modules/ressources sont cloisonnés. Ce qui fait que les modales d'un module ne sont pas accessibles depuis un autre module. Cependant, il est possible d'afficher une modale d'un autre module ou d'une autre ressource en utilisant le middleware d'E2D.

L'objectif de ce cookbook est d'expliquer comment utiliser le middleware d'E2D pour afficher une modale d'un autre module ou d'une autre ressource dans une application Easy2Do.

Code source complet

Le code complet (structure de répertoires, tests, configuration) est disponible dans le repo d’exemples Doing.

➡ Easy2Do : https://bitbucket.org/doingfr/doing-cookbooks-examples/src/main/e2d-middleware/easy2do/

Easy2Do : 1h Total : 1h

TL;DR

  • Savoir afficher une modale d'un autre module ou d'une autre ressource dans Easy2Do.
  • Savoir utiliser le middleware d'E2D pour faire le lien entre les modules/ressources.

Prérequis

ÉlémentVersion / Remarque
PHP8.4
E2D - Core2.18
E2D - Bdd3.0
E2D - Auth1.8

Utilisation du middleware d'E2D pour afficher une modale d'un autre module ou d'une autre ressource

Contexte

Nous avons deux modules : le module commande et le module utilisateur. Depuis la liste des commandes, nous voulons ouvrir la fiche de l'utilisateur associé.

Mise en place

Sur l'utilisateur associé à la commande, nous ajoutons une classe de bouton :

<a href="" class="sNomCompletUtilisateur btn_action action_utilisateur_btn_ouverture_edition_utilisateur variable_1_2345">Jean DUPONT</a>

Dans le module utilisateur, nous allons indiquer que lors de l'exécution de l'action, il est nécessaire de charger la vue de la modale d'édition de l'utilisateur. Pour cela, nous allons utiliser le middleware d'E2D. Dans le fichier module/utilisateur/config/conf.yml :

btn_ouverture_edition_utilisateur:
action:
...
callback:
...
middleware:
vChargeVueHTML:
aParams:
sId: calque_edition_utilisateur
sCible: calque

Nous voyons le bloc middleware qui indique que la méthode vChargeVueHTML va être appelée afin de récupérer (via un appel Ajax) la vue correspondant à la modale calque_edition_utilisateur et de l'injecter dans la div appropriée.