diff --git a/frontend/src/views/settings/UsersTab.vue b/frontend/src/views/settings/UsersTab.vue index 63e094b..f87f4ab 100644 --- a/frontend/src/views/settings/UsersTab.vue +++ b/frontend/src/views/settings/UsersTab.vue @@ -124,6 +124,7 @@ > Tilbakestill passord + {{ saveError }} @@ -142,6 +143,7 @@ const loading = ref(false) const showModal = ref(false) const isEditing = ref(false) const editingId = ref(null) +const saveError = ref(null) type FormData = Omit @@ -203,6 +205,7 @@ function getAvatarColors(role: UserRole): { bg: string; text: string } { function openAddModal() { isEditing.value = false editingId.value = null + saveError.value = null Object.assign(form, emptyForm()) showModal.value = true } @@ -210,6 +213,7 @@ function openAddModal() { function openEditModal(user: SettingsUser) { isEditing.value = true editingId.value = user.id + saveError.value = null Object.assign(form, { firstName: user.firstName, lastName: user.lastName, @@ -222,18 +226,23 @@ function openEditModal(user: SettingsUser) { } async function save() { + saveError.value = null const colors = getAvatarColors(form.role) const userData = { ...form, colorBg: colors.bg, colorText: colors.text } - if (isEditing.value && editingId.value !== null) { - const updated = await organizationService.updateUser(editingId.value, userData) - const idx = users.value.findIndex((u) => u.id === editingId.value) - if (idx !== -1) users.value[idx] = { ...users.value[idx], ...updated } - } else { - const created = await organizationService.createUser(userData) - users.value.push(created) + try { + if (isEditing.value && editingId.value !== null) { + const updated = await organizationService.updateUser(editingId.value, userData) + const idx = users.value.findIndex((u) => u.id === editingId.value) + if (idx !== -1) users.value[idx] = { ...users.value[idx], ...updated } + } else { + const created = await organizationService.createUser(userData) + users.value.push(created) + } + showModal.value = false + } catch (e: unknown) { + saveError.value = e instanceof Error ? e.message : 'Noe gikk galt. Prøv igjen.' } - showModal.value = false } function resetPassword() {