[ERP-49] Créer la page Gestion des catégories (datatable + drawer) #22

Merged
tristan merged 5 commits from feature/ERP-49-0-7-frontend-l-creer-la-page-gestion-des-categorie into develop 2026-05-29 08:59:48 +00:00
2 changed files with 10 additions and 5 deletions
Showing only changes of commit 71ca15e1ec - Show all commits
@@ -7,7 +7,7 @@
@update:model-value="emit('update:modelValue', $event)"
>
<template #header>
<h2 class="text-[24px] font-bold">
<h2 class="text-2xl font-bold">
Outdated
Review

Magic numbers Tailwind hors echelle : text-[24px] ici et w-[150px] repete 3x sur les boutons du footer (l.54/61/68). Preferer l'echelle Tailwind (text-2xl) et factoriser la largeur des boutons (classe commune / w-36) ou laisser le bouton se dimensionner.

Magic numbers Tailwind hors echelle : `text-[24px]` ici et `w-[150px]` repete 3x sur les boutons du footer (l.54/61/68). Preferer l'echelle Tailwind (`text-2xl`) et factoriser la largeur des boutons (classe commune / `w-36`) ou laisser le bouton se dimensionner.
{{ headerLabel }}
</h2>
</template>
1
@@ -13,9 +13,12 @@
</template>
</PageHeader>
<!-- Table des categories : tri par defaut sur Nom ASC (RG-1.10).
Tri serveur applique a la requete + tri client en miroir pour
la pagination front (volumetrie cible <= 300, cf. spec § 4.1). -->
<!-- Table des categories. Affichage exhaustif (volumetrie cible
<= 300, cf. spec § 4.1) tri 100% serveur via CategoryProvider
(name ASC, RG-1.10). La barre de pagination du MalioDataTable
reste cosmetique tant qu'aucun slice client n'est cable : a
Outdated
Review

Le commentaire au-dessus (l.16-18) et l.93 affirment un "tri client en miroir" et une "pagination front via MalioDataTable". Or aucun des deux n'existe reellement :

  • loadCategories n'envoie aucun param de tri : le name ASC vient uniquement du defaut serveur (CategoryProvider), pas d'un tri client.
  • La pagination n'est pas cablee : ni :page, ni @update:page, et les items ne sont jamais slices. DataTable.vue rend tous les items et affiche la barre des que totalItems > 0. Au-dela de 10 categories on obtient donc une barre de pagination non fonctionnelle (clic page 2 = rien, toutes les lignes restent visibles).

A corriger : soit aligner le commentaire sur le comportement reel (tri 100% serveur, affichage de toute la liste), soit cabler une vraie pagination front (page/perPage locales + slice). Note : meme situation sur sites.vue — a trancher globalement cote layer-ui plutot que par module.

Le commentaire au-dessus (l.16-18) et l.93 affirment un "tri client en miroir" et une "pagination front via MalioDataTable". Or aucun des deux n'existe reellement : - `loadCategories` n'envoie aucun param de tri : le name ASC vient uniquement du defaut serveur (`CategoryProvider`), pas d'un tri client. - La pagination n'est pas cablee : ni `:page`, ni `@update:page`, et les items ne sont jamais slices. `DataTable.vue` rend *tous* les items et affiche la barre des que `totalItems > 0`. Au-dela de 10 categories on obtient donc une barre de pagination non fonctionnelle (clic page 2 = rien, toutes les lignes restent visibles). A corriger : soit aligner le commentaire sur le comportement reel (tri 100% serveur, affichage de toute la liste), soit cabler une vraie pagination front (page/perPage locales + slice). Note : meme situation sur sites.vue — a trancher globalement cote layer-ui plutot que par module.
traiter cote @malio/layer-ui le jour ou la volumetrie monte. -->
<MalioDataTable
:columns="columns"
:items="categoryItems"
@@ -90,7 +93,9 @@ function onRowClick(item: Record<string, unknown>) {
/**
* Charge la liste des categories. Le serveur exclut les soft-deleted par
* defaut (RG-1.08) et trie par name ASC (RG-1.10). Pas de pagination
* serveur (RG : volumetrie ≤ 300, pagination front via MalioDataTable).
* serveur (volumetrie cible <= 300) ni de slice client — toute la liste
* est rendue d'un coup ; la barre du MalioDataTable est donc cosmetique
* jusqu'a la mise a jour layer-ui (ticket ERP-70).
*
* Logique inline volontaire au M0 (decision prompt ERP-49) : extraction
* en composable `useCategoriesAdmin` au ticket 0.8 (ERP-50).
1