Projet esup-ecm

Recherche

Sommaire

Pages enfant
  • Les layouts et les widgets

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
<?xml version="1.0"?>

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

<extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="layouts">
<layout name="esup_document_listing_ajax">
 <!-- fichier xhtml de présentation lié au template, diffèrent selon le mode -->
      <templates>
        <template mode="any">
          /layouts/layout_listing_ajax_template.xhtml
        </template>
        <template mode="csv">
          /layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">
          /layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
<!-- définition des champs que l'on va afficher dans les colonnes du tableau listant les résultats -->
      <columns>

        <column>
         <!-- widget permettant de sélectionner le document (case à cocher) -->
          <properties mode="any">
            <property name="isListingSelectionBoxWithCurrentDocument">
              true
            </property>
            <property name="useFirstWidgetLabelAsColumnHeader">false</property>
            <property name="columnStyleClass">iconColumn</property>
          </properties>
          <properties mode="csv">
            <property name="isHidden">true</property>
          </properties>
          <properties mode="pdf">
            <property name="isHidden">true</property>
          </properties>
          <widget>listing_ajax_selection_box_with_current_document</widget>
        </column>
        <column>
          <!- widget affichant l'icone liee au type de document -->
           <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">false</property>
            <property name="columnStyleClass">iconColumn</property>
          </properties>
          <widget>listing_icon_type</widget>
        </column>
        <column>
         <!-- widget affichant le titre du doc avec un lien sur ce dernier
             champ triable -->
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">dc:title</property>
          </properties>
          <widget>listing_title_link</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="columnStyleClass">iconColumn</property>
          </properties>
          <properties mode="csv">
            <property name="isHidden">true</property>
          </properties>
          <properties mode="pdf">
            <property name="isHidden">true</property>
          </properties>
          <!-- widget affichant un cadenas si le document est verrouille -->
          <widget>listing_lock_icon</widget>
        </column>
        <column>
           <!-- widget affichant la date de modification, champ triable -->
           <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">dc:modified</property>
          </properties>
          <widget>listing_modification_date</widget>
        </column>
        <column>
           <!-- widget affichant le dernier contributeur sur le document, triable -->
           <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">dc:lastContributor</property>
          </properties>
          <widget>listing_last_contributor</widget>
        </column>
        <column>
          <!-- widget affichant le lien liveEdit -->
          <properties mode="any">
            <property name="columnStyleClass">iconColumn</property>
          </properties>
          <properties mode="csv">
            <property name="isHidden">true</property>
          </properties>
          <properties mode="pdf">
            <property name="isHidden">true</property>
          </properties>
          <widget>listing_livedit_link</widget>
        </column>
      </columns>
    </layout>
 </extension>
</component>

Dans le chapitre sur les layouts, nous avons redéfinis les types de documents pour utiliser deux layouts spécifiques à la place du layout dublin core par défaut : lightdublincore et esup-dublin-core.

Voici leur définition placée dans un fichier esup-layout -config.xml dans le répertoire config du template custom.

Bloc de code

<?xml version="1.0"?>
<component name="org.esup.ecm.layouts">
<!-- on utilise des widgets définis dans les layouts de dam -->
<require>org.nuxeo.dam.layouts</require>

<extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager" point="layouts">
    <layout name="esupdublincore">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml</template>
      </templates>
      <rows>
        <row>
          <widget>nature</widget>
        </row>
<!-- on ne souhaite pas afficher le champ droit et le champ couverture
  <row>
          <widget>rights</widget>
        </row>
        <row>
          <widget>source</widget>
        </row>
-->
        <row>
       <!-- on souhaite utiliser le widget permettant de préciser une date de création reelle du document
         Par défaut Nuxeo fixe automatiquement cette dernière à la date de création dans Nuxeo -->
          <widget>damc_authoringDate</widget>
        </row>
        <row>
          <widget>created</widget>
        </row>
        <row>
          <widget>modified</widget>
        </row>
<!--
     On ne souhaite pas afficher le champ format et le champ couverture -->
        <row>
          <widget>format</widget>
        </row>
        <row>
          <widget>language</widget>
        </row>
-->
        <row>
          <widget>expired</widget>
        </row>
          <row>
        <!-- on ajoute un champs auteur reel qui permet de renseigner l'auteur réel du document
        Par defaut Nuxeo fixant le champ auteur à l'utilisateur qui a créé le document dans Nuxeo -->
          <widget>damc_author</widget>
        </row>
        <row>
          <widget>author</widget>
        </row>
        <row>
          <widget>contributors</widget>
        </row>
        <row>
          <widget>lastContributor</widget>
        </row>
      </rows>
    </layout>

    <layout name="lightdublincore">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml</template>
      </templates>
      <rows>
        <row>
          <widget>nature</widget>
        </row>
<!--
          <row>
          <widget>rights</widget>
        </row>
        <row>
          <widget>source</widget>
        </row>
-->
        <row>
          <widget>created</widget>
        </row>
        <row>
          <widget>modified</widget>
        </row>
<!--
        <row>
          <widget>format</widget>
        </row>
        <row>
          <widget>language</widget>
        </row>
-->
        <row>
          <widget>expired</widget>
        </row>
        <row>
          <widget>author</widget>
        </row>
        <row>
          <widget>contributors</widget>
        </row>
        <row>
          <widget>lastContributor</widget>
        </row>
      </rows>
    </layout>
  </extension>
</component>