diff --git a/frontend/src/components/server/ServerSettingsDialog.vue b/frontend/src/components/server/ServerSettingsDialog.vue index c77943b..02ec58e 100644 --- a/frontend/src/components/server/ServerSettingsDialog.vue +++ b/frontend/src/components/server/ServerSettingsDialog.vue @@ -35,7 +35,7 @@ const selectedUser = computed(() => userStore.users.find(user => user.id === sel watch(() => props.modelValue, async open => { if (open) await load() -}) +}, {immediate: true}) watch(selectedRoleId, async roleId => { if (!roleId) return roleForm.value = selectedRole.value?.name || '' @@ -59,13 +59,18 @@ async function load() { error.value = null name.value = props.serverName try { - const [, , permissions] = await Promise.all([ + const [server, , , permissions] = await Promise.all([ + serverStore.fetchServer(props.serverId), roleStore.fetchRoles(props.serverId), userStore.fetchUsers(props.serverId), permissionsApi.listServerUserPermissions(props.serverId), ]) + name.value = server.name userPermissions.value = Object.fromEntries(permissions.map(permission => [permission.user_id, permission])) - } catch (e) { error.value = e instanceof Error ? e.message : 'Erreur de chargement' } + } catch (e) { + name.value = '' + error.value = e instanceof Error ? e.message : 'Erreur de chargement' + } finally { loading.value = false } } async function saveServer() { @@ -141,8 +146,8 @@ async function resetMemberPermissions() {