Formulaire

Référence rapide

ComponentSearchPresenter

Propriété Type Description
title List<I18NLabel> Titre du formulaire de recherche
description List<I18NLabel> Description affichée sous le titre
categorySelectorPresenter Bean Catégorie de composant (document, dossier, etc.)
keywordCriteriaPresenter Bean Configuration de la barre de recherche par mot-clé
advancedCriteriaPresenter Bean Configuration du panneau de critères avancés
hiddenRequest SearchRequest Requête de recherche cachée (détails)
hiddenColumns List<String> Colonnes à masquer dans les résultats (détails)
responsePresenterProvider Bean Mode d’affichage des résultats (détails)
actions List<Bean> Actions disponibles sur le formulaire (détails)
enableActionsIfDirty boolean Afficher les actions avant l’exécution de la recherche (défaut : true)
enableIfInvalid boolean Autoriser la recherche si le formulaire est invalide (défaut : false)
emptyResultsMessages List<I18NLabel> Message personnalisé si aucun résultat

KeywordCriteriaPresenter

Propriété Type Description
enabled boolean Activer/désactiver la recherche par mot-clé (défaut : true)
fields List<String> Tags sur lesquels rechercher (défaut : tous les tags)
showSearchButton boolean Afficher un bouton de recherche dédié (défaut : false)
searchButtonTitle List<I18NLabel> Libellé personnalisé du bouton de recherche

AdvancedCriteriaPresenter

Propriété Type Description
enabled boolean Activer/désactiver la recherche avancée (défaut : true)
forceOpen boolean Ouvrir la recherche avancée et masquer le bouton de réduction (défaut : false)
displayClassSelector boolean Afficher le sélecteur de classe (défaut : true)
addEmptyCriterion boolean Permettre l’ajout de critères libres avec le bouton + (défaut : true)
showSearchButton boolean Afficher le bouton de recherche (défaut : false)
searchButtonTitle List<I18NLabel> Libellé personnalisé du bouton de recherche (défaut : Rechercher)
fixedCriterionPresenters List<Bean> Critères pré-configurés affichés par défaut
searchableCriteria List<String> Restreindre les critères disponibles à cette liste (remplace unsearchableCriteria)
unsearchableCriteria List<String> Masquer des tags spécifiques des critères disponibles
nonUniqueCriteria List<String> Permettre à un tag d’apparaître comme plusieurs critères
activateUniqueCriteria boolean Forcer l’unicité des critères (défaut : true)
classCriterionPresenter Bean Sélecteur de classe personnalisé

Sélecteur de catégorie

Chaque recherche cible une catégorie de composant (documents, dossiers, etc.). Un sélecteur de catégorie est disponible par défaut. Pour le masquer, utilisez FakeCategorySelectorPresenter pour définir la catégorie directement :

<property name="categorySelectorPresenter">
        <bean class="com.flower.docs.gui.client.search.criteria.item.FakeCategorySelectorPresenter">
            <property name="value">
                <value type="com.flower.docs.domain.component.Category">VIRTUAL_FOLDER</value>
            </property>
        </bean>
</property>

Recherche par mot clés

Activer la recherche par mot clés :

<property name="keywordCriteriaPresenter">
	<bean class="com.flower.docs.gui.client.search.criteria.KeywordCriteriaPresenter" />
</property>

Désactiver :

<property name="enabled" value="false" />

Restreindre la recherche par mot-clé à des tags spécifiques :

<property name="fields">
    <list>
    	<value>Matricule</value>
    	<value>Contractor</value>
    </list>
</property>

Afficher un bouton de recherche dédié :

<property name="showSearchButton" value="true" />

Le libellé du bouton peut être personnalisé avec la propriété searchButtonTitle à l’aide de labels I18N.

Recherche avancée

Activer la recherche avancée :

<property name="advancedCriteriaPresenter">
    <bean class="com.flower.docs.gui.client.search.criteria.advanced.AdvancedCriteriaPresenter" />
</property>

Désactiver :

<property name="enabled" value="false" />

Masquer le sélecteur de classes :

<property name="displayClassSelector" value="false" />

Ouvrir la recherche avancée et masquer le bouton de réduction :

<property name="forceOpen" value="true" />

Surcharger le libellé par défaut Rechercher du bouton :

