Perte de filtres/tris dans une liste d'une vue appelée depuis un objet externe du Menu

Tags: #<Tag:0x00007f4920cdb070>

Bonjour,

J’ai une vue qui fonctionne très bien lorsqu’elle est paramétrée en page d’accueil.

Cette vue contient une Recherche, ainsi qu’un Objet externe.

Je voudrais que cette vue soit appelée depuis un item du menu. Pour cela, j’ai créé un objet externe avec pour URL :

javascript:$ui.displayView(null, "ResaVueFacture", { nav: "new", showNav: "true" })

Cela marche très bien, néanmoins, lorsque je filtre ou ajoute un tri sur la Recherche de ma vue, ils sont automatiquement effacés et ne sont pas pris en compte.

Je voulais essayer de passer, comme dans le training, par la méthode [EXPR:HTMLTool.getViewURL(“Nom de la vue”, “params”)], sauf que lorsque je clique sur mon item du menu, j’ai le message suivant dans la console de Google Chrome :

ui-bundle.js?_=8438a1127cea928bbb20e7222e7314e0b46ec599:formatted:6519 Uncaught TypeError: Cannot read property 'replace' of null
    at XMLHttpRequest.xhr.onload (ui-bundle.js?_=8438a1127cea928bbb20e7222e7314e0b46ec599:formatted:6519)

qui correspond à une erreur au niveau de la fonction $ui.loadURL().

Est-ce que le fait de passer par du javascript implique que les filtres/tris ne sont pas pris en compte ?
Pourriez-vous me faire un retour sur la fonction HTMLTool.getViewURL qui, je pense, résoudrait mon problème ?

Simplicité version4.0 patch level P25Built on2021-01-04 23:53 (revision 8438a1127cea928bbb20e7222e7314e0b46ec599)

Merci d’avance pour votre aide,

Alexandre

Bonjour,

Les URL de la UI legacy V3 sont compatibles ascendantes mais il est bien préférable d’utiliser des verbes front directement via $ui.displayView, $ui.displayList, $ui.displayForm

Je ne vois pas de raison pour que la liste ne fonctionne pas (filtre/tri…), la seule différence entre une page d’accueil et une vue simple est l’instance utilisée (home_xxx ou panel_xxx). Avez-vous du code spécifique lié au nom de l’instance (isHomeInstance ou isPanelInstance) qui ferait un resetFilters ou resetOrders ?

On peut aussi mettre la vue en page d’accuel du domaine du menu, sans passer par un objet externe pour créer un item de menu.

On va faire un test pour voir si c’est un bug ou non sur une V4 à jour.

Merci François pour votre réponse.

J’ai aussi pensé à la solution de mettre la vue en tant que page d’accueil du domaine, mais mon problème est que j’ai 2 items (du même domaine) qui sont sensés être, à termes, des vues : et ce n’est pas possible d’avoir deux accueils pour un même domaine il me semble. C’est pourquoi j’ai abandonné l’idée (néanmoins, la vue en accueil de domaine fonctionne également, sans problèmes de filtres).

Je n’utilise pas de méthodes resetFilters/resetOrders dans mon code spécifique lié aux instances de mon objet, du moins, je n’en ai pas vues, je vais regarder plus en détails, je vous fais un retour si je m’aperçois que j’étais passé à côté d’un resetFilters ou resetOrders.
Mais si j’en utilisais, je serais sensé avoir le même problème avec ma vue en page d’accueil ? Or elle fonctionne bien en page d’accueil.

J’attends vos retours de tests alors ! Merci d’avance !

Je reproduis bien le problème, le back confond les instances home (page d’accueil) et panel (liste dans une vue) car vous êtes dans un cas hybride (objet externe qui affiche une vue en accueil). Le filtre est bien transmis par la UI mais appliqué à une mauvaise instance en back (panel et pas home).

On va corriger.

C’est corrigé pour gérer ce cas particulier

  • le choix a été d’utiliser une instance “home” pour cette vue appelée depuis le menu via objet externe, comme si c’était une page d’accueil du domaine.
  • Vous devrez vous mettre à jour quand ce sera poussé ce soir

Super ! Merci beaucoup François.