Customiser Share 3.4.d pour nos numéros de versions personnalisés

Dans un billet précédent, nous avons vu comment construire des numéros de versions personnalisés, en forçant l’usage des versions majeures.

Le principe n’avait alors été mis en place qu’au niveau du référentiel, l’aspect interface graphique n’ayant pas été traité. Il est temps maintenant de voir ensemble comment améliorer l’usage de Share en évitant que l’utilisateur ne soit pollué d’informations inutiles. Cette étude est elle-même découpée en deux billet : le premier (que vous êtes en train de lire) s’intéresse aux ajustements nécessaires pour Alfresco Share 3.4.d, le second traitera de la modification d’Alfresco Share 4.0.c.

Les problèmes à traiter

On observe deux problèmes principaux dans Share 3.4.d suite à la mise en place de notre numérotation à base de planètes :

  • Dans le détail d’un document, l’affichage est plutôt « lourd » avec la répétition du mot « Version »
  • Dans la fenêtre de mise à jour, l’utilisateur est invité à choisir entre version majeure et version mineure (ce qui n’a plus de sens) et l’affichage comporte des NaN (not a number) disgracieux.

Un historique de version plus lisible

L’affichage du détail d’un document est gouverné par la page document-details.xml. Cette page fait appel au « template-instance » document-details.xml qui définit les régions document-versions et repo-document-versions toutes deux mappées sur le webscript /components/document-details/document-versions. Comme leur nom l’indique, ces régions sont responsables de l’affichage des informations de versions du document pour un site ou pour le référentiel complet, respectivement.
Si l’on s’intéresse au rendu du webscript (cf. document-versions.get.html.ftl), on constate en ligne 32 que, pour chaque version, le label est généré avec :
<span class="meta-section-label theme-color-1">${msg("label.label")} ${version.label}</span>
Dans le détail ${msg(« label.label »)} vaut « Version » (définit dans les fichiers de propriétés) et ${version.label} est notre fameux label de version personnalisé.
Il suffit donc de remplacer cette ligne 32 par :
<span class="meta-section-label theme-color-1">${version.label}</span>
pour obtenir un affichage plus sympathique.
Le plus simple pour cela est à mon avis de dupliquer le fichier document-versions.get.html.ftl dans l’arborescence web-extension/site-webscripts/org/alfresco/components/document-details et d’y apporter la modification sus-mentionnée.

Un rafraîchissement des webscripts et de la page de détails plus tard, nous obtenons le résultat suivant :

Les labels de versions sont plus lisibles sans le préfixe "Version"

Uploader un document sans choisir le label de version

Les popups de chargement d’une nouvelle version d’un document sont également définies dans le template-instance document-details.xml. J’utilise ici un pluriel pour « popup » car deux sont disponibles : une si l’utilisation de flash est activée, une autre pour un chargement en HTML uniquement. Nous ne regarderons ici que le premier cas, le principe s’appliquant de la même manière au second.
Le composant pour le chargement flash est décrit dans le webscript /components/upload/flash-upload. Dans le fichier flash-upload.get.html.ftl, on trouve en ligne 28 le bloc HTML responsable de l’affichage des boutons de sélection de la version :
<div class="yui-gd">
  <div class="yui-u first">
    <span>${msg("label.version")}</span>
  </div>
  <div class="yui-u">
    <input id="${el}-minorVersion-radioButton" type="radio" name="majorVersion" checked="checked" tabindex="0"/>
    <label for="${el}-minorVersion-radioButton" id="${el}-minorVersion">${msg("label.minorVersion")}</label>
  </div>
</div>
<div class="yui-gd">
  <div class="yui-u first"> 
  </div>
  <div class="yui-u">
    <input id="${el}-majorVersion-radioButton" type="radio" name="majorVersion" tabindex="0"/>
    <label for="${el}-majorVersion-radioButton" id="${el}-majorVersion">${msg("label.majorVersion")}</label>
  </div>
</div>

On pourrait être tenté de supprimer directement ces quelques lignes, mais les effets de bords nous imposeraient de retravailler le JavaScript responsable du « calcul » des numéros de version.
Mieux vaut se contenter de cacher ces sections : pas d’impact sur le JavaScript et malgré tout atteinte de l’objectif.
Pour masquer les éléments qui nous « gênent », on peut utiliser la classe CSS hidden (définie dans le fichier css/base.css) de la manière suivante :
<div class="yui-gd hidden">
  <div class="yui-u first">
    <span>${msg("label.version")}</span>
  </div>
  <div class="yui-u">
    <input id="${el}-minorVersion-radioButton" type="radio" name="majorVersion" checked="checked" tabindex="0"/>
    <label for="${el}-minorVersion-radioButton" id="${el}-minorVersion">${msg("label.minorVersion")}</label>
  </div>
</div>
<div class="yui-gd hidden">
  <div class="yui-u first"> 
  </div>
  <div class="yui-u">
    <input id="${el}-majorVersion-radioButton" type="radio" name="majorVersion" tabindex="0"/>
    <label for="${el}-majorVersion-radioButton" id="${el}-majorVersion">${msg("label.majorVersion")}</label>
  </div>
</div>

Comme précédemment, ces modifications sont à réaliser dans la copie du fichier flash-upload.get.html.ftl dans le dossier web-extension/site-webscripts/org/alfresco/components/upload.
Un rechargement des webscripts et de la page de détails plus tard, on bénéficie de cet affichage :

Le choix de la version a disparu

A titre d’exercice, je vous laisse appliquer ce principe à la version HTML et trouver un autre petit détail qui pourrait être améliorer ;-)

Cette entrée a été publiée dans Alfresco, Technique, avec comme mot(s)-clef(s) , , , . Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Protected by WP Anti Spam