<property name="searchButtonTitle">
	<list>
		<bean class="com.flower.docs.domain.i18n.I18NLabel">
			<property name="language" value="EN"/>
			<property name="value" value="Verify"/>
		</bean>
		<bean class="com.flower.docs.domain.i18n.I18NLabel">
			<property name="language" value="FR"/>
			<property name="value" value="Vérifier"/>
		</bean>
	</list>
</property>


En utilisant un critère de recherche sur un tag CONDITIONAL, si le tag dont il dépend n’est pas renseigné, l’ensemble des valeurs du tag CONDITIONAL est affiché.

Critères libres

Par défaut, l’ensemble des classes de tags définies comme recherchables peuvent être ajoutées comme critère de recherche. Afin de restreindre la portée des recherches :

  • Empêcher les utilisateurs d’ajouter un critère libre grâce au bouton + :

    <property name="addEmptyCriterion" value="false" />
  • Masquer un tag dans la liste des critères disponibles :

    <property name="unsearchableCriteria">
    	<list>
    		<value>ServiceName</value>
    		<value>Assignee</value>
    	</list>
    </property>
  • Forcer les tags pouvant être utilisés comme critères (remplace unsearchableCriteria) :

    <property name="searchableCriteria">
    	<list>
    		<value>Nature</value>
    	</list>
    </property>

Critères fixes

Les critères fixes sont des champs pré-configurés affichés par défaut. L’utilisateur n’a plus qu’à les remplir avant d’exécuter sa recherche.

Chaque critère fixe est défini comme un bean FilterCriterionPresenter avec une propriété model contenant un objet Criterion. Le critère définit le nom du tag, le type de données et l’opérateur par défaut.

Les propriétés configurables sont :

Propriété Type Description
model Criterion (obligatoire) Le critère de recherche définissant name, type et operator
description List<I18NLabel> Texte indicatif affiché dans le champ de saisie
displayOperatorSelector boolean Afficher ou masquer la liste déroulante de sélection d’opérateur (défaut : true)
forceMonovalued boolean Forcer l’utilisateur à ne sélectionner qu’une seule valeur pour un critère normalement multivalué (défaut : false)
mandatory boolean Rendre le champ obligatoire avant de pouvoir exécuter la recherche (défaut : false)

Types de critères et opérateurs

Chaque critère doit déclarer un type et un operator. Les opérateurs disponibles dépendent du type :

Type Description Opérateurs disponibles
STRING Champ texte CONTAINS, EQUALS_TO, STARTS_WITH, ENDS_WITH, DIFFERENT
TIMESTAMP Sélecteur de date BETWEEN
BOOLEAN Case à cocher EQUALS_TO
INTEGER Champ numérique EQUALS_TO, LESS_THAN, GREATER_THAN, DIFFERENT
CURRENCY Champ monétaire EQUALS_TO, LESS_THAN, GREATER_THAN, DIFFERENT


Pour les tags de type liste de choix et les tags conditionnels, les opérateurs disponibles sont EQUALS_TO et DIFFERENT.

Exemples

Seuls name, type et operator changent entre les types de critères – consultez le tableau ci-dessus pour les combinaisons valides.

Critère texte avec une description (texte indicatif) :

<bean id="FirstnameCriterionPresenter" class="com.flower.docs.gui.client.search.criterion.FilterCriterionPresenter">
    <property name="model">
        <bean class="com.flower.docs.domain.search.Criterion">
            <property name="name" value="Firstname" />
            <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">CONTAINS</value>
            </property>
        </bean>
    </property>
    <property name="description">
        <list>
            <bean class="com.flower.docs.domain.i18n.I18NLabel">
                <property name="language" value="EN"/>
                <property name="value" value="Collaborator firstname"/>
            </bean>
            <bean class="com.flower.docs.domain.i18n.I18NLabel">
                <property name="language" value="FR"/>
                <property name="value" value="Prénom du collaborateur"/>
            </bean>
        </list>
    </property>
</bean>

Critère obligatoire avec sélecteur d’opérateur masqué :

<bean id="ValidationStatusCriterionPresenter" class="com.flower.docs.gui.client.search.criterion.FilterCriterionPresenter">
    <property name="description">
        <list>
            <bean class="com.flower.docs.domain.i18n.I18NLabel">
                <property name="language" value="EN"/>
                <property name="value" value="Enter a value"/>
            </bean>
            <bean class="com.flower.docs.domain.i18n.I18NLabel">
                <property name="language" value="FR"/>
                <property name="value" value="Saisissez une valeur"/>
            </bean>
        </list>
    </property>
    <property name="displayOperatorSelector" value="false" />
    <property name="forceMonovalued" value="true" />
    <property name="mandatory" value="true" />
    <property name="model">
        <bean class="com.flower.docs.domain.search.Criterion">
            <property name="name" value="ValidationStatus" />
            <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">STARTS_WITH</value>
            </property>
        </bean>
    </property>
