diff --git a/frontend/src/components/admin/AuditLogView.jsx b/frontend/src/components/admin/AuditLogView.jsx
index 28d43f4..13031bb 100644
--- a/frontend/src/components/admin/AuditLogView.jsx
+++ b/frontend/src/components/admin/AuditLogView.jsx
@@ -14,6 +14,7 @@ import {
Activity,
Hash
} from 'lucide-react';
+import { getActionLabel } from '../../utils/statusHelper';
// --- HUVUDKOMPONENT ---
const AuditLogView = ({ logs = [], loading }) => {
@@ -149,7 +150,7 @@ const AuditLogView = ({ logs = [], loading }) => {
- {log.action.replace('_', ' ')}
+ {getActionLabel(log.action)}
{
-
-
Admininstratörer
+
+
Administratörer
{stats.admins}
@@ -239,7 +239,7 @@ const AdminDashboard = ({ userName, initialTab = 'USERS' }) => {
activeTab === 'LOGS' ? 'bg-white text-slate-900 shadow-sm' : 'text-slate-400'
}`}
>
- Audit Log
+ Aktivitetslogg
diff --git a/frontend/src/pages/CaseDetail.jsx b/frontend/src/pages/CaseDetail.jsx
index 1d6c05e..8491e7b 100644
--- a/frontend/src/pages/CaseDetail.jsx
+++ b/frontend/src/pages/CaseDetail.jsx
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useRef } from 'react';
import { commentService, activityService, attachmentService, medicalRecordService } from '../services/api';
-import { STATUS_MAP } from '../utils/statusHelper';
+import { STATUS_MAP, ACTIVE_STATUS_KEYS } from '../utils/statusHelper';
import { Stethoscope, Lock, FileText, CheckCircle, Upload, Trash2, ExternalLink, UserMinus } from 'lucide-react';
const CaseDetail = ({ caseData, onBack, onGoToPet, currentUserId, userRole, onDirtyChange }) => {
@@ -252,9 +252,9 @@ const CaseDetail = ({ caseData, onBack, onGoToPet, currentUserId, userRole, onDi
onChange={(e) => handleStatusChange(e.target.value)}
className="bg-slate-800 border border-slate-700 text-sm font-bold rounded-xl px-4 py-2 outline-none focus:ring-2 focus:ring-vet-accent transition-all cursor-pointer"
>
-
-
-
+ {ACTIVE_STATUS_KEYS.map((key) => (
+
+ ))}
{caseData.assignedVetId === currentUserId && (
diff --git a/frontend/src/utils/statusHelper.js b/frontend/src/utils/statusHelper.js
index 1bdfcf8..a179333 100644
--- a/frontend/src/utils/statusHelper.js
+++ b/frontend/src/utils/statusHelper.js
@@ -1,7 +1,34 @@
// src/utils/statusHelper.js
+//
+// Gemensam mappning från backend-enum till svenska visningstexter.
+// Används överallt där status eller aktivitetsloggar visas i UI:t så att
+// texterna förblir konsekventa. Motsvarighet finns i backend
+// (RecordStatus.displayLabel()) för loggrader som skrivs till databasen.
+
export const STATUS_MAP = {
- 'OPEN': { label: 'Inskickat', color: 'bg-blue-50 text-blue-700 border-blue-100' },
- 'IN_PROGRESS': { label: 'Under behandling', color: 'bg-yellow-50 text-yellow-700 border-yellow-100' },
- 'AWAITING_INFO': { label: 'Väntar på svar', color: 'bg-purple-50 text-purple-700 border-purple-100' },
- 'CLOSED': { label: 'Avslutat', color: 'bg-slate-50 text-slate-500 border-slate-100' }
-};
\ No newline at end of file
+ 'OPEN': { label: 'Öppen', color: 'bg-blue-50 text-blue-700 border-blue-100' },
+ 'IN_PROGRESS': { label: 'Under behandling', color: 'bg-yellow-50 text-yellow-700 border-yellow-100' },
+ 'AWAITING_INFO': { label: 'Väntar på svar', color: 'bg-purple-50 text-purple-700 border-purple-100' },
+ 'CLOSED': { label: 'Avslutad', color: 'bg-slate-50 text-slate-500 border-slate-100' }
+};
+
+// Statusar som VET kan välja i dropdown. CLOSED utesluts — stängning sker
+// via "Slutför & Stäng"-modalen för att tvinga fram en slutnotering.
+export const ACTIVE_STATUS_KEYS = ['OPEN', 'IN_PROGRESS', 'AWAITING_INFO'];
+
+// Svensk label för en status, med fallback till raw-värdet om enum-värdet
+// inte känns igen (t.ex. nytt värde tillagt i backend men inte här).
+export const getStatusLabel = (status) => STATUS_MAP[status]?.label ?? status;
+
+// Mappning för ActivityType-enum → svensk rubrik.
+// Används av AuditLogView i admin-vyn där log.action visas direkt.
+export const ACTION_LABELS = {
+ 'CASE_CREATED': 'Ärende skapat',
+ 'STATUS_CHANGED': 'Status ändrad',
+ 'COMMENT_ADDED': 'Kommentar tillagd',
+ 'ASSIGNED': 'Veterinär tilldelad',
+ 'UNASSIGNED': 'Ärende släppt',
+ 'UPDATED': 'Ärende uppdaterat'
+};
+
+export const getActionLabel = (action) => ACTION_LABELS[action] ?? action;
diff --git a/src/main/java/org/example/vet1177/entities/RecordStatus.java b/src/main/java/org/example/vet1177/entities/RecordStatus.java
index 14e879c..6ec6e65 100644
--- a/src/main/java/org/example/vet1177/entities/RecordStatus.java
+++ b/src/main/java/org/example/vet1177/entities/RecordStatus.java
@@ -1,7 +1,23 @@
package org.example.vet1177.entities;
public enum RecordStatus {
- OPEN, IN_PROGRESS, AWAITING_INFO, CLOSED;
+ OPEN("Öppen"),
+ IN_PROGRESS("Under behandling"),
+ AWAITING_INFO("Väntar på svar"),
+ CLOSED("Avslutad");
+
+ private final String displayLabel;
+
+ RecordStatus(String displayLabel) {
+ this.displayLabel = displayLabel;
+ }
+
+ // Svensk visningstext. Används i serverskrivna aktivitetsloggar så att
+ // loggraderna i activity_log lagras på samma språk som övriga beskrivningar.
+ // Frontend har motsvarande STATUS_MAP i statusHelper.js.
+ public String displayLabel() {
+ return displayLabel;
+ }
public boolean isFinal() {
return this == CLOSED;
diff --git a/src/main/java/org/example/vet1177/services/MedicalRecordService.java b/src/main/java/org/example/vet1177/services/MedicalRecordService.java
index e0f59ea..af03c19 100644
--- a/src/main/java/org/example/vet1177/services/MedicalRecordService.java
+++ b/src/main/java/org/example/vet1177/services/MedicalRecordService.java
@@ -250,10 +250,10 @@ public MedicalRecord updateStatus(UUID recordId, RecordStatus newStatus, User up
MedicalRecord updated = medicalRecordRepository.save(record);
- // LOGGING
+ // LOGGING — använd svensk label så loggen matchar UI-texterna.
activityLogService.log(
ActivityType.STATUS_CHANGED,
- "Status ändrad till: " + newStatus,
+ "Status ändrad till: " + newStatus.displayLabel(),
updatedBy,
updated
);
diff --git a/src/test/java/org/example/vet1177/services/MedicalRecordServiceTest.java b/src/test/java/org/example/vet1177/services/MedicalRecordServiceTest.java
index 0f5ec88..d080e28 100644
--- a/src/test/java/org/example/vet1177/services/MedicalRecordServiceTest.java
+++ b/src/test/java/org/example/vet1177/services/MedicalRecordServiceTest.java
@@ -431,7 +431,7 @@ void updateStatus_shouldLogActivity() {
verify(activityLogService).log(
eq(ActivityType.STATUS_CHANGED),
- contains("AWAITING_INFO"),
+ contains(RecordStatus.AWAITING_INFO.displayLabel()),
eq(currentUser),
eq(record));
}