JCMS 6.1 : les principales nouveautés et les modules associés

JCMS 6.1 apporte de nouvelles fonctionnalités facilitant l’utilisation et ouvrant de nouvelles perspectives pour tous les usages. La gestion documentaire et le workflow ont été enrichies. L’ergonomie d’édition a été allégée et simplifiée. Et un nouveau mode de stockage des utilisateurs permet désormais d’accueillir des centaines de milliers d’utilisateurs.

JCMS 6.1 est accompagné d’une série de nouveaux modules qui enrichissent l’offre fonctionnelle de Jalios : newsletter, formulaires dynamiques, photothèque, intégration avec MS-Office et avec Kofax Capture, …

Enfin, en complément des quatre composantes actuelles de JCMS (gestion de contenus, portail, gestion documentaire et collaboratif), Jalios ESN amène une cinquième composante avec le Réseau Social d’Entreprise.

1. JCMS 6.1 - Socle Commun

1.1 Ergonomie d’édition

Les formulaires de JCMS 6.1 ont été revus afin de proposer une interface plus ergonomique. La présentation en onglets a été allégée. Pour les formulaires multilingues, un sélecteur global de langue est présent dans le menu "Contenu" et sur chaque champ multilingue. La quantité de sous-onglets a ainsi pu être fortement réduite.

Fig. 1. Nouvelle présentation des formulaires.

Pour faciliter l’ajout de pièces jointes, les champs Document proposent désormais un dépôt direct par simple sélection du fichier à déposer. S’il est nécessaire de préciser certaines métadonnées lors du dépôt (p. ex. droits, catégories, résumé, …) il est toujours possible d’ouvrir l’interface de dépôt habituelle.

Fig. 2. Dépôt de fichier direct dans les champs de type document.

Chaque widget d'édition propose ses icônes d’action seulement lorsqu’il est sélectionné. Les actions secondaires sont regroupées dans un menu contextuel.

Fig. 3. Menu contextuel regroupant les actions secondaires.

La plupart des champs multivalués peuvent être réordonnés par un simple glisser/déposer. De plus, l’ajout d’item est immédiat et ne nécessite plus le rechargement du formulaire.

Fig. 4. Glisser/déposer dans les champs multivalués.

Tous les champs Date disposent d’un nouveau calendrier qui apparait directement dans la page. Par ailleurs, les dates peuvent être saisies dans plusieurs formats (p. ex. 15/10/2009, 15.10.2009 ou 15 10 2009) et de façon relative (today, tomorrow, yesterday, +3 dans trois jours, +1y dans un an).

Fig. 5. Les champs Date disposent d’un nouveau calendrier.

Enfin, JCMS 6.1 intègre la version 3.2.6 de l’éditeur TinyMCE pour les champs texte riche. Cette nouvelle version permet l’édition pleine page. Une nouvelle icône a été ajoutée pour insérer directement des documents ou des images sans avoir à passer par des interfaces intermédiaires.

1.2 Présentation des contenus

Les gabarits de présentation par défaut des contenus ainsi que le gabarit d’affichage des Documents ont été revus et offrent une présentation plus aérée.

Fig. 6. Nouvelle présentation des gabarits d’affichage par défaut.

1.3 Gestion du mail entrant

JCMS 6.1 introduit un nouveau canal de communication avec la gestion du mail entrant. JCMS peut gérer une ou plusieurs boîtes aux lettres via les protocoles POP3 ou IMAP. A la réception d’un nouveau mail, JCMS l’archive comme une publication ou déclenche un traitement approprié.

Dans l’éditeur de propriétés, un nouvel onglet est dédié au paramétrage du mail entrant et du mail sortant.

Fig. 7. Paramétrage des propriétés du mail entrant et sortant.

Une interface de supervision permet de connaître l’état du mail entrant (nombre de messages reçus, date de la dernière relève, paramétrage des différents comptes, …)

Fig. 8. Interface de supervision du mail entrant.

1.3.1 Archivage des mails

Pour configurer l’archivage des mails, il faut tout d’abord paramétrer une adresse dédiée à cet usage (p. ex. archivage@jcms.example.com). JCMS relève alors régulièrement les nouveaux mails de cette boîte aux lettres. Chaque mail reçu est stocké dans JcmsDB sous forme d’une publication DBMailMessage. JCMS identifie les auteurs et destinataires du mail et reconstruit les discussions. Si des pièces jointes sont présentes dans le mail, JCMS les décode, les stocke en tant que FileDocument et les rattache au DBMailMessage. Les DBMailMessage étant stockés dans JcmsDB, ils ne peuvent pas être catégorisés.

Les mails archivés peuvent être consultés en front-office.

Fig. 9. Affichage des e-mails reçus regroupés en discussion.

1.3.2 Déclenchement d’actions

A la réception d’un mail sur une certaine adresse, JCMS déclenche une action déterminée. Par exemple, le module DBForum exploite ce principe pour permettre les réponses par mail. Lorsqu’un utilisateur est intéressé par une discussion, il peut demander à être notifié par mail à chaque nouveau message. Avec JCMS 6.1, l’utilisateur peut participer à la discussion en répondant à ce mail. Le mail reçu n’est pas archivé mais déclenche l’ajout d’un message dans la discussion.

Le module Newsletter utilise aussi ce principe pour se désinscrire par un simple mail à une adresse déterminée. De même, le logiciel Jalios ESN propose de mettre à jour son statut en envoyant un mail.

