cancel
Showing results for 
Search instead for 
Did you mean: 

Comment je modifie le formulaire proposé au moment du drag'n drop?

Benjamin_Jalon1
Elite Collaborator
Elite Collaborator

Bonjour,

J'ai bien compris que quand je maintiens mon drag il m'est proposé de pouvoir saisir des valeurs dans un formulaire qui seront utilisées pour créer les documents.

J'ai modifier dans mon workspace le type créé par défaut avec le drag'n drop en faisant la manipulation suivante:

  • dans l'onglet Management > Local Configuration
  • j'active Document types configuration
  • Je choisi mon type documentaire dans le champ "Default type"

Maintenant j'aimerais pouvoir modifier le formulaire proposé pour exposer des champs que mon type documentaire implémenter. Comment fais-je ?

1 ACCEPTED ANSWER

Benjamin_Jalon1
Elite Collaborator
Elite Collaborator

En studio, c'est simple:

Contribuer cette action dans Advanced Settings > XML Extensions

<extension target="org.nuxeo.ecm.platform.actions.ActionService"
  point="actions">
 <action id="Chain.FileManager.ImportWithMetaDataInSeam"
      link="/nuxeo/dndFormCollector.faces?schema=yourschema&#038;layout=dndEdit%40create&#064;create"
      order="30" label="label.smart.import.with.md"
      help="desc.smart.import.with.md">
      <category>ContentView</category>
      <filter-id>create</filter-id>
 </action>
</extension>

yourschema est le nom du schéma qu'implémente votre type documentaire (valeur dans votre définition de type documentaire, dans l'onglet Schema dans le champ prefix.

Puis créer un Layout dans Search And Listings > Layout que vous nommerez dndEdit. Ensuite créer votre formulaire que vous voudrez exposer dans l'onglet Creation Layout

Ou bien par Nuxeo IDE, c'est un peu plus compliqué notamment dans la définition du layout:

Le formulaire affiché lorsque vous sélectionnez "Import intelligent avec méta-données" correspond au layout dndEdit@create défini dans cette contribution en bas de la page

Afin d'inclure la saisie d'une méta-donnée personnalisée, vous devez surcharger cette définition, avec une contribution ressemblant à celle ci-dessous, (bb représente le schema de votre doc type que je ne connais pas):

<?xml version="1.0"?>

<component name="org.nuxeo.ecm.platform.forms.layouts.webapp.override">
  <require>org.nuxeo.ecm.platform.forms.layouts.webapp</require>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgets">

    <widget name="myprojectmyschemaname1" type="widgetTypeYouWant">
      <labels>
        <label mode="any">label.stm.schema</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>bb:yourField</field>
      </fields>
    </widget>
    <widget name="myprojectmyschemaname2" type="widgetTypeYouWant">
      <labels>
        <label mode="any">label.stm.schema</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>bb:yourField</field>
      </fields>
    </widget>
...etc...
  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="layouts">

    <layout name="dndEdit@create">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml</template>
      </templates>
      <rows>
        <row>
          <widget>myprojectmyschemaname1</widget>
        </row>
        <row>
          <widget>myprojectmyschemaname2</widget>
        </row>
...
      </rows>

    </layout>
  </extension>

</component>

En espérant que ces informations vous permettront d'implémenter votre solution

Cordialement,

Thierry & Benjamin

View answer in original post

6 REPLIES 6

Benjamin_Jalon1
Elite Collaborator
Elite Collaborator

En studio, c'est simple:

Contribuer cette action dans Advanced Settings > XML Extensions

<extension target="org.nuxeo.ecm.platform.actions.ActionService"
  point="actions">
 <action id="Chain.FileManager.ImportWithMetaDataInSeam"
      link="/nuxeo/dndFormCollector.faces?schema=yourschema&#038;layout=dndEdit%40create&#064;create"
      order="30" label="label.smart.import.with.md"
      help="desc.smart.import.with.md">
      <category>ContentView</category>
      <filter-id>create</filter-id>
 </action>
</extension>

yourschema est le nom du schéma qu'implémente votre type documentaire (valeur dans votre définition de type documentaire, dans l'onglet Schema dans le champ prefix.

Puis créer un Layout dans Search And Listings > Layout que vous nommerez dndEdit. Ensuite créer votre formulaire que vous voudrez exposer dans l'onglet Creation Layout

Ou bien par Nuxeo IDE, c'est un peu plus compliqué notamment dans la définition du layout:

Le formulaire affiché lorsque vous sélectionnez "Import intelligent avec méta-données" correspond au layout dndEdit@create défini dans cette contribution en bas de la page

Afin d'inclure la saisie d'une méta-donnée personnalisée, vous devez surcharger cette définition, avec une contribution ressemblant à celle ci-dessous, (bb représente le schema de votre doc type que je ne connais pas):

<?xml version="1.0"?>

<component name="org.nuxeo.ecm.platform.forms.layouts.webapp.override">
  <require>org.nuxeo.ecm.platform.forms.layouts.webapp</require>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgets">

    <widget name="myprojectmyschemaname1" type="widgetTypeYouWant">
      <labels>
        <label mode="any">label.stm.schema</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>bb:yourField</field>
      </fields>
    </widget>
    <widget name="myprojectmyschemaname2" type="widgetTypeYouWant">
      <labels>
        <label mode="any">label.stm.schema</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>bb:yourField</field>
      </fields>
    </widget>
...etc...
  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="layouts">

    <layout name="dndEdit@create">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml</template>
      </templates>
      <rows>
        <row>
          <widget>myprojectmyschemaname1</widget>
        </row>
        <row>
          <widget>myprojectmyschemaname2</widget>
        </row>
...
      </rows>

    </layout>
  </extension>

</component>

En espérant que ces informations vous permettront d'implémenter votre solution

Cordialement,

Thierry & Benjamin

Bonjour,

Please create a new question...

done

Pierre_Jenicot1
Star Contributor
Star Contributor

Bonjour,

Florent_Guillau
World-Class Innovator
World-Class Innovator
  • this is not an answer