Closed dcottenc closed 2 years ago
si la liste est paginée alors les tri et filtres s'appliquent uniquement sur la page en cours plutôt que sur la totalité des documents.
Je ne comprend pas ce retour. Ce comportement a été annoncé, validé, remonté après en issue et re validé encore. C'est d'ailleurs pour ca qu'on a un filtre recherche par nom (voir issue précédente et commentaires) :
https://github.com/sigrennesmetropole/geor_tabou2_front/issues/191#issuecomment-1141246570
Le filtre '05/' ne retourne aucun resultat alors qu'il existe des documents à cette date
Je ne reproduis pas si j'enlève le '05/' qui ne sert pas plus que '05'. Le composant semble ne pas accepter ce caractère '/'. Je regarde ce point.
Voir la capture ci-dessous :
Je voudrais faire un rappel sur ce composant et les différences avec le tableau d'attributs MapStore2 (qu'il a été demandé de réutiliser) :
On utilise l'API pour récupérer les documents. Le problème étant qu'on doit utiliser la pagination car l'API est limitée dans le nombre de réponses (voir les issues liées avec les filtres de recherche). La différence avec MapStore2, c'est que la table des attributs MapStore2 utilise un flux WFS sans limite (le scroll charge les éléments supplémentaires). Donc une API sans contraintes.
Du faite de l'API, on pagine, et donc le composant avec ces filtres pour chaque champs va uniquement chercher dans tous les résultats chargés dans le tableau, donc uniquement ceux de la pagination. A la base ce fonctionnement est bon, car il est prévu pour fonctionner avec un nombre de résultats sans limite (la limite ==> L'api).
Pour rappel, la pagination est un élément fonctionnel demandé dans les specs. :
Une pagination doit permettre de charger un nombre limité de documents Les documents doivent pouvoir être filtrés dans la liste affichée Les documents doivent pouvoir être tous filtrés selon une recherche sur le champ Nom en plus du filtre par champ Les métadonnées doivent être consultables au clic sur un document dans une interface indépendance
On dégage ainsi la pagination et on va tenter de faire un comportement proche du tableau des attributs par défaut.
Solution B) Avoir un filtre de recherche avancé (déjà proposé oralement) comme pour le champ NOM sous le tableau pour les autres champs. Cela permet de passer outre des filtres par champs, mais on conserve la pagination.
Solution C) Choisir un autre composant (+++ en temps et c'est pour moi une évolution)
Solution D)
Lorsqu'on applique une recherche, la pagination n'a plus d'effet. La page 1 est alors affichée (seule page disponible) et tous les résultats sont dans le tableau.
Meilleure solution pour l'aspects fonctionnel.
@Gaetanbrl L'objectif est que les utilisateurs ne soient pas perdus et pour cela le fonctionnement des tableaux doit être homogène. Encore une fois, je n'ai pas souvenir d'avoir évoqué un tri/filtre uniquement sur la page en cours et encore moins pour la case Rechercher Nom Je te propose que j'évoque tes solutions demain avec la MOA et je te fais un retour.
Je te propose que j'évoque tes solutions demain avec la MOA et je te fais un retour.
Je viens de mettre à jour mes propositions mais les specs actuelles sont à l'origine du comportement actuel, c'est à dire choix du tableau MapStore2 + pagination
Donc je vous laisse revenir vers moi avec un choix ou d'autres solutions.
Encore une fois, je n'ai pas souvenir d'avoir évoqué un tri/filtre uniquement sur la page en cours et encore moins pour la case Rechercher Nom
Pas de soucis, comme déjà dit je peux supprimer ce champ selon les besoins.
Sinon après échange avec Pierre, la solution D est la plus pertinente dans ce que je propose @dcottenc
@Gaetanbrl Peux-tu m'indiquer si c'est le composant qui gère la pagination (il charge tous les résultats et gère les pages ) ou si c'est toi qui appelle l'API quand on clique sur une autre page (pour avoir les résultats pour une page) ?
Peux-tu m'indiquer si c'est le composant qui gère la pagination
Le composant React-data-grid est seulement un tableau qui prend des données et les affiche sans distinction (sauf spécificités). https://adazzle.github.io/react-data-grid/#/common-features
La pagination est gérée par le front + paramètres de l'API pour le contenu par page :
Le nombre de page est défini selon le nombre de résultats / le nombre à afficher par page (ex: 5). Par défaut, la page 1 s'affiche en utilisant le composant pagination front. Les changements de page également pour afficher les documents d'une page ou d'une autre.
Le contenu par page est alors chargé via l'API pour avoir les documents selon les paramètres start
et resultNumber
Les filtres de recherche sont en l'état, gérés par le composant sans aucun appel web service.
@dcottenc Remplacement en fin de réalisation pour avoir un composant similaire au tableau des attributs MS2 qui permet de :
RAF:
@dcottenc d'après les cas de test de cette issue :
Ouvrir le plugin Tabou
Refresh des autres documents au scroll si le nombre d'éléments dans le tableau est inférieur au résultat total. Dans la configuration du plugin, il est conseillé d'avoir une une valeur < = à 10.
Ce n'est normalement plus le cas.
Testé avec ces étapes :
- Limiter le paramètre "documents" à 2
- Charger le contexte Tabou
- Afficher les documents de l'opération 100 Baud Chardonnet
- Voir qu'il n'y a pas de documents avec le type "Schéma directeu"
- Saisir dans le filtre du champ "Type" les caractère "Sche"
- Voir qu'un document non présent dans le tableau s'affiche
Résultat OK
Nativement, le composant GRID ne semble pas accepter ce caractère. Cependant, les filtres sur les champs Type, Nom et Type Mime utilisent l'API pour recharger le tableau lors de la saisie d'un filtre. Il conviendra d'utiliser ce même fonctionnement pour la recherche par Date, et donc d'avoir un web service disponible.
En attendant, le filtre actuel fonctionne uniquement sur les données chargées dans le tableau et ne pourra fonctionner avec le caractère "/".
@dcottenc En attente de test et retour.
Testé et validé en PF de test Remarque : est-il possible d'avoir un ascenseur à droite qui permet d'identifier que la liste de documents est plus longue que celle affichée ?
Le filtre Date pour l'API sera ajouté dans le cadre d'une évolution
est-il possible d'avoir un ascenseur à droite qui permet d'identifier que la liste de documents est plus longue que celle affichée ?
Probablement. A tester.
L'ascenseur (à privilégier) ou une pagination est à afficher car on ne peut pas voir tous les documents de la liste à partir d'un certain nombre
L'ascenseur (à privilégier) ou une pagination est à afficher car on ne peut pas voir tous les documents de la liste à partir d'un certain nombre
A placer dans une autre issue
Je ferme, le scroll a été passé sur une autre issue.
Description
On constate les anomalies suivantes sur les tris et filtres :
Etapes pour reproduire le bug
Média / captures d'écran
Cas 1 :
avec la page 1 et 2 suivante
Le filtre Plan de masse devrait retourner deux documents (ici un seul)
Pareil pour le tri (on a un seul plan de masse au lieu de 2)
Cas 2 : Le filtre '05/' ne retourne aucun resultat alors qu'il existe des documents à cette date
Environnement
Portail Test RM (VA)