cancel
Showing results for 
Search instead for 
Did you mean: 

[Share] Problème d'affichage sur Alfresco Share

lodacom
Champ in-the-making
Champ in-the-making
Pour clarifier les choses tout de suite j'ai déjà effectué des tests sur Alfresco Explorer (la version utilisée est indiquée sur mon profil). J'ai transféré les fichiers customisés que j'avais fais pour Explorer pour les tester sur Share . Voici des bouts de code:
fichier doctechModel.xml

<!– …. –>
<constraint name="doctech:type" type="LIST">
        <parameter name="allowedValues">
          <list>
            <value>Réunion</value>
            <value>Suivi</value>
            <value>Comité</value>
          </list>
        </parameter>
    </constraint>
<!– …. –>
<type name="doctech:cpt-rendu">
<title>Compte rendu</title>
<parent>cm:content</parent>
<mandatory-aspects>
<aspect>doctech:compte-rendu</aspect>
</mandatory-aspects>
</type>
<!– …. –>
<aspect name="doctech:compte-rendu">
   <title>Compte rendu</title>
   
   <properties>
      <property name="doctech:objet-jour">
      <type>d:text</type>
      <mandatory>true</mandatory>
      </property>
      <property name="doctech:date-proch-reun">
      <type>d:datetime</type>
      <mandatory>true</mandatory>
      </property>
      <property name="doctech:type-cpt-rendu">
      <type>d:text</type>
      <mandatory>true</mandatory>
      <constraints>
                <constraint ref="doctech:type"/><!– liste de valeurs–>
        </constraints>
      </property>
   </properties>
   </aspect>
<!– …. –>
fichier web-config-custom.xml

<!–ajouter un aspect "compte rendu" à votre fichier –>
   <config evaluator="aspect-name" condition="doctech:compte-rendu">
       <property-sheet>
          <show-property name="doctech:objet-jour" display-label="Objet du jour"/>
          <show-property name="doctech:date-proch-reun" display-label="Date de la prochaine réunion" />
          <show-property name="doctech:type-cpt-rendu" display-label="Type de compte rendu" />
       </property-sheet>
    </config>
<!– …. –>
<meta-data aspect="doctech:compte-rendu" property="doctech:objet-jour" display-label="Objet du jour" />
          <meta-data aspect="doctech:compte-rendu" property="doctech:date-proch-reun" display-label="Date de la prochaine réunion" />
          <meta-data aspect="doctech:compte-rendu" property="doctech:type-cpt-rendu" display-label="Type de compte rendu" />
<!– …. –>