</bean>

Affecter les critères à la recherche avancée

Pour affecter des critères fixes à une recherche avancée :

<property name="fixedCriterionPresenters">
    <list>
        <ref bean="FirstnameCriterionPresenter" />
        <ref bean="creationDateCriterion" />
        <ref bean="ConfidentialCriterion" />
    </list>
</property>

Critères multiples :

Par défaut, chaque tag présent dans la liste des critères ne peut être utilisé qu’une seule fois. Pour permettre à un tag de correspondre à plusieurs critères, utilisez la propriété nonUniqueCriteria :

<property name="nonUniqueCriteria">
	<list>
		<value>name</value>
		<value>TIAmount</value>
		<value>creationDate</value>
	</list>
</property>

Désactiver entièrement l’unicité des critères :

<property name="activateUniqueCriteria" value="false" />

Sélecteur de classe

Personnalisez le sélecteur de classe avec un bean ComponentClassCriterionSelectorPresenter. Il supporte les mêmes propriétés que les critères filtres :

  • displayOperatorSelector : masquer le sélecteur d’opérateur
  • forceMonovalued : forcer la sélection d’une seule valeur
  • mandatory : rendre le champ obligatoire

Exemple :

<bean id="classIdCriterionPresenter" class="com.flower.docs.gui.client.search.criteria.clazz.ComponentClassCriterionSelectorPresenter">
	<property name="displayOperatorSelector" value="false" />
	<property name="forceMonovalued" value="true" />
	<property name="mandatory" value="true" />
	<property name="model">
		<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>
		</bean>
	</property>
</bean>

Le sélecteur de classe CreatableTaskClassCriterionSelectorPresenter n’affiche que les tâches sans pièces jointes obligatoires ou techniques, et où l’utilisateur a les droits de création.

Affectez un critère de classe à une recherche avancée avec la propriété classCriterionPresenter :

<property name="advancedCriteriaPresenter">
		<bean class="com.flower.docs.gui.client.search.criteria.advanced.AdvancedCriteriaPresenter">
			<property name="enabled" value="true" />
			<property name="displayClassSelector" value="true" />
			<property name="showSearchButton" value="true" />
			<property name="classCriterionPresenter" ref="classIdCriterionPresenter" />
		</bean>
</property>

Filtres

Lorsqu’une agrégation est définie pour la requête cachée du formulaire de recherche, les résultats sont affichés sous forme d’arborescence. Lors de la sélection d’un bucket, la recherche est exécutée avec les critères correspondant au bucket.

Données techniques

Les informations techniques positionnées par FlowerDocs peuvent également être utilisées en tant que critère ou filtre de recherche :

  • name : titre du composant
  • id : identifiant du composant
  • classid : identifiant de la classe du composant
  • owner : login de l’utilisateur ayant créé le composant
  • creationDate : date de création du composant
  • lastUpdateDate : date de dernière modification du composant
  • workflow : identifiant du workflow, ne concerne que les composants de type TASK
  • assignee : login de l’utilisateur à qui la tâche est assignée, ne concerne que les composants de type TASK
  • content : contenu du fichier, ne concerne que les composants de type DOCUMENT


Pour pouvoir rechercher sur ces données, il est nécessaire de définir un bean dataCriteriaCatalog de type com.flower.docs.gui.client.search.SearchableFieldCatalog.

Validation

Contrôlez si le bouton de recherche est actif lorsque le formulaire est invalide avec la propriété enableIfInvalid :

  • true : autoriser la recherche même si le formulaire est invalide
  • false : exiger un formulaire valide pour activer le bouton de recherche

    <property name="enableIfInvalid" value="true" />

Message de résultats vides

Affichez un message personnalisé lorsque la recherche ne retourne aucun résultat avec la propriété emptyResultsMessages :

<property name="emptyResultsMessages">
    <list>
        <bean class="com.flower.docs.domain.i18n.I18NLabel">
            <property name="language" value="EN" />
            <property name="value" value="No document was found" />
        </bean>
        <bean class="com.flower.docs.domain.i18n.I18NLabel">
            <property name="language" value="FR" />
            <property name="value" value="Aucun document n'a été trouvé" />
        </bean>
    </list>
