Utilisation des points d'extensions des vues en front office (frontAddOn)
Un frontAddOn est un point d'extension présent dans une jsp. Il permet d'injecter un affichage sans avoir à impacter la jsp mère.
Par exemple: l'extension panier injecte un bouton d'ajout dans le panier sur une fiche de K-Sup qui ne connaît pas panier.
Une JSP peut contenir plusieurs frontAddOn pour proposer des points d'extensions à différents endroits de la vue. Un frontAddOn est décrit par un identifiant permettant de le cibler (pointName).
Utilisation des frontAddOn
Un FrontAddon est toujours contextuel à un contexte. Le contexte est le viewModel courant. Cela permet de gérer des FrontAddon au niveau des item de liste.
Injecter une vue spécifique dans un frontAddOn
En utilisant un frontAddOn, il est possible d'injecter une vue dans une autre JSP, sans impacter cette dernière.
Identifier un frontAddOn
Un frontAddOn possède un paramètre obligatoire et peut avoir des paramètres optionnels.
| Paramètre obligatoire | Description | Format de donnée | Exemple de valeur |
|---|---|---|---|
| pointName | Identifiant permettant de cibler le point d'extension. | Chaine de caractère | applicationcontent-tools |
| context | Le contexte dans lequel recherche l'addon pour le pointName | IViewModel | ${applicationViewModel} |
Un frontAddOn peut mettre à dispositions un ou plusieurs paramètres, qui seront alors utilisables par les vues injectées.
Exemple: La JSP ficheApplication propose un point d'extension, tout en mettant à disposition son modèle :
<kore:frontAddOn pointName="applicationcontent-tools" context="${applicationViewModel}"/>
Injecter une vue
La vue injectée est un viewModel standard de refronte. C'est donc le résultat d'un viewPreparer.
<bean id="acmeAddon1" class="com.kosmos.ViewPreparer">
<property name="type" value="addon1"/>
<property name="view" value="/extensions/acme/WEB-INF/jsp/addon1.jsp"/>
<property name="pointNames">
<list>
<value>emplacement13</value>
<value>emplacement42</value>
</list>
</property>
</bean>
Pour injecter une vue dans un frontAddon, il suffit abonner son preparer aux addons de la vue soit directement dans la déclaration, soit à l'aide d'un ListeToAddBean.
<bean id="acmeViewPreparer" class="com.kosmos.AcmeViewPreparer">
<property name="type" value="acmeType"/>
<property name="view" value="/extensions/acme/WEB-INF/jsp/acme.jsp"/>
<property name="expectedViewTypes">
<list>
<value>expected1</value>
<value>...</value>
</list>
</property>
<property name="addons">
<list>
<value>addon1</value>
<value>...</value>
</list>
</property>
</bean>
Ajouter un addOn dans une jsp
Le paramètre pointName est l'identifiant du point d'extension.
Pour proposer un point d'extension dans une JSP, il faut utiliser le tag frontAddOn:
...
<div class="app-header__links">
<kore:frontAddOn pointName="emplacement13" context="${mainViewModel}"/>
...
</div>
...