1.4 Support de grande volumétrie d’utilisateurs

1.4.1 DBMember

JCMS 6.1 a été optimisé pour gérer de grandes volumétries d’utilisateurs. Pour cela, JCMS 6.1 propose deux gammes d’utilisateurs avec des stockages différents :

  • les membres, déjà présents dans les précédentes versions de JCMS, sont stockés dans JStore. JCMS peut en gérer quelques dizaines de milliers ;
  • les membres en base (ou DBMember) sont stockés dans JcmsDB. JCMS peut en gérer plusieurs centaines de milliers, voire plusieurs millions si l’on optimise la base (par exemple avec du partitionnement de table).

Les DBMembers partagent de nombreuses caractéristiques avec les membres :

  • Ils ont les mêmes champs informatifs (nom, prénoms, entreprise, fonction, email, téléphone, …) ;
  • Ils peuvent être placés dans des groupes (et donc appartenir à des espaces collaboratifs) ;
  • Ils peuvent disposer d’un bureau virtuel et utiliser les services gérant des données persistantes tels que favoris ou gestions de tâches ;
  • Si Jalios ESN est présent, ils peuvent en être membres et disposer de toutes fonctions (gestion du profil, de l’expertise, des relations, de l’activité, …)

Les DBMember ont néanmoins des limitations :

  • Ils ne peuvent pas accéder au back-office ;
  • Ils ne disposent pas des droits de délégation ni d’audiencement ;
  • Ils ne peuvent contribuer qu'avec les contenus utilisateur (forum, avis, commentaires) ;
  • Ils ne peuvent pas gérer les catégories ;
  • Ils ne bénéficient pas de la délégation d'authentification.

Des accès distincts à la liste des membres et à la liste des DBMembers sont proposés dans l’interface d’administration.

Pour permettre une recherche textuelle performante sur les membres et les DBMembers, JCMS 6.1 les indexe avec le moteur Lucene.

Enfin, un DBMember peut être transformé en un membre. Par contre, l’inverse n’est pas possible. Cette option est proposée dans le menu contextuel des DBMember et est irréversible.

1.4.2 Contacts externes

Une nouvelle option est disponible pour les membres et les DBMember qui permet d’indiquer s’il s’agit d’un compte utilisateur ou d’un contact externe. Un contact externe ne peut pas s’authentifier et n'a donc pas accès à JCMS. Cette nouvelle option est notamment utilisée par le logiciel Jalios ESN pour gérer des informations sur des personnes externes. Les photos des contacts externes sont accompagnées du petit pictogramme jcms61-extcontacttiny pour les distinguer rapidement des autres utilisateurs.

Fig. 10. L’interface de création d’un membre permet de choisir le type d’usage.

1.5 Workflow

1.5.1 Rôles Ouverts

Dans la configuration des workflows, les rôles ouverts permettent au contributeur de choisir lui-même quel membre sera affecté à un rôle. La gestion des rôles ouverts a été complété dans JCMS 6.1 :

  • Un rôle ouvert peut-être obligatoire. Dans ce cas, le contributeur doit renseigner quel membre il affecte au rôle lorsqu’il choisit un état comportant un rôle ouvert obligatoire;
  • Les rôles ouverts sont dorénavant multivalués. Le contributeur a ainsi la possibilité de choisir un ou plusieurs membres pour ce rôle. Le mail de notification sera envoyé aux membres sélectionnés ;
  • Enfin, dans l’interface de saisie des rôles, seuls les rôles ouverts concernés par l’état cible sont proposés à l’utilisateur.

1.5.2 Etat des champs

Pour certains usages, il peut être nécessaire de contrôler l’accès non plus au niveau du document mais au niveau de chaque champ.

Exemples d’usage :

  • Le champ "Titre" ne doit plus être éditable après l'état "Validation" ;
  • Le champ "Confidentiel" n'est visible et éditable que si le contributeur appartient à un certain groupe ;
  • Le champ "Introduction" ne devient obligatoire que si l'on passe la publication à l'état Soumis.

L’API des workflows a été enrichie (depuis JCMS 6.0 SP1) pour permettre ce contrôle et propose ainsi de contrôler les caractères visibles, éditables et obligatoires d'un champ selon le contexte d'édition (publication, pstatus, loggedMember, services externes, …).

Une fiche détaillant cette API sera bientôt diffusée sur JaliosXperience.

1.6 WebDAV

1.6.1 Jalios Office Launcher

JCMS supporte le protocole WebDAV depuis la version 5.5. Ce protocole permet d’éditer les documents bureautiques directement sur le serveur JCMS, sans avoir à les télécharger sur son poste puis les redéposer ensuite. Jusqu’à présent le déclenchement de l’édition WebDAV depuis le navigateur ne fonctionnait qu’avec Internet Explorer. JCMS 6.1 rend cette édition opérationnelle sur tous les navigateurs Windows (Internet Explorer, Firefox, Safari, Chrome) tout en améliorant le support sur Windows Vista.

Pour activer l’édition WebDAV sur tous les navigateurs Windows, il faut installer sur les postes des contributeurs le composant Jalios Office Launcher. Il faut aussi configurer JCMS pour qu’il produise des URL d’édition WebDAV conformes à ce nouveau composant. Pour cela reportez-vous à la section 6.11 Installation de Jalios Office Launcher du Manuel d’installation et d’exploitation.

1.6.2 Incrément des versions mineures

