Rendre dynamique la visibilité des champs d'un formulaire

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

Rendre dynamique la visibilité des champs d'un formulaire

Bonjour,

La question est plus ou moins dans le titre, j'ai ajouté un nouveau type de donnée dans mon modèle de données.

<type name="moi:montype">
  <title>titre type</title>
  <parent>cm:content</parent>
  <mandatory-aspects>
    <aspect>moi:monaspect</aspect>
  </mandatory-aspects>
</type>

Celui-ci utilise un nouvel aspect dans lequel j'ai indiqué un nouveau champ

<aspect name="moi:monaspect">
  <title>titre aspect</title>
  <properties>
    <property name="moi:monchamp">
      <type>d:text</type>
      <mandatory>false</mandatory>
    </property>
    …
  </properties>
</aspect>

J'ai ensuite affiché ce nouveau champ dans un formulaire dans Share via la modification du fichier share-config-custom.xml.

<config evaluator="node-type" condition="moi:montype">
  <forms>
    <form>
      <field-visibility>
        <show id="moi:monchamp"/>
        …
      </field-visibility>
      <appearance>
        <field id="moi:monchamp" label="Champ texte" />
        …
      </appearance>
    </form>
  </forms>
</config>

Jusque là, j'ai pu tester ma configuration, et le nouveau champ s'affiche convenablement.
Mais j'aimerais bien aller plus loin, et conditionner par exemple l'affichage du champ selon le groupe auquel appartient l'utilisateur connecté.
Si l'utilisateur connecté fait partie du groupe "groupe privilégié", alors le champ s'affiche, sinon il ne s'affiche pas.

Pensez-vous que c'est réalisable ? Est-ce que je dois créer un nouveau contrôle? créer 2 formulaires? jouer avec la propriété force="true" ??!
J'ai beau regarder dans la documentation, je ne vois pas comment faire.
Si vous pouviez m'indiquer une piste de recherche.

Merci pour votre aide.
2 Replies
jayjayecl
Active Member II

Re: Rendre dynamique la visibilité des champs d'un formulaire

Bonjour,

En effet un custom control me semble être la piste la plus adéquate :
http://wiki.alfresco.com/wiki/Forms#Configuring_Controls
fop6316
Member II

Re: Rendre dynamique la visibilité des champs d'un formulaire

Merci pour ce premier élément de réponse.
Je vois un contrôle invisible.ftl qui fait ce que je veux.
L'idéal serait de pouvoir utiliser ce contrôle à la place de celui par défaut selon une condition.
J'espère que c'est faisable, parce que si je dois créer un nouveau contrôle pour chaque type de champ …