Les différents types d’onglet

    Onglets basés sur une URL

    Pour permettre une meilleure intégration avec d’autres applications du système d’information, FlowerDocs permet d’ajouter des onglets à l’interface graphique basés sur une URL.

    Pour ajouter un nouvel onglet de ce type, il suffit d’ajouter le propriété suivante au profile utilisateur concerné : tab.url=<Nom de l'onglet>(<URL>)

    Onglets basés sur un dossier

    FlowerDocs offre la possibilité de définir de nouveaux onglets basés sur des dossiers (physiques ou virtuels).

    Le principe consiste en l’affichage d’un écran divisé en deux :

    • une barre latérale : présente les différentes aggrégations hiérarchiques (ex: documents par statut de validation)
    • un contenu : présente les documents référencés sous forme de tableau triable (ex: les documents d’un statut donné)

    Pour ajouter un nouvel onglet, il suffit d’ajouter le propriété suivante au profile utilisateur concerné :

    • tab.folder=<identifiant du dossier physique>
    • tab.virtualfolder=<identifiant du dossier virtuel>

    Le nom de l’onglet affiché dans l’IHM correspond au nom du dossier.

    La sécurité de ces onglets est assurée via l’ACL portée par le dossier.

    Onglets basés sur une recherche

    Il est possible de définir des onglets à partir d’une recherche de dossiers (physiques ou virtuels). Dans ce cas l’ensemble des dossiers remontés par la recherche sera affiché en tant qu’onglets.

    Pour ajouter de nouveaux onglets basés sur une recherche, il faut ajouter le propriété suivante au profil utilisateur concerné :

    • tab.component.resolve=<nom de la recherche>

    Et définir la recherche dans le fichier de configuration de la GUI la recherche associée

    Dans l’exemple suivant, la recherche remontera le dernier dossier agent créé:

    <bean id="agentFolderSearch" class="com.flower.docs.domain.search.Search">
    	<property name="category">
    		<value type="com.flower.docs.domain.component.Category">VIRTUAL_FOLDER</value>
    	</property>
    	<property name="request">
    		<bean class="com.flower.docs.domain.search.SearchRequest">
    			<property name="filterClauses">
    				<list>
    					<bean class="com.flower.docs.domain.search.AndClause">
    						<property name="criteria">
    							<list>
    								<bean class="com.flower.docs.domain.search.Criterion">
    									<property name="name" value="name" />
    									<property name="type">
    										<value type="com.flower.docs.domain.search.Types">STRING</value>
    									</property>
    									<property name="operator">
    										<value type="com.flower.docs.domain.search.Operators">DISPLAY</value>
    									</property>
    								</bean>
    								<bean class="com.flower.docs.domain.search.Criterion">
    									<property name="name" value="classid" />
    									<property name="type">
    										<value type="com.flower.docs.domain.search.Types">STRING</value>
    									</property>
    									<property name="operator">
    										<value type="com.flower.docs.domain.search.Operators">EQUALS_TO</value>
    									</property>
    									<property name="values">
    										<list>
    											<value>DossierAgent</value>
    										</list>
    									</property>
    								</bean>
    							</list>
    						</property>
    					</bean>
    				</list>
    			</property>
    			<property name="start" value="0" />
    			<property name="max" value="1" />
    			<property name="orderClauses">
    				<list>
    					<bean class="com.flower.docs.domain.search.OrderClause">
    						<property name="name" value="creationDate" />
    						<property name="ascending" value="false" />
    					</bean>
    				</list>
    			</property>
    		</bean>
    	</property>
    </bean>
    

    Ordre des onglets

    L’ordre de l’ensemble des onglets peut être redéfini pour chaque équipe. Pour définir l’ordre des onglets d’une équipe, il faut lui rajouter la propriété tabs.order.

    La valeur de cette propriété doit être définie sur le modèle suivant: ${TabType1}(${TabName1});${TabType2}(${TabName2});${TabType#} = type d’onglet et ${TabName#} = nom de l’onglet

    Le type d’onglet peut prendre les valeurs suivante :

    Valeurs Description
    NATIVE Onglet natif Flower
    FOLDER Onglet basé sur un dossier
    VIRTUALFOLDER Onglet basé sur un dossier virtuel
    URL Onglet basé sur une URL
    RESOLVED_COMPONENT Onglet(s) basé(s) sur une recherche

    La valeur du nom d’un onglet dépend de son type :

    Type Nom
    FOLDER Identifiant du dossier
    VIRTUALFOLDER Identifiant du dossier virtuel
    URL Nom de l’onglet défini dans la propriété tab.url
    RESOLVED_COMPONENT Nom de la recherche définie dans la propriété tab.component.resolve

    Pour les onglets natifs le nom peut prendre les valeurs suivantes :

    Valeurs Description
    ADMIN Onglet d’administration
    HOME Onglet d’acceuil
    INSERT Onglet d’insertion
    REPORTING Onglet de reporting
    SEARCH Onglet de recherche

    Attention : Tous les onglets à afficher doivent être définis.

    Exemple : L’exemple suivant permet d’afficher les onglets dans l’ordre suivant Administration, Onglet URL “Documentation”, Onglet dossier virtuel “root”, Onglet dossier “Arondor-2015”.

    Les trois derniers onglets doivent être préalablement définis au niveau des propriétés tab.url, tab.virtualfolder et tab.folder :

    NATIVE(ADMIN);URL(Documentation);VIRTUALFOLDER(root);FOLDER(Arondor-2015);

    La page par défaut est celle affichée par défaut à la connexion.

    Pour configurer la page par défaut, il suffit de rajouter une propriété sur le profile correspondant, par exemple : place.default=home

    Les différentes valeurs supportées sont :

    Valeurs Description
    home Page d’accueil
    search(templateName) Ecran de recherche avec nom de template de recherche facultatif
    store Ecran d’insertion de fichier
    reporting Ecran de reporting
    admin Console d’administration
    browse(id) Onglet de consultation de dossier virtuel
    componentResolve(templateName) Onglet de composant basé sur une recherche

    Deux cas particulier :

    • La recherche : le mot clé search peut prendre un argument : search(search_template_id)
    • Les dossiers virtuels : il est nécessaire de préciser l’identifiant du dossier virtuel en paramètre

    Raccourcis de création

    Le bouton Créer présent dans la barre de menu permet de faciliter l’accès à la création d’un composant d’une classe donnée.

    Ce bouton se configure à l’aide d’objet de type ComponentReference permettant de définir :

    • category : le type d’objet à créer (document, dossier, tâche…)
    • id : l’identifiant de la classe

    Exemple : Référence d’un document de classe DocumentAgent

    <bean id="documentAgentRef" class="com.flower.docs.domain.component.ComponentReference">
    	<property name="category">
    		<value type="com.flower.docs.domain.component.Category">DOCUMENT</value>
    	</property>
    	<property name="id">
    		<bean class="com.flower.docs.domain.common.Id">
    			<property name="value" value="DocumentAgent" />
    		</bean>
    	</property>
    </bean>	
    

    Cette référence doit ensuite être ajoutée dans le bouton raccourci. Pour cela, il est nécessaire d’éditer la configuration du bean componentCreationShortcuts (ou le définir s’il n’existe pas) tel que :

    <bean id="componentCreationShortcuts" class="java.util.ArrayList">
       <constructor-arg>
         <list>
           <ref bean="documentAgentRef"/>
         </list>
       </constructor-arg>
    </bean>
    

    Par défaut, la création de document est effectuée en passant par la place d’insertion de document puis celle d’indexation, ce qui permet d’afficher le contenu du document lors de son indexation.

    Il est également possible d’avoir un comportement similaire aux autres types de composants et créer ceux-ci en popup en renseignant la propriété d’une équipe shortcut.document.creation.popup avec la valeur true.

    Raccourcis vers une place

    Le bouton Créer présent dans le menu principal permet également de faciliter l’accès à une place (ou écran). Ce bouton se configure à l’aide d’objet PlaceReference permettant de définir :

    Valeurs Description
    title Titre de l’action ajoutée dans le menu Créer
    icon Icône de l’action
    place Place à ouvrir

    Ce type de raccourci se configure par équipe d’utilisateur.

    Exemple : Référence d’une place createWithVerificationPlace

    <bean id="CreateWithVerificationRef" class="com.flower.docs.gui.client.layout.shortcut.PlaceReference">
      <property name="title" value="Enveloppe" />
      <property name="place" ref="createWithVerificationPlace" />
      <property name="icon" value="fas fa-envelope"/>
    </bean>
    

    Il est également possible d’ouvrir une place dans une popup de la même façon avec un bean de type ActivityReference. Les propriétés additionnelles sont :

    Valeurs Description
    popupTitle Titre de la popup
    description Description de la popup
    style Style de la popup

    Exemple : Référence d’une place en tant que popup createWithVerificationPlace

    <bean id="CreateWithVerificationRef" class="com.flower.docs.gui.client.layout.shortcut.ActivityReference">
      <property name="title" value="Enveloppe" />
      <property name="icon" value="fas fa-envelope"/>
      
      <property name="popupTitle" value="Création d'enveloppe" />
      <property name="description" value="Avant de créer une enveloppe, merci de vérifier que celle-ci n'existe pas déjà" />
      <property name="style" value="envelope" />
      <property name="place" ref="createWithVerificationPlace" />
    </bean>