</property>

Configuration avancée de dossiers virtuels

Il est possible de configurer des filtres au sein d’un dossier virtuel et de surcharger la recherche utilisée pour ajouter ou masquer des colonnes dans la liste de résultats.

Onglet

Respectez la convention de nommage du bean de recherche :

Portée Patron du nom de bean Exemple (classe : CourrierCollective, recherche : CourrierSearch)
Toutes les recherches d’un DV content{ClassId}VirtualFolder contentCourriercollectiveVirtualFolder
Une recherche d’un DV content{ClassId}VirtualFolder{SearchId} contentCourriercollectiveVirtualFolderCourriersearch
Une recherche tous DV confondus contentVirtualFolder{SearchId} contentVirtualFolderCourriersearch


{ClassId} et {SearchId} sont en minuscules avec la première lettre en majuscule. Si l’ID contient des underscores (_), supprimez-les et mettez la lettre suivante en majuscule. Exemple : Courrier_Mail devient CourrierMail.


Exemple

	<bean id="contentCourriercollectiveVirtualFolderCourriersearch"
		class="com.flower.docs.gui.client.search.ComponentSearchPresenter"
		scope="prototype">
		<property name="responsePresenterProvider">
			<bean
				class="com.flower.docs.gui.client.search.response.TableSearchResponsePresenterProvider" />
		</property>
		<property name="categorySelectorPresenter">
			<bean
				class="com.flower.docs.gui.client.search.criteria.item.FakeCategorySelectorPresenter">
				<property name="value">
					<value type="com.flower.docs.domain.component.Category">TASK</value>
				</property>
			</bean>
		</property>
		<property name="keywordCriteriaPresenter">
			<bean
				class="com.flower.docs.gui.client.search.criteria.KeywordCriteriaPresenter">
				<property name="enabled" value="false" />
			</bean>
		</property>
		<property name="hiddenColumns">
			<list>
				<value>status</value>
				<value>classid</value>
				<value>B_DirectionDestinataire</value>
			</list>
		</property>
		<property name="advancedCriteriaPresenter">
			<bean
				class="com.flower.docs.gui.client.search.criteria.advanced.AdvancedCriteriaPresenter">
				<property name="enabled" value="true" />
				<property name="forceOpen" value="true" />
				<property name="inline" value="false" />
				<property name="displayClassSelector" value="false" />
				<property name="addEmptyCriterion" value="false" />
				<property name="showSearchButton" value="true" />
				<property name="searchButtonTitle">
					<list>
						<bean class="com.flower.docs.domain.i18n.I18NLabel">
							<property name="language" value="EN"/>
							<property name="value" value="Filter"/>
						</bean>
						<bean class="com.flower.docs.domain.i18n.I18NLabel">
							<property name="language" value="FR"/>
							<property name="value" value="Filtrer"/>
						</bean>
					</list>
				</property>
				<property name="fixedCriterionPresenters">
					<list>
						<ref bean="ObjetCriterion" />
						<ref bean="DateCriterion" />
						<ref bean="NomAdherentCriterion" />
					</list>
				</property>
				<property name="searchableCriteria">
					<list>
						<value>B_DateCourrier</value>
						<value>B_NomClient</value>
						<value>B_ObjetCourrier</value>
					</list>
				</property>
			</bean>
		</property>
	</bean>

Indexation

Les formulaires de recherche de dossiers virtuels en mode indexation suivent le même patron que les onglets, avec un suffixe {Phase} :

Portée Patron du nom de bean Exemple (classe : CourrierCollective, recherche : CourrierSearch, phase : Modify)
Toutes les recherches d’un DV content{ClassId}VirtualFolder{Phase} contentCourriercollectiveVirtualFolderModify
Une recherche d’un DV content{ClassId}VirtualFolder{Phase}{SearchId} contentCourriercollectiveVirtualFolderModifyCourriersearch
Une recherche tous DV en indexation confondus contentVirtualFolder{Phase}{SearchId} contentVirtualFolderModifyCourriersearch

Phases disponibles : Modify et ReadOnly.


La même règle pour les underscores s’applique : supprimez-les et mettez la lettre suivante en majuscule. Exemple : Courrier_Mail devient CourrierMail, soit le nom de bean contentCourrierMailVirtualFolderModify.