Lorsque l’utilisateur quitte le document après l’avoir édité par WebDAV, JCMS 6.1 identifie si le fichier a subi des changements et dans ce cas incrémente le numéro de version mineure du Document associé.

1.6.3 Compatibilité JSync

Jusqu’à présent l’utilisation de WebDAV était incompatible avec l’option de réplication des fichiers par JSync. JCMS 6.1 lève cette contrainte et WebDAV devient ainsi compatible avec tous les modes de gestion des fichiers lorsque la réplication JSync est activée : fichiers centralisés, répliqués par JSync ou répliqués par un processus externe tel que RSync.

1.7 Recherche par type de documents

Le moteur de recherche de JCMS 6.1 propose le filtrage par type de documents (Présentation, Feuille de calcul, PDF, Image, Vidéo, …). Ce nouveau critère de recherche peut être combiné avec tous les critères existants (texte, catégories, date, types, rédacteur, langues, …) L’interface de recherche dispose d’un nouvel onglet à cet effet.

Fig. 11. Choix du type de documents dans l’interface de recherche.

Le gestionnaire des contenus bénéficie lui aussi de ce type d’affinement lorsqu’on choisit le type Document.

Fig. 12. Filtrage par type de documents dans le gestionnaire des contenus.

1.8 Copie de portlets

Avec JCMS 6.1, les portlets disposent d’une nouvelle option lors de la duplication d’un portail. En plus des options existantes "Copie" et "Référence", la nouvelle option "Une référence par espace de travail" garantit que lors de la duplication d’un espace de travail complet, la portlet sera copiée une seule fois quel que soit le nombre de portlets qui la référencent dans cet espace de travail.

Fig. 13. Nouvelle option de copie de portlet.

1.9 Portlet Calendrier

Dans JCMS 6.1, la portlet Calendrier dispose d’un nouveau gabarit d’affichage, "Mon Agenda". Ce gabarit est tout particulièrement destiné au bureau virtuel. Il liste les prochains événements de l’utilisateur et présente un lien pour en ajouter de nouveaux.

Fig. 14. Le gabarit Mon Agenda de la portlet Calendrier.

1.10 Nouvelle version du lecteur vidéo

JCMS 6.1 intègre la version 4.5 du lecteur JW FLV Media Player. Entre autres nouveautés, ce lecteur supporte le format MP4 ainsi que la plupart des protocoles de streaming (ce qui nécessite une infrastructure de Streaming Vidéo côté serveur). De plus, cette nouvelle version propose plusieurs jeux de skins.

Légende : Fig. 15. JW FLV Media Player propose de nombreuses skins.

1.11 JCMS Open API

JCMS Open API est une API de Web Service REST. JCMS 6.1 étend les possibilités offertes par cette API.

1.11.1 Related

Lorsqu’on interroge une donnée avec JCMS Open API, le flux XML retourné comporte l’ensemble des champs associés à cette donnée. Il peut cependant être nécessaire d’accéder à d’autres informations liées à cette donnée. Par exemple, lorsqu’on consulte un membre, on peut avoir besoin de connaître l’ensemble des espaces de travail auxquels il appartient. Or cette information ne figure pas dans les champs du membre puisqu’il s’agit d’un index basé sur les groupes auxquels il appartient.

Avec JCMS 6.1 , il est possible d’obtenir certaines données liées simplement en l’indiquant avec le paramètre related dans l’URL. Ceci est valable pour toutes les requêtes Open API pour lesquelles des données sont retournées.

Par exemple, la requête suivante, qui retourne tous les champs du membre j_2, ajoute au flux XML la liste des espaces de travail auxquels il participe  :

/rest/data/j_2 ?related=workspaceSet

ce qui produit le résultat suivant :

<?xml version='1.0' encoding='UTF-8' ?>
<data class='com.jalios.jcms.Member' id='j_2' url='https://intranet.jalios.net/jcms/j_2/admin'>
<field name='author' id='j_2' class='com.jalios.jcms.Member' login='admin'>Admin</field>
<field name='opAuthor' id='j_2' class='com.jalios.jcms.Member' login='admin'>Admin</field>
<field name='cdate'>2000-06-03T18:38:51+02:00</field>
<field name='mdate'>2009-09-28T12:13:31+02:00</field>
<field name='login'>admin</field>
<field name='name'>Admin</field>
...
<related name='workspaceSet'>
<item id='j_4' class='com.jalios.jcms.workspace.Workspace'>Espace Jaliosnet</item>
<item id='jn1_42455' class='com.jalios.jcms.workspace.Workspace'>$NAME$ Espace collaboratif</item>
<item id='jn1_72601' class='com.jalios.jcms.workspace.Workspace'>Espace Principal</item>
</related>

</data>

Le tableau ci-dessous liste les related disponibles dans JCMS 6.1

Type Related Description
Data extraData.foo Retourne l’extraData foo
Data extraDBData.foo Retourne l’extraDBData foo
Data lockDate Retourne la date de pose du verrou
Data lockMember Retourne le membre ayant verrouillé la donnée
Data linkIndexedDataSet Retourne l’ensemble des données référençant la donnée
Member workspaceSet Retourne l’ensemble des espaces de travail auxquels appartient le membre
Category childrenSet Retourne l’ensemble des fils de la catégorie
Workspace catSet.loggedMember Retourne l’ensemble des catégories autorisées pour le membre authentifié.

 

1.11.2 Liste de données

JCMS Open API permet d’obtenir une donnée via la ressource /data. JCMS 6.1 permet par cette même ressource d’obtenir un ensemble de données dont on précise les identifiants séparés par un point-virgule.

