[RESOLU] Intégration d'un menu déroulant

cancel
Showing results for 
Search instead for 
Did you mean: 
rookie
Member II

[RESOLU] Intégration d'un menu déroulant

Bonjour,

J'utilise Alfresco depuis peu de temps.
Lorsque j'upload un document dans un espace, j'ai ajouté de nouveaux champs pour ledit document. Ceux-ci correspondent à des références, des numéros de versions internes ou encore au type de document. J'ai réussi à intégrer ceci dans Alfresco.
Pour cela, j'ai modifié les fichiers web-client-config-custom.xml et contentModel.xml afin d'ajouter les nouveaux champs. Jusqu'à maintenant, pas de soucis particuliers.
Toutefois, pour le type de document, je voudrais créer un menu déroulant qui puisse permettre à l'utilisateur de choisir le type de document que c'est parmi une liste prédéfinie que je vais donner (fichier Word, odt, txt, …). Y aurait-il un moyen d'implémenter cela simplement? Je pense qu'il faudrait soit modifier un fichier xml soit en créer un pour y ajouter mes noms de documents. Mais je ne sais pas par où commencer…

Des idées particulières?

Merci par avance de votre aide!
3 Replies
jayjayecl
Active Member II

Re: [RESOLU] Intégration d'un menu déroulant

Il suffira de placer des contraintes sur la propriété, l'affichage par un menu déroulant se fera de lui-ùêùe.
tout est ici :
http://wiki.alfresco.com/wiki/Constraints#Defining_Constraints_in_the_Model
rookie
Member II

Re: [RESOLU] Intégration d'un menu déroulant

Ah merci beaucoup Rodel!!!!
C'est exactement ce qu'il fallait faire!

Pour info, pour ceux qui seraient confrontés au même problème un de ces jours.
Il suffit d'éditer les fichiers contentModel.xml et web-client-config-custom.xml.
Dans contentModel.xml, il faut modifier le fichier de telle façon à intégrer ça :

      <type name="cm:content">
         <title>Content</title>
         <parent>cm:cmobject</parent>
         <archive>true</archive>
         <properties>
            <property name="cm:content">
               <type>d:content</type>
               <mandatory>false</mandatory>
               <!— Index content in the background –>
               <index enabled="true">
                  <atomic>true</atomic>
                  <stored>false</stored>
                  <tokenised>true</tokenised>
               </index>
            </property>
         <!— Champs ajoutés –>
         <property name="cm:docVersion">
               <type>d:text</type>
            </property>
         <property name="cm:program">
               <type>d:text</type>
            </property>
         <property name="cm:Ref">
               <type>d:text</type>
            </property>
         <property name="cm:docType">
               <type>d:text</type>
            <constraints>
                 <constraint type="LIST">
                    <parameter name="allowedValues">
                  <list>
                     <value>AAA</value>
                     <value>BBB</value>
                     <value>CCC</value>
                  </list>
               </parameter>
                 </constraint>
              </constraints>
            </property>
         <property name="cm:ReviewDate">
               <type>d:date</type>
            </property>
         </properties>
       <mandatory-aspects>
                  <aspect>cm:versionable</aspect>
         </mandatory-aspects>
      </type>

Et dans web-client-config-custom.xml, il faut faire ça :

