Correctifs UI workflow — specs + implémentation (8 chantiers) #6

Merged
matthieu merged 16 commits from docs/workflow-ui-fixes-specs into develop 2026-05-21 08:48:32 +00:00
2 changed files with 7 additions and 9 deletions
Showing only changes of commit 276abf5ccf - Show all commits
+1 -1
View File
@@ -101,7 +101,7 @@ Exemples : `feat : add login page`, `fix(auth) : prevent null token crash`
- Middleware global `auth.global.ts` protège les routes - Middleware global `auth.global.ts` protège les routes
- Traductions dans `frontend/i18n/locales/` (le module résout `langDir` depuis `i18n/`) - Traductions dans `frontend/i18n/locales/` (le module résout `langDir` depuis `i18n/`)
- 4 espaces d'indentation - 4 espaces d'indentation
- MalioSelect : options `{ label: string, value: number | null }` uniquement — pas de string values, utiliser `<select>` natif pour les enums string - MalioSelect : options `{ label: string, value: string | number | null }` — supporte les valeurs `string` (donc les enums string comme `StatusCategory`), pas seulement `number`. Vérifié dans la source `@malio/layer-ui` (`Select.vue` : `modelValue: string | number | null`). L'option vide `null` n'est ajoutée que si `empty-option-label` est passé (ne pas le passer pour un champ requis)
- Portal client : pages sous `/portal/`, layout `portal.vue`, middleware redirige `ROLE_CLIENT` (sans `ROLE_ADMIN`) vers `/portal` - Portal client : pages sous `/portal/`, layout `portal.vue`, middleware redirige `ROLE_CLIENT` (sans `ROLE_ADMIN`) vers `/portal`
- Users admin+client : ne pas bloquer — vérifier `ROLE_CLIENT && !ROLE_ADMIN` pour les restrictions - Users admin+client : ne pas bloquer — vérifier `ROLE_CLIENT && !ROLE_ADMIN` pour les restrictions
+6 -8
View File
@@ -46,15 +46,13 @@
label="Libellé" label="Libellé"
input-class="w-full" input-class="w-full"
/> />
<select <MalioSelect
v-model="s.category" v-model="s.category"
class="h-10 rounded border border-neutral-300 px-2 text-sm" :options="categoryOptions"
aria-label="Catégorie" label="Catégorie"
> min-width="w-44"
<option v-for="c in categoryOptions" :key="c.value" :value="c.value"> group-class="shrink-0"
{{ c.label }} />
</option>
</select>
<button <button
type="button" type="button"
class="h-10 px-2 text-red-600 hover:text-red-800" class="h-10 px-2 text-red-600 hover:text-red-800"