From 7c2e570fa0250775ac9492c5cd434c7c51be4567 Mon Sep 17 00:00:00 2001 From: tristan Date: Wed, 27 May 2026 16:53:06 +0200 Subject: [PATCH 1/6] feat(front) : maj @malio/layer-ui 1.7.1 et refonte des drawers - adaptation a l'API MalioDrawer 1.7 (titre via slot #header, footer frere du body scrollable) - footer fixe : boutons 150px, justify-between, bordures header/footer - permissions en accordeon Malio par module (RoleDrawer + UserRbacDrawer) - cases a cocher sur une seule colonne - suppression de PermissionGroup, devenu inutilise Ajustements restants (layers/titres) a suivre. --- .../core/components/PermissionGroup.vue | 66 ---------- .../modules/core/components/RoleDrawer.vue | 117 ++++++++++++------ .../core/components/UserRbacDrawer.vue | 98 +++++++++++---- .../modules/core/pages/admin/audit-log.vue | 6 +- .../modules/sites/components/SiteDrawer.vue | 61 +++++---- frontend/package-lock.json | 8 +- frontend/package.json | 2 +- 7 files changed, 198 insertions(+), 160 deletions(-) delete mode 100644 frontend/modules/core/components/PermissionGroup.vue diff --git a/frontend/modules/core/components/PermissionGroup.vue b/frontend/modules/core/components/PermissionGroup.vue deleted file mode 100644 index 8eb589f..0000000 --- a/frontend/modules/core/components/PermissionGroup.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - diff --git a/frontend/modules/core/components/RoleDrawer.vue b/frontend/modules/core/components/RoleDrawer.vue index cc76aaa..04f04c1 100644 --- a/frontend/modules/core/components/RoleDrawer.vue +++ b/frontend/modules/core/components/RoleDrawer.vue @@ -1,11 +1,17 @@ @@ -124,6 +156,19 @@ const form = ref({ const selectedPermissionIds = ref(new Set()) +// Modules ouverts dans l'accordeon des permissions (mode multiple) +const openModules = ref([]) + +// Nombre de permissions selectionnees pour un module donne +function selectedCountFor(group: PermissionModule): number { + return group.permissions.filter(p => selectedPermissionIds.value.has(p.id)).length +} + +// Vrai si toutes les permissions du module sont selectionnees +function allSelectedFor(group: PermissionModule): boolean { + return group.permissions.length > 0 && selectedCountFor(group) === group.permissions.length +} + const isEditMode = computed(() => props.role !== null) // Grouper les permissions par module diff --git a/frontend/modules/core/components/UserRbacDrawer.vue b/frontend/modules/core/components/UserRbacDrawer.vue index 54b194d..e0f5640 100644 --- a/frontend/modules/core/components/UserRbacDrawer.vue +++ b/frontend/modules/core/components/UserRbacDrawer.vue @@ -1,11 +1,17 @@ @@ -158,6 +189,19 @@ const selectedRoleIds = ref(new Set()) const selectedDirectPermissionIds = ref(new Set()) const selectedSiteIds = ref(new Set()) +// Modules ouverts dans l'accordeon des permissions directes (mode multiple) +const openDirectModules = ref([]) + +// Nombre de permissions directes selectionnees pour un module donne +function directSelectedCount(group: PermissionModule): number { + return group.permissions.filter(p => selectedDirectPermissionIds.value.has(p.id)).length +} + +// Vrai si toutes les permissions directes du module sont selectionnees +function directAllSelected(group: PermissionModule): boolean { + return group.permissions.length > 0 && directSelectedCount(group) === group.permissions.length +} + // Detecter l'auto-edition const isSelfEdit = computed(() => props.user?.id === auth.user?.id) diff --git a/frontend/modules/core/pages/admin/audit-log.vue b/frontend/modules/core/pages/admin/audit-log.vue index 3103816..d1ac784 100644 --- a/frontend/modules/core/pages/admin/audit-log.vue +++ b/frontend/modules/core/pages/admin/audit-log.vue @@ -126,9 +126,13 @@ +
diff --git a/frontend/modules/sites/components/SiteDrawer.vue b/frontend/modules/sites/components/SiteDrawer.vue index 86fd26e..87b2dea 100644 --- a/frontend/modules/sites/components/SiteDrawer.vue +++ b/frontend/modules/sites/components/SiteDrawer.vue @@ -1,11 +1,17 @@ diff --git a/frontend/package-lock.json b/frontend/package-lock.json index b00bb01..cf060ff 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -7,7 +7,7 @@ "name": "starseed-frontend", "hasInstallScript": true, "dependencies": { - "@malio/layer-ui": "^1.5.0", + "@malio/layer-ui": "^1.7.1", "@nuxt/icon": "^2.2.1", "@nuxtjs/i18n": "^10.2.3", "@nuxtjs/tailwindcss": "^6.14.0", @@ -1866,9 +1866,9 @@ "license": "MIT" }, "node_modules/@malio/layer-ui": { - "version": "1.5.0", - "resolved": "https://gitea.malio.fr/api/packages/MALIO-DEV/npm/%40malio%2Flayer-ui/-/1.5.0/layer-ui-1.5.0.tgz", - "integrity": "sha512-uVuG8kRakWgpWYQCMUf1LFD+gjx0iRFfNJn/jlqjxiZmZyGZMckcMW2qA9hGZBiheBsTJWw1pRR4ufuyAYPY0A==", + "version": "1.7.1", + "resolved": "https://gitea.malio.fr/api/packages/MALIO-DEV/npm/%40malio%2Flayer-ui/-/1.7.1/layer-ui-1.7.1.tgz", + "integrity": "sha512-RYMMappWt/fgjD+BM7//h2O6kxD6WH9Fui8hoC29xtKySRQsqD61XKTdR7BRRkpktbxKmV39q/hblyAFBqV5yw==", "dependencies": { "@nuxt/icon": "^2.2.1", "@nuxtjs/tailwindcss": "^6.14.0", diff --git a/frontend/package.json b/frontend/package.json index 38380ff..6cf10d8 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,7 +17,7 @@ "test:e2e:ui": "playwright test --ui" }, "dependencies": { - "@malio/layer-ui": "^1.5.0", + "@malio/layer-ui": "^1.7.1", "@nuxt/icon": "^2.2.1", "@nuxtjs/i18n": "^10.2.3", "@nuxtjs/tailwindcss": "^6.14.0", -- 2.39.5 From 0a5ac61957a94cbf74cef800d6d943bdf686f61c Mon Sep 17 00:00:00 2001 From: tristan Date: Wed, 27 May 2026 17:41:12 +0200 Subject: [PATCH 2/6] feat(front) : ajustements layout maquette (sidebar, marges, titres) - sidebar deplie a 232px (repli 72px conserve) - marge horizontale du contenu responsive, 170px des xl (1280px) - gap navbar -> contenu de 47px - composant partage PageHeader (titre 32px/600, marge basse 44px, slot actions) - migration des 6 pages vers PageHeader, suppression des marges hautes redondantes --- frontend/app/layouts/default.vue | 5 ++-- .../modules/commercial/pages/commercial.vue | 4 +-- .../modules/core/pages/admin/audit-log.vue | 8 ++---- frontend/modules/core/pages/admin/roles.vue | 26 +++++++++---------- frontend/modules/core/pages/admin/users.vue | 8 +----- frontend/modules/core/pages/index.vue | 4 +-- frontend/modules/sites/pages/admin/sites.vue | 26 +++++++++---------- frontend/shared/components/ui/PageHeader.vue | 12 +++++++++ 8 files changed, 46 insertions(+), 47 deletions(-) create mode 100644 frontend/shared/components/ui/PageHeader.vue diff --git a/frontend/app/layouts/default.vue b/frontend/app/layouts/default.vue index 28cd990..d818caf 100644 --- a/frontend/app/layouts/default.vue +++ b/frontend/app/layouts/default.vue @@ -4,6 +4,7 @@