Recherche par défaut en colonne sur les listes d'une vue

Bonjour,

nous souhaiterions afficher la recherche (ouverte) par défaut en colonne sur nos listes et cela fonctionne correctement via l’option de paramétrage de l’objet métier “Mode de recherche en liste” (obo_nosearch), cependant, lorsqu’il s’agit d’un listing résultant d’une recherche prédéfinie, les champs d’inputs de recherche en colonne ne sont pas ouverts lorsqu’on arrive sur la page, il faut alors cliquer sur la loupe. Existe il un moyen de forcer l’affichage de la recherche ?

Nous avons regardé du coté de la méthode setListSearchVisible mais sans résultat sur les recherches prédéfinies, puis également réalisé l’équivalent via des objets externes mais ceux ci seraient plus lourds à maintenir en cas d’évolutions de nos critères de recherche/requètes sql…

Merci d’avance ! :grinning:

Bien cordialement,

Ghislain

Bonjour,

Quelle est la version de votre instance ?

Comment appelez vous votre recherche prédéfinie ? depuis une vue ?

Merci

Simplicité 5.2.12

Oui, exactement les recherches (deux onglets) sont appelées dans une vue (page d’accueil)

Bonjour,

On va regarder ce cas, car je ne vois pas de raison à priori que la préférence d’affichage des filtres ne s’applique pas dans ce cas (mais les vues / home page sont un peu différentes des listes en accès direct).

Après analyse, le paramètre d’affichage par défaut de la recherche (masqué, en colonne, en popup ou ancré à gauche) ne s’applique que sur l’instance principale quand on y accède par menu.

Je passe ce besoin en feature request, pour que l’information “affichage en colonne” remonte au niveau des metadata de l’objet, et plus uniquement au niveau du menu :

  • pour tenir compte de ce paramétrage dans certaines listes affichées (panel/home/vue)
  • et pour pouvoir spécialiser par code le mode de recherche affiché par instance (initList pour surcharger en fonction d’un contexte donné)

Etant entendu

  • que le mode “dialogue forcé si pas de filtres” ne pourra pas s’appliquer ailleurs que sur l’instance main. Si une vue comporte 3 listes on ne peut pas présenter 3 dialogues
  • qu’une liste de recherche de référence, ou d’association en masse… forceront toujours la recherche en colonne.

c’est très clair, merci pour votre réactivité.

aussi, de ma compréhension de votre dernier message, j’ai tenté plein d’espoir d’ajouter au initList :

if(this.getInstanceName().startsWith('home_ajax...) setListSearchVisible(true)

sans effet malheureusement, je pense avoir mal saisi l’effet de la méthode setListSearchVisible… pour ma culture simplicité, quel est il ?

Merci d’avance

C’est un flag global sur l’objet qui autorise la rechercher en liste ou pas (j’imagine affiche ou pas la loupe). Ca n’a rien à voir avec l’autre paramètre de “comment” ça l’affiche : en colonne, en popup, à gauche… qui n’est actuellement connu que du menu accédant à l’instance main.

PS : par code front, la méthode $ui.displayList accepte un paramètre search = column, popup, docked, false or undefined (masqué mais accessible), null (interdit de recherche)

En fait cette méthode n’est plus utilisée par la nouvelle UI V5/bootstrap. Elle ne fait donc effectivement plus rien. C’était une fonction de la UI legacy V3 lié à un paramètre d’objet _UILF_ qui a disparu depuis la V5.

En V4 on était dans un phase transitoire où les 2 fonctionnements cohabitaient, mais en V5 on va pouvoir gérer correctement le mode de recherche par défaut pour une liste embarquée dans une vue.

Pour compatibilité ascendante, on devra laisser le mode de recherche “masqué” par défaut (dans une vue on met généralement une liste déjà filtrée par recherche prédéfinie, et il n’est pas nécessaire de voir la barre de recherche ou surfiltrer sans le demander explicitement en cliquant sur la loupe).

Une nouvelle méthode setListSearchMode(char mode) permettra de la changer par code :

if (isHomeInstance()) 
  setListSearchMode(ObjectDB.SEARCH_LIST);

L’autre sera rendue deprecated.

1 Like

L’évolution a été développée en alpha et beta (5.4 et 5.3).
Elle sera poussée dans la prochaine 5.2.14 quand les tests seront concluants.

Vous devrez changer votre code par

if (isHomeInstance()) 
  // list mode = search by top columns
  setListSearchMode(ObjectDB.SEARCH_LIST);

Le mode d’accès à la recherche d’un objet via son menu reste inchangé, c’est à dire issu du paramétrage de l’objet (menu dédié à l’instance Main).

Pour les autres instances (panel et home principalement) ce n’est pas encore paramétrable via UI, il faudra utiliser setListSearchMode dans le postLoad, car leur mode est masqué par défaut et ne devra devenir que “recherche en colonne” pour compatibilité ascendante avec les UI existantes.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.