Par exemple la requête suivante renvoie, en une seule réponse, le groupe par défaut (j_1), l’administrateur par défaut (j_2), la racine des catégories (j_3) et l’espace de travail par défaut (j_4) :

/rest/data/j_1;j_2;j_3;j_4 

1.11.3 TreeNode

Pour toutes les classes implémentant l’interface TreeNode (p. ex. Category,  Faq, Glossary, …) et les groupes, la ressource /data/children renvoie l’ensemble des descendants.

Par exemple, la requête suivante renvoie les fils de la catégorie racine

/rest/data/children/j_3

1.11.4 FileDocument

Le support des FileDocument a été amélioré. Il est possible de déposer des FileDocuments par JCMS Open API et aussi de poser et relâcher les verrous.

1.11.5 JCMS Open API Client

JCMS Open API Client est une bibliothèque Java simplifiant l’accès à JCMS Open API. Elle a été mise à jour pour intégrer les nouveautés précédemment citées.

Par ailleurs, une version de cette bibliothèque est disponible pour le framework Microsoft .Net.

1.12 API

1.12.1 DBData

Avec JCMS 6.0, les données de JcmsDB pouvaient référencer des données de JStore mais pas l’inverse. JCMS 6.1 permet le référencement dans les deux sens. Ainsi, il devient par exemple possible de référencer un DBMember (stocké dans JcmsDB) dans le champ Participants d’un Evénement de Calendrier (stocké dans JStore).

JCMS 6.1 étend aussi les possibilités des données stockées dans JcmsDB en supportant les champs multivalués. L’interface de création de type de JCMS, propose pour les champs multivalués des DBData le choix du type de collection : List ou de Set.

Fig. 16. Choix du type de champ multivalué dans l’éditeur de types.

1.12.2 Formulaires en Modale

JCMS 6.0 avait introduit une API pour faire apparaître des fenêtres modales par une simple déclaration CSS (class="modal"). JCMS 6.1 reprend ce principe pour proposer une mécanique générique de formulaires en fenêtre modale. Le principal intérêt des fenêtres modales est de préserver le contexte visuel de l’utilisateur et de ne pas le perdre dans avec de multiples fenêtres ouvertes. Cette nouvelle mécanique a été massivement utilisée dans Jalios ESN.

Fig. 17. Exemple de formulaire dans une fenêtre modale.

JCMS 6.1 simplifie la gestion des formulaires dans des fenêtres modales avec des classes CSS de présentation et un système de redirection après validation.

Par défaut, après validation, l'appel à modalRedirect.jspf provoque le rafraichissement de la page courante. Il est possible de définir une redirection spécifique avec l'attribut de requête modal.redirect.

Exemple de formulaire en modal

<%@ include file='/jcore/doInitPage.jsp' %>
<% if (Util.notEmpty(request.getParameter("opSubmit"))) { %>
<%-- request.setAttribute("modal.redirect", "customRedirect.jsp"); --%>
<%@ include file="/jcore/modal/modalRedirect.jspf" %>
<% } %>
<% 
if (Util.notEmpty(request.getParameter("opRefresh"))) { 
  String text = request.getParameter("text");
  jcmsContext.setInfoMsg("Your text: " + text);
}
%>

<div class="ajax-refresh-div">
  <div class="modalForm" style="width:500px;">
    <img src="images/jalios/logos/powered-by-jalios.gif" class="bigIcon"/>  
    <h1>Example of form modal</h1>
    <%@ include file='/jcore/doMessageBox.jsp' %>
    <div class="info">The introduction...</div>

    <form action="plugins/DevToolsPlugin/jsp/debugFormModal.jsp" method="post" name="editForm">
      <input name="text" value="Enter some text" />
      
      <div class="buttons">
        <input type="submit" class="mainButton ajax-refresh" name="opSubmit" value="<%= glp("ui.com.btn.save") %>" />
        <input type="submit" class="formButton ajax-refresh" name="opRefresh" value="<%= glp("ui.com.btn.refresh") %>" />
        <input type="submit" class="formButton" name="opCancel" onclick="return JCMS.window.Modal.close(false);" value="<%= glp("ui.com.btn.cancel") %>"/>
      </div>
    </form>
  </div>
  <%@ include file='/jcore/doAjaxFooter.jspf' %>
</div>

1.12.3 Image en Modale

Dans JCMS 6.1, toute image peut être très simplement présentée dans une modale lorsqu’on clique dessus en la plaçant tout simplement dans un lien ayant la classe CSS modale.

Exemple :

<a class="modal" href="<%= photoPath %>">
<jalios:thumbnail path='<%= photoPath %>'
                        width='150'
                        height='130'/>
</a> 

1.12.4 Redimensionnement des iFrames

Les iFrames permettent d’intégrer un site externe dans le portail de JCMS. Un inconvénient majeur des iFrames est qu’elles ne se redimensionnent pas en hauteur, ce qui provoque l’apparition des barres de défilement. JCMS 6.1 résout ce problème en retaillant automatiquement la hauteur des iFrames ayant leur attribut height à la valeur "100%". Pour des raisons de sécurité, le navigateur n'acceptera de déclencher ce mécanisme que si l’URL de l’iFrame est dans le même domaine DNS que l’URL de la page qui l’accueille.

1.12.5 Classe CSS du navigateur

Dans JCMS 6.1, une classe représentant le navigateur de l'utilisateur est ajoutée dans la balise <body> de la page. La classe CSS est de la forme browser-<NomDuBrowser>.

