cancel
Showing results for 
Search instead for 
Did you mean: 

Rendre dynamique la visibilité des champs d'un formulaire

fop6316
Champ in-the-making
Champ in-the-making
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 2

jayjayecl
Confirmed Champ
Confirmed Champ
Bonjour,

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

fop6316
Champ in-the-making
Champ in-the-making
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 …