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>
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 |
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érateurforceMonovalued: forcer la sélection d’une seule valeurmandatory: 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 composantid: identifiant du composantclassid: identifiant de la classe du composantowner: login de l’utilisateur ayant créé le composantcreationDate: date de création du composantlastUpdateDate: date de dernière modification du composantworkflow: identifiant du workflow, ne concerne que les composants de typeTASKassignee: login de l’utilisateur à qui la tâche est assignée, ne concerne que les composants de typeTASKcontent: contenu du fichier, ne concerne que les composants de typeDOCUMENT
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 invalidefalse: 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.
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.
Courrier_Mail devient CourrierMail, soit le nom de bean contentCourrierMailVirtualFolderModify.