Exemples :

  • browser-IE6
  • browser-IE7
  • browser-Firefox
  • browser-Safari

Ceci permet d'écrire aisement des CSS spécifiques à un navigateur.

Exemple d'utilisation :

#page .left-colum {
  width: 100%;
  max-width: 600px;
}

.browser-IE6 #page .left-colum {
  width: 600px;
}

1.12.6 <jalios :media>

Le tag <jalios:media> permet d’afficher très simplement un média quel que soit son type. Dans le cas d’une vidéo, il produit le code HTML d’insertion du lecteur FLV. Dans le cas d’un MP3, il insère le lecteur audio. Dans le cas d’une image il insère une miniature de l’image avec l’affichage détaillé en modale.

L’utilisation est très simple puisqu’il suffit d’indiquer au tag soit le document soit le chemin de la ressource :

<jalios:media path="..." />
<jalios:media doc="<%= myDoc %>" />

1.12.7 FaviconManager

Les Favicons sont les petites icônes de 16x16 pixels qui accompagnent les URLs présentes dans la barre d’URL des navigateurs et dans les onglets. Ces icônes permettent de rapidement identifier un site. JCMS 6.1 fournit un gestionnaire de favicons capable de retrouver l’icône associée à une URL (lorsqu’elle existe). Les modules JCMS Favoris et Jalios ESN utilisent ce service pour agrémenter les liens externes qu’ils gèrent de ces petites icônes.

Exemple d’utilisation :

<img src="<%= FaviconManager.getInstance().getIcon(url) %>" />

1.12.8 doMemberPhoto.jsp

La JSP doMemberPhoto.jspf est destinée à afficher les photos des membres avec une présentation homogène (notamment le petit marqueur indiquant s’il s’agit d’un contact externe). Avant l'appel, il faut créer les variables photoMember et photoSize (qui doit être une des tailles reconnues d'image, cf JcmsConstant.PHOTO_xxx).

Exemple d’utilisation :

<% Member photoMember = itMember; int photoSize = JcmsConstants.PHOTO_TINY; %>
<%@ include file="/jcore/doMemberPhoto.jspf" %>   

1.12.9 Authentification HTTP Digest

JCMS 6.1 dispose d’un nouveau composant d’authentification, HttpDigestAuthenticationHandler, qui ajoute le support de l'authentification HTTP Digest. Cet AuthenticationHandler nécessite obligatoirement un développement avant son utilisation.

En effet, il faut impérativement avoir enregistré au préalable un hash (dénommé HA1 dans la spécification HTTP Digest) spécifique à chaque membre, dans une ExtraData que va réutiliser le handler lors de l'authentification.

