df8e44fcfa
Auto Tag Develop / tag (push) Successful in 8s
## Summary Mise a jour de la lib `@malio/layer-ui` de `^1.7.2` vers `^1.7.3` et adaptation des ecrans pour deux changements visuels apportes par la lib : - Le slot message (`error || success || hint`) sous les composants Malio est desormais **toujours rendu** dans le DOM (~16px en bas), pour eviter le saut de mise en page quand un champ passe en erreur. - Nouvelle classe utilitaire `w-m-btn-action` pour standardiser la largeur des boutons d'action (remplacement du fix `w-[150px]`). ## Details - **Bump dependance** : `frontend/package.json` + `frontend/package-lock.json` (`@malio/layer-ui` `^1.7.2` -> `^1.7.3`) - **Boutons d'action** : 12 occurrences `button-class=\"w-[150px]\"` migrees vers `button-class=\"w-m-btn-action\"` dans `CategoryDrawer`, `RoleDrawer`, `SiteDrawer`, `UserRbacDrawer`, `audit-log` - **Espacements formulaires** : rabotage des `gap-*` / `space-y-*` sur les conteneurs colonne (forms drawers, listes de checkbox, grille dates du drawer filtres audit-log, accordeon permissions, login) pour absorber le slot message desormais toujours present (16px) - **Alignements verticaux** : compensation `pb-4` sur les voisins non-Malio dans les conteneurs `items-center` — puce couleur du `SiteDrawer` (`<div class=\"shrink-0 pb-4\">` autour du span) et labels `Du` / `Au` du drawer filtres `audit-log` (`<span class=\"pb-4\">`) - **Layout** : reduction du padding lateral xl: dans `default.vue` (`xl:px-[170px]` -> `xl:px-[44px]`) ## Test plan - [x] `make nuxt-test` (103/103 OK localement) - [x] `make test` (322/322 OK localement) - [x] Validation visuelle drawer Categories (Create / Edit / Delete) - [x] Validation visuelle drawer Roles + accordeon permissions - [x] Validation visuelle drawer Sites (puce couleur centree avec le champ) - [x] Validation visuelle drawer Users RBAC - [x] Validation visuelle page Audit Log (table + drawer filtres : dates Du/Au alignees, checkboxes correctement espacees) - [x] Validation visuelle page Login (espacements entre champs / bouton / version) ## Suite Un fix upstream `@malio/layer-ui` sera necessaire pour corriger l'alignement du label `Lignes :` dans la pagination de `MalioDataTable` (slot vide du `MalioSelect` interne) — prompt prepare a coller dans une session sur le repo de la lib. Reviewed-on: #33 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
76 lines
2.6 KiB
Vue
76 lines
2.6 KiB
Vue
<!--
|
|
Valeurs en dur issues de la maquette Figma (design Starseed) :
|
|
- sidebar depliee : 232px (w-[232px], repli laisse par defaut 72px)
|
|
- marge horizontale du contenu sur desktop : 170px (xl:px-[170px])
|
|
- bande blanche sticky sous la navbar : 47px (h-[47px])
|
|
A faire evoluer uniquement avec une mise a jour de maquette.
|
|
-->
|
|
<template>
|
|
<div class="h-screen overflow-hidden">
|
|
<div class="flex h-full">
|
|
<MalioSidebar
|
|
v-model="ui.sidebarCollapsed"
|
|
:sections="translatedSections"
|
|
:sidebar-class="ui.sidebarCollapsed ? '' : 'w-[232px]'"
|
|
>
|
|
<template #logo>
|
|
<img src="/LOGO_MALIO.png" alt="Malio"/>
|
|
</template>
|
|
<template #logo-collapsed>
|
|
<img src="/LOGO_MALIO_COLLAPSED.png" alt="Malio"/>
|
|
</template>
|
|
</MalioSidebar>
|
|
|
|
<div class="h-full flex-1 flex flex-col min-h-0 min-w-0">
|
|
<SiteSelector v-if="showSiteSelector"/>
|
|
<main
|
|
class="flex flex-1 flex-col overflow-y-auto overflow-x-hidden bg-white px-4 pb-10 sm:px-6 lg:px-12 xl:px-11">
|
|
<div
|
|
aria-hidden="true"
|
|
class="pointer-events-none sticky top-0 z-30 h-11 flex-shrink-0 bg-white"/>
|
|
<slot/>
|
|
</main>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
const {t} = useI18n()
|
|
const ui = useUiStore()
|
|
const {sections} = useSidebar()
|
|
const {isModuleActive} = useModules()
|
|
const auth = useAuthStore()
|
|
const route = useRoute()
|
|
|
|
// Le SiteSelector est rendu si :
|
|
// - le module Sites est actif dans config/modules.php (sinon la feature
|
|
// n'a pas de sens, cf. ticket 3 spec criteres d'acceptation) ;
|
|
// - ET l'user connecte a au moins un site autorise (sinon "barre vide"
|
|
// sans tile cliquable).
|
|
// Les deux flags sont resolus par le middleware auth.global.ts avant
|
|
// que le layout ne soit rendu (plan load parallele), donc pas de flash.
|
|
const showSiteSelector = computed(() =>
|
|
isModuleActive('sites') && (auth.user?.sites?.length ?? 0) > 0,
|
|
)
|
|
|
|
const translatedSections = computed(() =>
|
|
sections.value.map(section => ({
|
|
label: t(section.label),
|
|
icon: section.icon,
|
|
items: section.items.map(item => ({
|
|
label: t(item.label),
|
|
to: item.to,
|
|
})),
|
|
}))
|
|
)
|
|
|
|
watch(() => route.path, () => {
|
|
ui.closeMobileSidebar()
|
|
})
|
|
|
|
useHead({
|
|
titleTemplate: (title) => title || 'Starseed',
|
|
})
|
|
</script>
|