Pages enfant
  • 3- FAQ

Vous regardez une version antérieure (v. /wiki/display/PROJ/3-+FAQ) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 24) afficher la version suivante »

SVN / Maven depuis une machine non routable

Si vous souhaitez télécharger/déployer la portlet depuis une machine non routable, vous allez être confronté à des difficultés :

  • La commande svn checkout ne prend pas en compte les variables d'environnement UNIX/Linux pour la définition d'un serveur proxy HTTP
  • Maven ne prend pas en compte les variables d'environnement UNIX/Linux pour la définition d'un serveur proxy HTTP

Pour indiquer au binaire svn d'utiliser un proxy HTTP pour la récupération des sources, vous devez éditer le fichier ~/.subversion/servers et renseigner les propriétés suivantes (à la fin du fichier) :

[global]
http-proxy-exceptions = *.univ.fr
http-proxy-host = cache.univ.fr
http-proxy-port = 3128

Si votre serveur proxy nécessite une authentification, vous devez également renseigner les deux propriétés suivantes :

http-proxy-username = user
http-proxy-password = password

Pour indiquer à Maven d'utiliser un proxy HTTP, vous devez éditer le fichier ~/.m2/settings.xml :

<settings>
  <proxies>
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>cache.univ.fr</host>
      <port>3128</port>
      <nonProxyHosts>*.univ.fr</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

Simplification du déploiement dans un environnement cluster

TODO

Multi-domaine Zimbra

Il est possible d'utiliser la portlet dans un environnement comprenant plusieurs domaines Zimbra :

  • Une seule installation Zimbra, plusieurs domaines de messagerie, URL différentes selon le domaine
  • Plusieurs installations Zimbra

Dans ce cas, il suffit de publier plusieurs fois la portlet avec des paramètres de publication différents.
Voici un exemple de fichier de publication :

<channel-definition script="classpath://org/jasig/portal/io/import-channel_v2-6.crn">
<title>Zimbra</title>
<name>Zimbra</name>
<fname>portlet-zimbra</fname>
<desc>Zimbra</desc>
<type>Portlet</type>
<class>org.jasig.portal.channels.portlet.CSpringPortletAdaptor</class>
<timeout>30000</timeout>
<hasedit>N</hasedit>
<hashelp>N</hashelp>
<hasabout>N</hasabout>
<secure>N</secure>
<locale>en_US</locale>
<categories>
  <category>CATEGORIE</category>
</categories>
<groups>
  <group>GROUPE</group>
</groups>
<parameters>
  <parameter>
    <name>portletApplicationId</name>
    <value>deploy.uri</value>
    <description/>
    <ovrd>N</ovrd>
  </parameter>
  <parameter>
    <name>portletName</name>
    <value>zimbra</value>
    <description/>
    <ovrd>N</ovrd>
  </parameter>
</parameters>
<portletPreferences>
  <portletPreference>
    <name>zimbra.token.service.url</name>
    <values>
      <value>http://zcs-auth.univ.fr/getToken</value>
    </values>
  </portletPreference>
  <portletPreference>
    <name>zimbra.soap.service.url</name>
    <values>
      <value>https://zimbra.univ.fr/service/soap</value>
    </values>
  </portletPreference>
  <portletPreference>
    <name>zimbra.url</name>
    <values>
      <value>http://zimbra.univ.fr/getToken</value>
    </values>
  </portletPreference></portletPreferences>
</channel-definition>

Ce fichier de publication contient des paramètres à modifier :

  • fname : chaque publication de la portlet doit avoir un fname unique
  • groups : chaque publication de la portlet doit s'adresser à des groupes/utilisateurs différents (ceux qui ne partagent pas le même domaine Zimbra)
  • portletPreferences :
    • zimbra.token.service.url : le serveur d'authentification peut être différent pour deux installations Zimbra distinctes, cependant il doit utiliser le même serveur CAS que le portail
    • zimbra.soap.service.url : le serveur SOAP peut être différent pour deux installations Zimbra distinctes
    • zimbra.url : l'URL du webmail Zimbra peut être différente pour deux installations Zimbra distinctes, ou pour une même installation accessible dans plusieurs domaines distincts

Important : si vous omettez ces paramètres lors de la publication de la portlet, alors les URL utilisées seront celles définies dans le fichier profiles.xml.

Avoir le nombre de messages non lu dans le portail

Ceci est valable pour la version esup 3.2 et la portlet zimbra > 3.4.3

On peut travailler sans modifier de XSL uniquement au niveau javascript et jquery.

Il faut ajouter dans le skin.xml un nouveau javascript a utiliser par exemple :

custom\uPortal\uportal-war\src\main\webapp\media\skins\universality\uportal3\skin.xml
<js>../common/javascript/uportal/zimbra-unread.js</js>

Créer le plugins javascript dans : custom\uPortal\uportal-war\src\main\webapp\media\skins\universality\common\javascript\uportal\zimbra-unread.js

/**********************************************************
 Revision: 2012-10-16 : Julien Marchal
 Ajout du nombre de message non lu dans la barre de header
**********************************************************/
(function($){
    $(document).ready(function(){
        var postAppendStr=" Message(s)";
        var mailTitle="Voir mes messages";
        var mailUrl="https://mail.univ-nancy2.fr";
        var addSpan=true;
        
        if ($('#portalWelcome').length != 0) {
            var outStr='';
            outStr+='<span id="portalPageBarZimbraUnread">';
            outStr+=' <a title="' + mailTitle + '" href="' + mailUrl + '" target="_blank">';
            outStr+='   <span id="messagesCount">0' + postAppendStr + '</span>';
            outStr+=' </a>';
            if (addSpan) outStr+=' <span>|</span>';
            outStr+='</span>';
            
            $("#portalPageBarHome").after(outStr);            
                
            function timerMessagesCount() {
              ajaxMessageCount();
              window.setTimeout(timerMessagesCount, 60000);
            }
            
            function ajaxMessageCount() {
                up.jQuery.getJSON("/portlet-zimbra/ajax/getMessagesCount",
                function(data) {
                    if (data.integer == 0)
                        up.jQuery("#messagesCount").html("0"+postAppendStr);
                    else
                        up.jQuery("#messagesCount").html(""+data.integer+postAppendStr);
                });
            }
            
            timerMessagesCount();
        }
    
    });    
})(jQuery);
  • Aucune étiquette