Pour ceux qui me demanderaient si tout se passe bien sur Explorer la réponse est oui. Enfin pas tout à fais (l'affichage lorsque l'on effectue une recherche avancée n'est pas terrible il m'affiche type-cpt-rendu au lieu de Type de compte rendu j'ai pas trouvé l'astuce). Mais là n'est pas mon problème.
Mon problème est dans l'affichage dans Share lorsque l'on veut éditer les métadonnées mais aussi si l'on veut ajouter un aspect.
Le premier problème est que au lieu d'afficher par exemple Type de compte rendu il m'affiche type-cpt-rendu (alors que sur Explorer il me l'affiche au poil comme je veux). Le deuxième problème est que les aspects que j'ai implémenté ne sont pas référencés sur Share (lorsque l'on veut ajouter un aspect à un fichier)alors que sur Explorer ils le sont parfaitement.
Voilà pour ceux qui auraient déjà essayés (et éventuellement trouver la soluce à ces deux problèmes)merci pour vos réponses.
8 REPLIES 8

bertrandf
Champ on-the-rise
Champ on-the-rise
Bonjour,

Pour votre premier problème, il vous suffit de créer un fichier properties d'internationalisation et de faire prendre en compte ce fichier à Share.

Il faut dans un premier temps créer un fichier properties, que vous nommez comme vous le souhaitez : 'doctech.properties' par exemple.
Vous pouvez positionner ce fichier dans : /tomcat/shared/classes/alfresco/messages/

Dans ce fichier, vous allez définir l'affichage de vos types et aspects :

# Aspects
aspect.doctech_compte-rendu=Aspect compte rendu

# Types
type.doctech_cpt-rendu=Type de compte rendu


Ensuite, il faut que Share sache qu'il faut qu'il aille lire ce fichier, il faut pour cela créer un bean Spring.
Pour cela, il faut ajouter un fichier 'custom-slingshot-application-context.xml' (ou reprendre le fichier custom-slingshot-application-context.xml.sample et retirer l'extension .sample).
Il est préférable de placer ce fichier dans : /tomcat/shared/classes/alfresco/web-extension/

Et définir le bean suivant :

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>
   <bean id="doctech.i18n.resources" class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
      <property name="resourceBundles">
         <list>
            <value>alfresco.messages.doctech</value>
         </list>
      </property>
   </bean>
</beans>



Ensuite pour votre deuxième problème, pour référencer les aspects dans Share, il suffit de les ajouter dans le fichier 'share-config-custom.xml'
Ce fichier se situe également dans /tomcat/shared/classes/alfresco/web-extension/
Soit vous créez un nouveau fichier soit vous prenez le fichier share-config-custom.xml.sample auquel vous retirez l'extension .sample


<alfresco-config>
   <!– Document Library config section –>
   <config evaluator="string-compare" condition="DocumentLibrary" replace="true">

      <tree>
         <!–
            Whether the folder Tree component should enumerate child folders or not.
            This is a relatively expensive operation, so should be set to "false" for Repositories with broad folder structures.
         –>
         <evaluate-child-folders>false</evaluate-child-folders>
        
         <!–
            Optionally limit the number of folders shown in treeview throughout Share.
         –>
         <maximum-folder-count>-1</maximum-folder-count>
      </tree>

      <!–
         Used by the "Manage Aspects" action

         For custom aspects, remember to also add the relevant i18n string(s)
            cm_myaspect=My Aspect
      –>
      <aspects>
         <!– Aspects that a user can see –>
         <visible>
            <!– Mon aspect –>
            <aspect name="doctech:compte-rendu" />

            <aspect name="cm:generalclassifiable" />
            <aspect name="cm:complianceable" />
            <aspect name="cm:dublincore" />
            <aspect name="cm:effectivity" />
            <aspect name="cm:summarizable" />
            <aspect name="cm:versionable" />
            <aspect name="cm:templatable" />
            <aspect name="cm:emailed" />
            <aspect name="emailserver:aliasable" />
            <aspect name="cm:taggable" />
            <aspect name="app:inlineeditable" />
            <aspect name="gd:googleEditable" />
            <aspect name="cm:geographic" />
            <aspect name="exif:exif" />
         </visible>

         <!– Aspects that a user can add. Same as "visible" if left empty –>
         <addable>
         </addable>

         <!– Aspects that a user can remove. Same as "visible" if left empty –>
         <removeable>
         </removeable>
      </aspects>

      <!–
         Used by the "Change Type" action

         Define valid subtypes using the following example:
            <type name="cm:content">
               <subtype name="cm:mysubtype" />
            </type>

         Remember to also add the relevant i18n string(s):
            cm_mysubtype=My SubType
      –>
      <types>
         <type name="cm:content">
            <!– Mon type –>
            <subtype name="doctech:cpt-rendu" />
         </type>

         <type name="cm:folder">
         </type>
      </types>

      <!–
         If set, will present a WebDAV link for the current item on the Document and Folder details pages.
         Also used to generate the "View in Alfresco Explorer" action for folders.
      –>
      <repository-url>http://localhost:8080/alfresco</repository-url>

      <!–
         Google Docs™ integration
      –>
      <google-docs>
         <!–
            Enable/disable the Google Docs UI integration (Extra types on Create Content menu, Google Docs actions).
         –>
         <enabled>false</enabled>

         <!–
            The mimetypes of documents Google Docs allows you to create via the Share interface.
            The I18N label is created from the "type" attribute, e.g. google-docs.doc=Google Docs&trade; Document
         –>
         <creatable-types>
            <creatable type="doc">application/msword</creatable>
            <creatable type="xls">application/vnd.ms-excel</creatable>
            <creatable type="ppt">application/vnd.ms-powerpoint</creatable>
         </creatable-types>
      </google-docs>

      <!–
         File upload configuration
      –>
      <file-upload>
         <!–
            Adobe Flash™
            In certain environments, an HTTP request originating from Flash cannot be authenticated using an existing session.
            See: http://bugs.adobe.com/jira/browse/FP-4830
            For these cases, it is useful to disable the Flash-based uploader for Share Document Libraries.
         –>
         <adobe-flash-enabled>true</adobe-flash-enabled>
      </file-upload>
   </config>
</alfresco-config>

lodacom
Champ in-the-making
Champ in-the-making
Bon alors j'ai testé et j'obtiens une résolution du problème d'affichage des aspects. Avec la solution indiqué:

<aspects>
         <!– Aspects that a user can see –>
         <visible>
            <!– Mon aspect –>
            <aspect name="doctech:compte-rendu" />

            <aspect name="cm:generalclassifiable" />
            <aspect name="cm:complianceable" />
            <aspect name="cm:dublincore" />
            <aspect name="cm:effectivity" />
            <aspect name="cm:summarizable" />
            <aspect name="cm:versionable" />
            <aspect name="cm:templatable" />
            <aspect name="cm:emailed" />
            <aspect name="emailserver:aliasable" />
            <aspect name="cm:taggable" />
            <aspect name="app:inlineeditable" />
            <aspect name="gd:googleEditable" />
            <aspect name="cm:geographic" />
            <aspect name="exif:exif" />
         </visible>

         <!– Aspects that a user can add. Same as "visible" if left empty –>
         <addable>
         </addable>

         <!– Aspects that a user can remove. Same as "visible" if left empty –>
         <removeable>
         </removeable>
      </aspects>
+le fichier d'internationalisation ça fonctionne au quart de poil.
Par contre pour l'affichage des métadonnées des aspects j'obtiens toujours l'affichage doctech:type-cpt-rendu (par exemple) au lieu de Type de compte rendu.
Le fichier d'internationalisation ne fonctionne pas sur ce coup là. Je le remet:

    # Aspects
    aspect.doctech_compte-rendu=Compte rendu
   aspect.doctech_proc-install=Procédure d'installation
   aspect.doctech_estim-charge=Estimation de charges
   aspect.doctech_scenar-recette=Scénario de recette
   aspect.doctech_etude=Etudes
   aspect.doctech_bon-commande=Bon de commande
   aspect.doctech_document-exploitation=Document d'exploitation
   aspect.doctech_document-technique=Document technique

    # Types
    type.doctech_type-cpt-rendu=Type de compte rendu
   
   #Properties
   #property.doctech_type-cpt-rendu=Type de compte rendu
+

      <types>
         <type name="cm:content">
         <subtype name="doctech:type-cpt-rendu" />
         </type>

         <type name="cm:folder">
         </type>
      </types>
A mon avis il faut mettre autre chose mais quoi. De plus ce que je ne comprend pas c'est que doctech:type-cpt-rendu n'est pas un sous-type appartenant au type content, c'est un attribut de l'aspect Compte rendu. Bon je reteste au cas où…
En tout cas merci beaucoup pour mon premier problème ça fonctionne parfaitement.

bertrandf
Champ on-the-rise
Champ on-the-rise
Bonjour,

Je n'ai pas compris votre problème concernant le type.
<types>
  <type name="cm:content">
    <!– Mon type –>
    <subtype name="doctech:cpt-rendu" />
  </type>

  <type name="cm:folder">
  </type>
</types>

<type name="doctech:cpt-rendu">
  <title>Compte rendu</title>
  <parent>cm:content</parent>
  <mandatory-aspects>
    <aspect>doctech:compte-rendu</aspect>
  </mandatory-aspects>
</type>

Votre type c'est bien 'doctech:cpt-rendu' et non 'doctech:type-cpt-rendu'.

Au passage, je ne vois pas trop l'intérêt de faire un type s'il n'a aucune autre propriété que celle du mandatory-aspect ? Pourquoi ne pas utiliser seulement un aspect ou seulement un type ??

Sinon pour votre problème d'affichage des métadonnées, il suffit de définir des titres à vos propriétés dans votre modèle.
<aspect name="doctech:compte-rendu">
  <title>Compte rendu</title>
  <properties>
    <property name="doctech:objet-jour">
      <title>Objet jour</title>
      <type>d:text</type>
      <mandatory>true</mandatory>
    </property>
    <property name="doctech:date-proch-reun">
      <title>Date prochaine réunion</title>
      <type>d:datetime</type>
      <mandatory>true</mandatory>
    </property>
    <property name="doctech:type-cpt-rendu">
      <title>Type compte rendu</title>
      <type>d:text</type>
      <mandatory>true</mandatory>
      <constraints>
        <constraint ref="doctech:type"/>
      </constraints>
    </property>
  </properties>
</aspect>

lodacom
Champ in-the-making
Champ in-the-making
Bon je confirme mon résultat. Les attributs des aspects ne s'affichent pas bien (doctech:type-cpt-rendu au lieu de Type de compte rendu). J'ai essayé de mettre dans le fichier d'internationalisation ceci:

#Properties
property.doctech_type-cpt-rendu=Type de compte rendu
ça ne fait absolument rien. Autre chose il ne faut surtout pas mettre ceci:

<!–<config evaluator="aspect" condition="doctech:compte-rendu">
   <forms>
      <form>
         <field-visibility>
            <show id="doctech:type-cpt-rendu" label="Type de compte rendu"/>
         <show id="doctech:date-proch-reun" label="Date de la prochaine réunion"/>
         <show id="doctech:objet-jour" label="Objet du jour"/>
         </field-visibility>
      </form>
   </forms>
   </config>–>
car les champs de base mis par défaut dans Share disparaissent au profit seulement des attributs cités plus haut. Donc à éviter…

bertrandf
Champ on-the-rise
Champ on-the-rise
Lisez plutôt les réponses …

Sinon pour votre problème d'affichage des métadonnées, il suffit de définir des titres à vos propriétés dans votre modèle.

Je ne pense pas que vous ayez besoin d'internationalisé vos labels mais le cas échéant, il faudrait créer un fichier properties associé à votre modèle (mais ca coté alfresco et non coté Share).

lodacom
Champ in-the-making
Champ in-the-making
Oui effectivement je me suis gouré (excusez moi) pour le nommage de doctech:cpt-rendu c'est doctech:type-cpt-rendu. Enfin bref. Pour l'histoire du type en fait je me suis rendu compte que comme je le disais ça me sert à que dal. Pour votre remarque à propos de:
Au passage, je ne vois pas trop l'intérêt de faire un type s'il n'a aucune autre propriété que celle du mandatory-aspect ? Pourquoi ne pas utiliser seulement un aspect ou seulement un type ??
En fait ça vient du fait que j'effectuais cette opération pour Explorer (ça me permettais de créer différents type de documents).
Pour votre réponse à propos des titres qu'il faut rajouter est tout à fait juste et ça me résout mon deuxième problème chapeau Smiley Happy . J'aimerai savoir maintenant que tous mes problèmes sont résolus si c'est possible d'intégrer dans la recherche les nouveaux aspects (ou alors c'est fait automatiquement…) car sur Explorer je faisais ceci:

<config evaluator="string-compare" condition="Advanced Search">
       <advanced-search>
<!– Aspects pour le compte rendu –>
          <meta-data aspect="doctech:compte-rendu" property="doctech:objet-jour" display-label-id="Objet du jour"/>
          <meta-data aspect="doctech:compte-rendu" property="doctech:date-proch-reun" display-label-id="Date de la prochaine réunion"/>
          <meta-data aspect="doctech:compte-rendu" property="doctech:type-cpt-rendu" display-label-id="Type de compte rendu"/>
       </advanced-search>
    </config>
 
Y a t-il un équivalent ou je peux faire un copie-colle de cette config?
Merci encore pour votre aide précieuse. Tous vos conseils m'ont été profitables. :idea:

bertrandf
Champ on-the-rise
Champ on-the-rise
Vous pouvez créer votre propre formulaire de recherche dans la recherche avancée de Share.
La configuration se fait dans le fichier share-config-custom.xml

Je vous renvoie vers la page de wiki qui est bien faite : http://wiki.alfresco.com/wiki/Share_Advanced_Search

lodacom
Champ in-the-making
Champ in-the-making
Merci encore pour votre réponse rapide. Merci aussi pour le lien direct. Je ferme le sujet car tous les problèmes ont été résolus. J'en ouvrirai un autre si jamais j'ai des problèmes pour la recherche avancée. Merci pour votre patience et votre rapidité.