diff --git a/frontend/modules/core/pages/admin/roles.vue b/frontend/modules/core/pages/admin/roles.vue index e0e6e05..ec81460 100644 --- a/frontend/modules/core/pages/admin/roles.vue +++ b/frontend/modules/core/pages/admin/roles.vue @@ -14,70 +14,49 @@ -
- - - - - - - - - - - - - - - - - - - -
{{ t('admin.roles.table.label') }}{{ t('admin.roles.table.code') }}{{ t('admin.roles.table.permissions') }}{{ t('admin.roles.table.system') }}{{ t('admin.roles.table.actions') }}
- {{ role.label }} - - {{ role.code }} - - {{ role.permissions.length }} - - - {{ t('admin.roles.table.system') }} - - -
- - -
-
- - -
- -

{{ t('admin.roles.noRoles') }}

-
-
+ + + + + + ([]) const loading = ref(false) + +const columns = [ + { key: 'label', label: t('admin.roles.table.label') }, + { key: 'code', label: t('admin.roles.table.code') }, + { key: 'permissions', label: t('admin.roles.table.permissions') }, + { key: 'system', label: t('admin.roles.table.system') }, + { key: 'actions', label: t('admin.roles.table.actions') }, +] + +// Transformer les roles en items compatibles MalioDataTable +const roleItems = computed(() => + roles.value.map(role => ({ + id: role.id, + label: role.label, + code: role.code, + permissions: role.permissions.length, + isSystem: role.isSystem, + system: '', // colonne geree par le slot + actions: '', // colonne geree par le slot + })) +) + +function getRoleById(id: number): Role | undefined { + return roles.value.find(r => r.id === id) +} + +function onRowClick(item: Record) { + const role = getRoleById(item.id as number) + if (role) openEditDrawer(role) +} const drawerOpen = ref(false) const selectedRole = ref(null) const deleteModalOpen = ref(false)