Manuel d'intégration


Intégration

Dans votre charte graphique, il faut :

  • importer la XSL du plugin Messaging connector
    <xsl:import href="plugin:messaging-connector://stylesheets/messaging-connector.xsl" />

  • dans la section <head> faire appel au template "script-js-messaging-connector" qui charge le JS

    Exemple

    <xsl:template name="additionnal-script">   
       ...   
       <xsl:call-template name="script-js-messaging-connector">   
            <xsl:with-param name="css-class-prefix">exchange</xsl:with-param>   
       </xsl:call-template>   
    </xsl:template>   

     

  • faire appel au template de rendu "messaging-connector-card" là où vous voulez insérer les informations récupérées du serveur de messagerie

    <xsl:call-template name="messaging-connector-card">   
            <xsl:with-param name="css-class-prefix">exchange</xsl:with-param>   
    </xsl:call-template>   

Les templates XSL sont configurables.

Pour "script-js-messaging-connector" :

  • css-class-prefix : prefix pour les classes CSS qui sont appliquées aux éléments de rendu, "messaging" par défaut
  • max-days : période de recherche des événements à venir, 7 jours par défaut
  • max-events: nombre maxiumn d'événements à afficher, 1 par defaut
  • email-none: clé i18n lorsqu'il y a aucun mail non lus, par défaut "Aucun message non lu(s)"
  • email-single: clé i18n lorsqu'il y a 1 mail non lu, par défaut "1 message non lu(s)"
  • email-several: clé i18n lorsqu'il y a plusieurs mail non lus, par défaut "X messages non lu(s)"

Pour "messaging-connector-card" :

  • css-class-prefix : prefix pour les classes CSS qui sont appliquées aux éléments de rendu, "messaging" par défaut
  • tous les messages utilisés dans le rendu sont configurables : email-title, email-waiting, email-error, agenda-title, ... Voir la XSL "messaging-connector-card.xsl".

Par défaut, ce helper affiche le Nom Prénom de la personne, puis le nombre de message non lus, puis les RDV à venir. Les RDV comprennent le sujet - la date - le lieu.
Si vous ne voulez pas afficher le lieu (par exemple) vous devrez surcharger le template "messaging-event-location" et le laissez vide.

Attention
Si vous surchargez le préfix CSS "messaging" dans un des templates, vous devez également le surcharger pour l'autre.

Le HTML produit par défaut est le suivant :

<ul class="user-infos exchange-user-infos">
  <li class="user-infos-person messaging-user-infos-person">
    <span class="user-infos-person-title messaging-user-infos-person-title">Michel Durand</span>
  </li>
  <li class="user-infos-mail messaging-user-infos-mail">
    <span class="user-infos-mail-title messaging-user-infos-mail-title">Messagerie :</span>
    <span class="user-infos-waiting messaging-user-infos-waiting" style="display: none;">Chargement en cours...</span>
    <span style="display:none;" class="user-infos-error messaging-user-infos-error">Une erreur est survenue. Impossible de retrouver les informations.</span>
    <span class="user-infos-error messaging-user-infos-error-server" style="display:none;">
      <!-- This must be empty and will contain the server message -->
    </span>
    <span class="user-infos-error messaging-user-infos-error-change-password" style="display:none;">
      <!-- This must be empty and will contain the link to change password -->
    </span>
    <span style="" class="user-infos-info messaging-user-infos-info">
      <span id="messaging-nb-msg">5 messages</span>non lu(s)</span>
  </li>
  <li class="user-infos-agenda messaging-user-infos-agenda">
    <span class="user-infos-agenda-title messaging-user-infos-agenda-title">Prochain(s) RDV :</span>
    <span class="user-infos-waiting messaging-user-infos-waiting" style="display: none;">Chargement en cours...</span>
    <span style="display:none;" class="user-infos-error messaging-user-infos-error">Une erreur est survenue. Impossible de retrouver les informations.</span>
    <span class="user-infos-error messaging-user-infos-error-server" style="display:none;">
      <!-- This must be empty and will contain the server message -->
    </span>
    <span class="user-infos-error messaging-user-infos-error-change-password" style="display:none;">
      <!-- This must be empty and will contain the link to change password -->
    </span>
    <ul style="" class="user-infos-events messaging-user-infos-events">
      <li class="user-infos-event messaging-user-infos-event">
        <span class="user-infos-event-title messaging-user-infos-event-title">Copil Abcd</span>
        <span class="user-infos-event-separator messaging-user-infos-event-separator" style="display: none;"></span>
        <span class="user-infos-event-date messaging-user-infos-event-date">lun. 10 juil. 15h00</span>
        <span class="user-infos-event-separator messaging-user-infos-event-separator" style="display: none;"></span>
        <span class="user-infos-event-location messaging-user-infos-event-location">Salle Royans-Vercors</span>
      </li>
    </ul>
    <span style="display:none;" class="user-infos-noevent messaging-user-infos-noevent">
      <span>Aucun évènement</span>d'ici
      <span class="user-infos-maxdays messaging-user-infos-maxdays"></span>jour(s).</span>
  </li>
</ul>  

Gestion des erreurs

Lorsqu'une erreur serveur empêche la récupération des informations de messagerie, le message d'erreur est affiché dans l'un des <span> suivants :

  • messaging-user-infos-error : erreur grave sans message de retour

Et depuis la version 1.5.0 :

  • messaging-user-infos-error-server : affichage du message d'erreur retourné par le serveur
  • messaging-user-infos-error-change-password : élément HTML qui contiendra un lien permettant à l'utilisateur de saisir son mot de passe Exchange si ce dernier n'a pu être authentifié (mot de passe manquant ou invalide)

Nouveau connecteur

Avec l'apparition du GraphConnector, il y a maintenant deux connecteurs dans ce plugin, et un seul activable simultanément. Il faut choisir le connecteur dans le fichier WEB-INF/param/runtime.xml :

Pour le connecteur classique compatible Exchange on-premise :

<org.ametys.plugins.messagingconnector.MessagingConnector>org.ametys.plugins.exchange.ExchangeConnector</org.ametys.plugins.messagingconnector.MessagingConnector>

Pour le connecteur compatible Office 365 :

<org.ametys.plugins.messagingconnector.MessagingConnector>org.ametys.plugins.exchange.GraphConnector</org.ametys.plugins.messagingconnector.MessagingConnector>
Retour en haut

Exchange