Appearance
BDD-37 — Pagination de la liste des fichiers espace admin
1. User Story
En tant que super administrateur Je veux paginer la liste des fichiers d'un dossier client Afin de consulter facilement un grand nombre de fichiers
2. Criteres d'acceptance
Mêmes règles que BDD-36, appliquées à l'espace admin :
- La liste des fichiers d'un dossier est paginée côté front à partir des métadonnées renvoyées par
GET /folders/:uuid/documents - La pagination n'est pas affichée si le total est inférieur ou égal à la limite par page
- La pagination est affichée si le total dépasse la limite
- Le changement de page déclenche un nouvel appel avec le bon paramètre
page - La limite par défaut est
6fichiers par page - La pagination s'applique à chaque dossier ouvert indépendamment (reset à la page 1 lors du changement de dossier)
3. Perimetre fonctionnel
- Page front:
front/src/pages/admin/folders/AdminFolderDetailPage.vue - Store front:
front/src/stores/folder-store.js - Endpoint back:
GET /folders/:uuid/documents
4. Points de verification
- Le header
Fichiers déposésaffichex fichier(s)à partir decurrentFolderDocumentsTotal q-paginationapparait uniquement sidocumentsTotalPages > 1- Le calcul du nombre de pages suit
ceil(total / limit) - Le clic sur une page appelle
folderStore.fetchFolderDocuments(folderUuid, { page: p }) - La navigation vers un nouveau dossier remet
currentFolderDocumentsPageà 1
5. Tests associes
Tests unitaires back:
back/src/api/folders/folder.service.spec.ts- retourne les documents paginés avec
takeetskip - applique le skip correct pour la page 2
- retourne
{ items, total, page, limit }
- retourne les documents paginés avec
Tests unitaires front:
front/src/__tests__/pages/admin/folders/AdminFolderDetailPage.spec.js- masque la pagination si
total <= limit - affiche la pagination si
total > limit - calcule le nombre de pages
- appelle
fetchFolderDocuments(uuid, { page: 2 })au clic - affiche le total depuis
currentFolderDocumentsTotal
- masque la pagination si
front/src/__tests__/stores/folder-store.spec.js- charge
GET /folders/:uuid/documentsavecpage=1etlimit=6 - accepte des paramètres
page/limitpersonnalisés - réutilise la page courante pour le même dossier
- reset à la page 1 lors du changement de dossier
- charge
Tests e2e front (Playwright mock):
front/e2e/pages/admin/admin-folder-detail.spec.js- affiche les fichiers de la page 1
- masque la pagination si total <= limit
- affiche la pagination et charge la page 2 pour 7 fichiers
- affiche le total correct et non
documents.length
6. Notes d'implementation
- Le backend utilise
Promise.all([findMany, count])pour optimiser la requête - Le store encode l'indépendance par dossier : l'uuid courant est tracé dans
currentFolderUuidet la pagination est reset automatiquement lors d'un changement de dossier - La limite par défaut est
6(identique à BDD-36)