<alfresco-config>

   <!– Example of overriding the from email address –>
   <config>
      <client>
         <from-email-address>notification@alfresco.com</from-email-address>
         <search-max-results>100</search-max-results>
      </client>
   </config>
   <!– Ajout de champs dans la Recherche Avancee–>
   <config evaluator="string-compare" condition="Advanced Search">
      <advanced-search>
         <content-types>
         </content-types>
         <custom-properties>
            <meta-data type="cm:content" property="deliveryDate" />
         <meta-data type="cm:content" property="program" />
         <meta-data type="cm:content" property="Ref" />
         <meta-data type="cm:content" property="docType" />
         </custom-properties>
      </advanced-search>
   </config>       
   <!– AJout du Francais - Example of adding languages to the list in the login page –>
   <config evaluator="string-compare" condition="Languages" replace="true">
      <languages>
         <language locale="fr_FR">Francais</language>
      </languages>
   </config>
   <!– Ajout de nouveaux champs dans les propriétés du contenu –>
   <config evaluator="node-type" condition="content">
    <property-sheet>
         <show-property name="docVersion" show-in-edit-mode="true" display-label-id="doc_version"/>
    </property-sheet>
    <property-sheet>
         <show-property name="deliveryDate" show-in-edit-mode="true" display-label-id="delivery_date"/>
    </property-sheet>
      <property-sheet>
         <show-property name="ReviewDate" show-in-edit-mode="true" display-label-id="review_date"/>
    </property-sheet>
    <property-sheet>
         <show-property name="program" show-in-edit-mode="true" display-label-id="program"/>
    </property-sheet>
   <property-sheet>
         <show-property name="Ref" show-in-edit-mode="true" display-label-id="ref"/>
    </property-sheet>
   <property-sheet>
         <show-property name="docType" show-in-edit-mode="true" display-label-id="doc_type"/>
    </property-sheet>
   </config>
  
   <!– Example of changing the sort direction for a view in the client –>
   <!–
   <config evaluator="string-compare" condition="Views">
      <views>
         <view-defaults>
            <topic>
               <sort-direction>ascending</sort-direction>
            </topic>
         </view-defaults>
      </views>
   </config>
   –>

   <!– Example of adding a custom icon to the Create Space dialog –>
   <!–
   <config evaluator="string-compare" condition="cm:folder icons">
      <icons>
         <icon name="space-icon-custom" path="/images/icons/space-icon-custom.gif" />
      </icons>
   </config>
   –>

   <!– The config below shows how to incorporate the example model–>
   <!– into the web client, for this to work you will need to –>
   <!– rename example-model-context.xml.sample to example-model-context.xml –>
   <!–
   <config evaluator="string-compare" condition="Content Wizards">
      <content-types>
         <type name="my:sop" />
      </content-types>
   </config>

   <config evaluator="node-type" condition="my:sop">
      <property-sheet>
         <show-property name="mimetype" display-label-id="content_type"
                        component-generator="MimeTypeSelectorGenerator" />
         <show-property name="size" display-label-id="size"
                        converter="org.alfresco.faces.ByteSizeConverter"
                        show-in-edit-mode="false" />              
         <show-property name="my:publishedDate" />
         <show-association name="my:signOff" />
         <show-property name="my:authorisedBy" />
         <show-child-association name="my:processSteps" />
      </property-sheet>
   </config>

   <config evaluator="aspect-name" condition="my:imageClassification">
      <property-sheet>
         <show-property name="my:width"/>
         <show-property name="my:height"/>
         <show-property name="my:resolution"/>
      </property-sheet>
   </config>

   <config evaluator="string-compare" condition="Action Wizards">
      <aspects>
         <aspect name="my:imageClassification"/>
      </aspects>
   </config>

   <config evaluator="string-compare" condition="Advanced Search">
      <advanced-search>
         <content-types>
            <type name="my:sop" />
         </content-types>
         <custom-properties>
            <meta-data type="my:sop" property="my:authorisedBy" />
            <meta-data aspect="my:imageClassification" property="my:resolution" />
         </custom-properties>
      </advanced-search>
   </config>
   –>
</alfresco-config>

Et ensuite redémarrer Alfresco!
Voilà!

A plus!
jayjayecl
Active Member II

Re: [RESOLU] Intégration d'un menu déroulant

Pour être un poil plus précis:  il n'y a rien de spécial a déclarer dans le web-client-config-custom.xml pour transformer l'affichage de la propriété en liste déroulante.
du moement que la propriété est déclarée (pour être affichée), Alfresco résoudra de lui-même le "component-generator" à utiliser, en lisant les choses suivantes :
- propriété de type d:text
- paramétrage MULTI

Cdt,