Pré-requis

Si vous utilisez les notifications par défaut, les messages sont envoyés en anglais.

Pour personnaliser les messages aux utilisateurs, il faut procéder comme suit :

Créez un répertoire templates dans templates/custom. C'est dans ce répertoire que vous placerez ensuite tous les fichiers .ftl qui constituent le corps des messages envoyés.

A titre d'exemple voici le fichier esupNotificationCreateDoc.ftl pour l'envoi de notification à la création d'un document :

<HTML>
<BODY>
<P>Un nouveau document est disponible ce jour, le ${dateTime?datetime?string("dd/MM/yyyy - HH:mm")}.<BR>
Il est consultable ici : <a href="${docUrl}">${htmlEscape(docTitle)}</a></P>
</BODY>
</HTML>

Modifier les notifications

Il convient maintenant d'éditer le fichier templates/custom/config/esup-notification-config.xml qui va surcharger les fichiers de configuration par défaut. Ce fichier se compose de deux points d'extensions : un pour définir nos notifications, le deuxième pour définir les templates ftl liés à ces notifications.

Pour l'instant, Nuxeo ne sait pas gérer deux définitions de notifications utilisant les mêmes événements (ie création, modification ...). Il convient donc, pour que nos personnalisations soient prises en compte de désactiver celles par défaut. Voici un extrait du fichier esup-notification-config.xml qui personnalise les notifications sur les créations et les modifications de documents dans les espaces de travail :

<component name="org.esup.notification.service.NotificationContrib">

<require>org.nuxeo.ecm.platform.notification.service.NotificationContrib</require>
<require>org.nuxeo.ecm.platform.comment.workflow.notification.service.NotificationContrib</require>

<extension target="org.nuxeo.ecm.platform.ec.notification.service.NotificationService" point="notifications">
<!-- first disable defaults notifications => no merge -->
    <notification name="Modification" channel="email" enabled="false">
      <event name="documentModified"/>
    </notification>
    <notification name="Creation" channel="email" enabled="false">
      <event name="documentCreated"/>
    </notification>    

<!-- then declare ours notifications -->

    <notification   name="Esup Modification"
                    channel="email"
                    enabled="true"     
                    availableIn="Workspace"
                    autoSubscribed="false"
                    template="modif"
                    subject="Modification du document ${docTitle}"
                    label="label.nuxeo.notifications.modif">
                <event name="documentModified"/>
    </notification>
        
    <notification   name="Esup Creation"
                    channel="email"
                    enabled="true"
                    availableIn="Workspace"
                    autoSubscribed="false"
                    template="create"
                    subject="Nouveau document"
                    label="label.nuxeo.notifications.create">
        <event name="documentCreated"/>
    </notification>
</extension>
    
<!-- define template files -->
<extension target="org.nuxeo.ecm.platform.ec.notification.service.NotificationService" point="templates">
    <template name="modif" src="templates/esupNotificationModifDoc.ftl" />
    <template name="create" src="templates/esupNotificationCreateDoc.ftl" /> 
</extension>
</component>

Cette configuration va créer de nouvelles notifications et désactiver celles par défaut de Nuxeo. Il faut donc de s'abonner aux nouvelles notifications. Si on était abonnés aux anciennes, on ne les recevra plus !