From 17b4f57a773f3b7c89d6f55cb4f5d9e871314343 Mon Sep 17 00:00:00 2001 From: Tatjana Date: Thu, 23 Apr 2026 18:26:29 +0200 Subject: [PATCH 1/4] Bugfix: allow admin to update vet details and resolve user edit form issues (#232) --- frontend/src/components/admin/UserModal.jsx | 36 ++++++++++++------- frontend/src/pages/AdminDashboard.jsx | 2 +- frontend/src/services/api.jsx | 1 + .../vet1177/controller/VetController.java | 10 ++++++ .../example/vet1177/services/VetService.java | 17 +++++++++ 5 files changed, 53 insertions(+), 13 deletions(-) diff --git a/frontend/src/components/admin/UserModal.jsx b/frontend/src/components/admin/UserModal.jsx index 0219d688..65a25818 100644 --- a/frontend/src/components/admin/UserModal.jsx +++ b/frontend/src/components/admin/UserModal.jsx @@ -28,15 +28,30 @@ const UserModal = ({ isOpen, onClose, onSave, initialData = null, clinics = [] } useEffect(() => { if (isOpen) { if (initialData) { - // Om vi redigerar en veterinär, se till att fälten från vetRecord följer med in i formData + const role = (initialData.role || 'OWNER').replace('ROLE_', ''); setFormData({ ...initialData, + role, password: '', - licenseId: initialData.vetRecord?.licenseId || '', - specialization: initialData.vetRecord?.specialization || '', - bookingInfo: initialData.vetRecord?.bookingInfo || '', - clinicId: initialData.vetRecord?.clinicId || '' + clinicId: initialData.clinicId || '', + licenseId: '', + specialization: '', + bookingInfo: '', }); + + if (role === 'VET') { + vetService.getAll().then(res => { + const vetRecord = res.data.find(v => v.userId === initialData.id); + if (vetRecord) { + setFormData(prev => ({ + ...prev, + licenseId: vetRecord.licenseId || '', + specialization: vetRecord.specialization || '', + bookingInfo: vetRecord.bookingInfo || '', + })); + } + }).catch(err => console.error('Kunde inte hämta veterinärdetaljer:', err)); + } } else { setFormData({ name: '', email: '', password: '', @@ -70,12 +85,9 @@ const UserModal = ({ isOpen, onClose, onSave, initialData = null, clinics = [] } bookingInfo: formData.bookingInfo }; - // CodeRabbit Fix: Kolla om det redan finns en veterinärpost (Edit vs Create) - const existingVetId = initialData?.vetRecord?.id; - - if (existingVetId) { - await vetService.update(existingVetId, vetPayload); - } else if (userId) { + if (initialData) { + await vetService.update(initialData.id, vetPayload); + } else { await vetService.create(vetPayload); } } @@ -211,7 +223,7 @@ const UserModal = ({ isOpen, onClose, onSave, initialData = null, clinics = [] } {/* VETERINÄR-DETALJER */} {isVet && (
-
+