Ce HA1 est généré à partir du mot de passe de l'utilisateur en clair ainsi que du realm de connexion. Donc il faut avoir accès au mot de passe en clair de l'utilisateur pour pouvoir invoquer les bonnes API (par exemple dans un DataController lors de l'édition du profil en accédant directement à request.getPassword())

Pour enregistrer le Hash :

    Member mbr = ...;
    Member updated = (Member) mbr.getUpdateInstance();
    updated.setExtraDataMap(Util.getHashMap(mbr.getExtraDataMap()));
    HttpDigestAuthenticationHandler.putHA1InMemberExtraData(updated, "MyRealm", "clear text password");
    updated.performUpdate(admin);

Pour demande une authentification HTTP Digest dans une JSP :

<%@ include file="/jcore/doInitPage.jsp" %><%
%><%@ page import="com.jalios.jcms.authentication.handlers.HttpDigestAuthenticationHandler" %><%

  if (loggedMember == null) {
    HttpDigestAuthenticationHandler.setHttpDigestAuthorizationHeader(session, response, "MyRealm");
    return;
  }
%>

1.13 Exploitation

1.13.1 Tomcat 5.5.28

Un bug de Tomcat concernant les cookies gênait le bon fonctionnement de JCMS avec les versions 5.5.26 et 5.5.27 de Tomcat. La version 5.5.28 de Tomcat corrige ce problème et JCMS 6.1 est donc compatible avec cette nouvelle version. Il faut néanmoins faire très attention lors du passage sur cette version, car Jasper, le compilateur de page JSP de Tomcat, est plus contraignant sur l’usage des tags JSP (<jsp:xxx>) et des custom tags (<jalios:xxx>) . Il refuse de compiler les pages ayant des tags dans lesquels les attributs comportent des quotes dans des quotes ou des double quotes dans des double quotes.

Exemple de code non compatible avec Tomcat 5.5.28 :

<jalios:link data='<%= data %>' htmlAttributes=' style='font-weight: bold;' ' /> <%-- Ne compilera pas --%>
<jalios:link data='<%= data %>' htmlAttributes=" style="font-weight: bold;" " /> <%-- Ne compilera pas --%>
<jalios:link data='<%= data %>' htmlAttributes=' style="font-weight: bold;" ' /> <%-- OK --%>

Si vous décidez de migrez votre site sur cette nouvelle version de Tomcat, vous devrez vérifier que vos JSP spécifiques compilent correctement.

1.13.2 Minification des JavaScripts et des CSS

L’ouvrage High Performance Web Site de Steve Souders propose un ensemble de règles très pragmatiques pour améliorer les performances des sites Web. Les principales règles avaient étaient prises en compte dans JCMS 5.7 et JCMS 6. JCMS 6.1 complète cette panoplie en intégrant la règle recommandant la minification des Javascript et des CSS.

Fig. 18. Options de minification du JavaScript et des CSS.

1.13.3 Google Chrome Frame

Google Chrome Frame est une extension Internet Explorer proposée par Google pour traiter au sein d’Internet Explorer 6, 7 et 8 des pages avec le moteur de rendu Google Chrome. Ainsi les utilisateurs peuvent garder une ancienne version de leur navigateur compatible avec les applications de l’entreprise tout en bénéficiant d’un moteur de rendu moderne pour les pages provenant de JCMS 6.1. A noter toutefois qu'au 1/2/2010 Google Chrome frame était encore en "early-stage release".

L’activation du support de Google Chrome Frame se fait dans l’onglet Avancé de l’éditeur de propriétés.

Fig. 19. Option d’activation du support de Google Chrome Frame.

1.13.4 Réindexation Lucene

Au premier démarrage JCMS vérifie si les index Lucene sont présents. Si ce n’est pas le cas, il déclenche automatiquement une réindexation. Ce comportement peut être désactivé par la propriété search-engine.auto-indexing-on-first-startup.

2. Les nouveaux modules

2.1 Newsletter

Dans les précédentes versions, JCMS disposait d’une fonctionnalité de Newsletter. Cette Newsletter était unique et son contenu produit dynamiquement à partir d’une JSP. Cette fonctionnalité a été supprimée de JCMS 6.1 et remplacée par le module Newsletter.

Le module Newsletter permet de gérer autant de Newsletter qu’on le souhaite. Chaque Newsletter peut avoir une mise en page spécifique. Sur ce point, il faudra être attentif à la constitution du modèle car les lecteurs de mail n’ont pas les mêmes capacités de rendu que les navigateurs.

Fig. 20. Exemple de Newsletter.

A chaque Newsletter est associée un ensemble d’abonnés qui peuvent s’inscrire et se désinscrire eux-mêmes. Il est aussi possible d’inscrire automatiquement tout un ensemble de membres appartenant à un groupe. Les abonnés ont la possibilité de se désinscrire soit en allant sur le site (s’ils y ont accès) soit en envoyant un mail de désinscription (ceci nécessite d’avoir configuré le mail entrant).

Le contenu de la Newsletter peut-être pré-alimenté par des contenus existants puis réédité par un contributeur affecté à cette tâche. Il est possible de gérer des parties dynamiques dans la Newsletter qui seront résolues à chaque envoi (p. ex. Nom du destinataire, date, …)

Toutes les Newsletters disposent d’un affichage sur le site qui permet de savoir de quoi traite la Newsletter, de s’y inscrire et de consulter les précédents numéros.

Fig. 21. Chaque Newsletter dispose d’un affichage dédié.

Le module fournit l’interface pour gérer les abonnements, les envois et le suivi des Newsletters. L’envoi d’une Newsletter est traité par un workflow. Le suivi des envois permet de savoir combien il y a eu de lecteurs et qui parmi les inscrits a ouvert le mail contenant la Newsletter.

Fig. 22. Interface de gestion d’une Newsletter.

2.2 Formulaires dynamiques

Le module Formulaires Dynamiques permet de construire des formulaires de type enquête ou quizz. La gestion de ces formulaires peut être confiée à un contributeur et ne nécessite pas de redémarrage de JCMS pour être mis en œuvre. Chaque formulaire est composé d’un ensemble de questions. Chaque question est typée (case à cocher, champ texte, date, catégories, …), peut être ouverte ou fermée et possède plusieurs paramètres (obligatoire, bonne réponse, …). La structure du formulaire est stockée dans JStore. Les soumissions sont stockées dans JcmsDB.

Fig. 23. Interfaces de création d’un formulaire dynamique.

La configuration d’un formulaire dynamique permet d’agir sur sa présentation (page d’accueil, décomposition des questions en chapitres, …) ainsi que sur le comportement (soumissions uniques ou multiples, soumissions anonymes, …) Par ailleurs, un formulaire dynamique peut être associé à un workflow afin de contrôler sa diffusion sur le site. Une fois qu’il a atteint l’état publié, les utilisateurs peuvent y participer et déposer leurs soumissions. Enfin, le module fournit des interfaces de gestion pour consulter et gérer les soumissions ainsi qu’une analyse statistique des réponses.

Fig. 24. Affichage d’un formulaire dynamique.

2.3 Gestion de tâches

Le module Gestion de tâches fournit une portlet destinée au Bureau Virtuel. Avec cette portlet, l’utilisateur peut gérer des listes de tâches. L’ergonomie a été pensée pour être très simple et très réactive. L’ajout d’une tâche se fait par une simple saisie dans la portlet. Les tâches peuvent être indentées. Elles peuvent être réorganisées par un simple glisser/déposer. Des informations additionnelles (priorité, échéance, description) peuvent être attachées à chaque tâche. Il est possible d’avoir autant de listes de tâches qu’on le souhaite dans son bureau virtuel. L’ensemble des tâches est stocké dans JcmsDB.

Fig. 25. Portlet gestion de tâches.

2.4 Portlet Annuaire

JCMS propose, depuis les toutes premières versions, un annuaire des utilisateurs qui peut être autonome ou couplé avec l’annuaire de l’entreprise. Jusqu’à présent cet annuaire était uniquement présent en back-office et plutôt destiné à un usage de gestion des membres.

La Portlet Annuaire propose d’exploiter cet annuaire en front-office. L’utilisateur peut rechercher une personne par son nom, son prénom, sa société, son e-mail. Lorsque Jalios ESN est présent, la recherche est étendue aux informations du profil utilisateur : domaine de compétence, domaine d’intérêt, formation, parcours professionnel, … Au sein des espaces collaboratifs, la portlet annuaire peut être paramétrée pour ne gérer que les membres de cet espace.

La Portlet Annuaire propose deux vues selon le contexte d’utilisation :

  • Vue réduite pour un affichage dans une colonne ou dans le Bureau Virtuel
  • Vue détaillée pour un affichage en pleine page (p. ex. dans un espace collaboratif)

Fig. 26. Les différentes vues de la portlet Annuaire.

2.5 Prévisualisation Temporelle

Le module Prévisualisation Temporelle permet de voir le contenu d’une page portail telle qu’elle sera à une date donnée. Ce module place une nouvelle icône dans la barre des icônes de la Portlet Menu qui fait apparaitre une interface de navigation temporelle au-dessus de la page portail. Il suffit alors de choisir la date et l’heure et de cliquer sur le bouton Prévisualiser.

Ce module exploite les dates de publication et d’expiration des contenus. Il fait l’hypothèse que les contenus en cours de rédaction auront été validés à la date choisie. Quel que soit son état dans le workflow, un contenu devient visible si sa date de publication est postérieure à la date de prévisualisation. Un contenu disparait si sa date d’expiration est postérieure à la date de prévisualisation. Tout contenu est remplacé par sa copie de travail si elle existe.

Fig. 27. Interface du module de prévisualisation temporelle.

2.6 Photothèque

Le module Photothèque présente un ensemble de contenu sous forme d'images. Les contenus présentés peuvent être des photos, des vidéos, des documents bureautique ou tout type de contenu disposant d'une représentation visuelle.

Fig. 28. Le module photothèque.

Le module dispose aussi d’une fonction de navigation plein écran et d’un diaporama. Il propose le téléchargement d’images dans des résolutions données ainsi que la génération d’une archive Zip à partir d’un ensemble d’images sélectionnées.

Fig. 29. Navigation dans les images avec le module photothèque.

2.7 Intégration MS-Office

Le module Intégration MS-Office propose une nouvelle façon de travailler sur les documents. Il s’agit d’un module pour MS-Office qui ajoute pour l’ensemble des programmes de la suite (Word, Excel, PowerPoint) un accès direct aux documents de votre serveur JCMS. Ce module est une alternative à l’édition WebDAV qui est destinée à des éditions plutôt courtes et nécessite d’être connecté.

Une fois authentifié, le dépôt d'un nouveau document, se fait directement depuis l’application bureautique, simplement en cliquant sur le bouton "Déposer". Un formulaire permet de compléter les méta-données (titre, résumé et catégories).

Fig. 30. Dépôt d’un nouveau document.

Vous pouvez naviguer dans les espaces de travail, les catégories et faire des recherches sur les documents présents dans JCMS.

Fig. 31. Navigation dans les espaces de travail et les catégories depuis le volet.

Lorsque vous ouvrez un document existant, il est verrouillé et une copie est téléchargée sur le poste de l’utilisateur. Cette copie permet de travailler localement, sur des périodes longues, y compris en mode déconnecté. Le verrouillage garantit que vous serez le seul à travailler sur ce document. Un onglet information permet de consulter l’ensemble des métadonnées sur le document. Une fois que vous avez terminé, il suffit de cliquer sur le bouton "Déposer" pour mettre à jour le document sur le serveur et relâcher le verrou.

2.8 Module Génération d’aperçus

Le module Génération d'aperçus génère une vignette représentant la première page d’un document. Ce module traite les fichiers PDF, les vidéos et les audio. Il nécessite l’installation des logiciels tiers ImageMagik, Ghostscript, ffmpeg et SoX. Pour les documents bureautiques n'ayant pas d'aperçu intégré (p. ex. le format Office 2003), la présence du module de conversion PDF est nécessaire.

Fig. 32. Le module de génération d’aperçus affiche une miniature de la première page du document.

2.9 Module Kofax Capture (OCR)

Le module Kofax Capture permet de coupler JCMS avec le logiciel de numérisation et de reconnaissance de caractères Kofax Capture. Ce logiciel numérise des documents papier, effectue une lecture semi-automatique des documents et en extrait les données pertinentes. Il est par exemple capable de numériser des factures et, selon un jeu de modèles de factures, d’en extraire le nom du fournisseur, les coordonnées, la date, les montants, … Une fois ce traitement effectué, le logiciel Kofax Capture regroupe les pages numérisées dans un fichier PDF et produit un fichier XML contenant les données extraites. Le module JCMS Kofax Capture intervient lors de cette phase pour intégrer dans JCMS le document PDF et créer un contenu à partir des données du fichier XML. Ce contenu peut alors suivre une procédure de Workflow et recevoir des droits comme tout contenu JCMS. Le choix du type de contenu et le mapping à effectuer pour les champs peut être fait par paramétrage pour les cas simples ou par développement (via un DataController).

Fig. 33. Le module Kofax Capture intègre dans JCMS les documents et les données produites par le logiciel Kofax Capture.

3. Les modules mis-à-jour

3.1 Portlet Favoris

En plus de sauvegarder des favoris sur des sites externes ou des publications internes, la portlet Favoris peut désormais sauvegarder des recherches via l’icône "Ajouter à mes favoris" présente dans la liste des résultats standards. La portlet peut mémoriser tous les types de recherche (textuelle, catégories, types, dates, …) et d’affinement. Il est possible de choisir le nom associé à la recherche et une icône spécifique apparait pour ce type de favoris dans la portlet. Lorsque l’on clique sur un favori de recherche, la recherche est relancée.

Fig. 34. La portlet Favoris peut désormais sauvegarder des recherches.

3.2 Module Espaces de travail hiérarchiques

Le module Espaces de travail hiérarchiques est destiné aux sites devant gérer de grande quantité d’espaces de travail. Ce module modifie certaines parties de JCMS et il est donc fortement adhérant à la version de JCMS.

La version 4.0 de ce module est compatible avec JCMS 6.1 et intègre une nouvelle interface de navigation supportant un très grand nombre d’espaces de travail. La navigation par menus cascadés a été remplacée par une fenêtre modale avec une interface d’auto-complétion et la liste des derniers espaces visités.

Fig. 35. Nouvelle interface de navigation dans les espaces hiérarchiques.

3.3 Mises à jour technique

Les modules suivants ont bénéficié d'une mise à jour technique pour fonctionner avec JCMS 6.1 :

4. Jalios ESN

Jalios ESN est l’offre Réseau Social d’Entreprise de Jalios. Ce produit, totalement intégrable avec Jalios JCMS, s’articule autour de quatres grandes fonctionnalités.

4.1 Gestion de profil (qui est qui ?)

Les informations qui forment l’identité numérique des membres du réseau proviennent en premier lieu de l’annuaire d’entreprise (qui est généralement le service le plus consulté de l’Intranet). L’annuaire est complété par chaque personne de façon déclarative : domaines de compétence, centres d’intérêt, favoris, parcours professionnel et formation… Conformément à la stratégie de Jalios, la structure du profil est paramétrable afin de permettre l’adaptation de la solution aux besoins de l’entreprise qui décide ainsi de la nature des informations partagées dans le réseau en fonction de sa culture, de son organisation, de ses utilisateurs et de ses objectifs. Toutes les informations de profil sont stockées dans JcmsDB (sauf les domaines de compétence qui restent stockés dans JStore).

Fig. 36. Jalios ESN - Profil d’un membre.

4.2 Suivi des activités (qui fait quoi ?)

Des informations implicites enrichissent le profil en décrivant l’activité des personnes : publication de documents, participation à un forum, commentaire d’un contenu, inscription à un groupe de travail, et éventuellement activité courante (micro-blogging de type Twitter). Une personne ne voit les activités que de ses contacts directs, et ce dans le respect de la gestion des droits : par exemple, on ne sera informé qu’un membre a créé ou modifié un document que si on a accès à ce document. Tout le suivi des activités est stocké dans JcmsDB.

Fig. 37. Jalios ESN - Suivi des activités d’un utilisateur.

4.3 Gestion des experts (qui connait quoi ?)

Une des principales finalités de la mise en avant des personnes est de faciliter la recherche d’experts capables de répondre à des questions ou susceptibles d’être chargés d’une mission. Pour cela Jalios ESN s’appuie sur des branches de catégorie dédiées à la gestion des compétences. Un annuaire des experts permet de naviguer et de rechercher dans ces catégories.

Fig. 38. Jalios ESN - Annuaire des experts.

4.4 Gestion des relations (qui connait qui ?)

Après avoir identifié des experts en effectuant des recherches sur leurs domaines d’expertise, on peut se mettre directement en relation avec la personne souhaitée ou se renseigner auprès d’un intermédiaire grâce à l’indication des relations communes. Une caractéristique de l’offre Jalios ESN est de gérer des contacts partenaires, clients ou fournisseurs externes au réseau. Par exemple cela permet de savoir qui est en contact, au sein de l’entreprise, avec tel partenaire ou client sans que ce dernier ait accès au réseau de l’entreprise. Jalios ESN offre plusieurs modes de présentation de ces informations (listes, nuage des relations basé sur la proximité, cartographie, …). Pour garantir de bonnes performances le graphe des relations est maintenu en mémoire et persisté dans JcmsDB.

Fig. 39. Jalios ESN - Cartographie des relations.

4.5 Bureau Virtuel

Jalios ESN fournit un jeu de portlets destinées aux modules Bureau Virtuel et Espaces Collaboratifs :

4.5.1 Portlet Mon Profil

La portlet Mon Profil remonte à l’utilisateur les suggestions et les invitations de mise en relation. Elle permet aussi de rapidement changer son statut.

4.5.2 Portlet Mon Réseau (Etat des Membres)

La portlet Etat des Membres liste l’ensemble des membres faisant partie du réseau de l’utilisateur et affiche pour chacun son état de connexion, son état (micro-blogging) et l’événement de calendrier en cours s’il y en a un. Dans le cadre des espaces collaboratifs, cette portlet peut être affinée sur les membres de l’espace.

4.5.3 Portlet Activité de mon réseau (Activité des Membres)

La portlet Activité des Membres agrège les activités de tous les membres du réseau de l’utilisateur. Elle permet de se tenir au courant des derniers documents déposés, des dernières contributions, des nouveaux contacts ajoutés, … Dans le cadre des espaces collaboratifs, cette portlet peut être affinée sur les membres de l’espace.

Fig. 40. Jalios ESN - Les portlets Mon Profile, Mon Réseau et Activité de mon réseau dans le Bureau Virtuel.

<jalios:media doc="<%= myDoc %>" />