diff --git a/frontend/src/devices/DeviceDetail.jsx b/frontend/src/devices/DeviceDetail.jsx index cf52919..0a55a30 100644 --- a/frontend/src/devices/DeviceDetail.jsx +++ b/frontend/src/devices/DeviceDetail.jsx @@ -367,6 +367,8 @@ export default function DeviceDetail() { const [savingNotes, setSavingNotes] = useState(false); const notesRef = useRef(null); const [usersLoading, setUsersLoading] = useState(false); + const [unresolvedIssues, setUnresolvedIssues] = useState(0); + const notesPanelRef = useRef(null); useEffect(() => { loadData(); @@ -396,6 +398,14 @@ export default function DeviceDetail() { setDeviceUsers([]); }).finally(() => setUsersLoading(false)); + // Load unresolved issues count + api.get(`/equipment/notes?device_id=${id}`).then((data) => { + const issues = (data.notes || []).filter( + (n) => (n.category === "issue" || n.category === "action_item") && n.status !== "completed" + ); + setUnresolvedIssues(issues.length); + }).catch(() => setUnresolvedIssues(0)); + // Reverse geocode const coords = parseCoordinates(d.device_location_coordinates); if (coords) { @@ -944,7 +954,7 @@ export default function DeviceDetail() { ); - const notesSection = ; + const notesSection =
; const logsSection = ; // ===== Layout rendering ===== @@ -1021,10 +1031,11 @@ export default function DeviceDetail() { -
+

{device.device_name || "Unnamed Device"}

+
+ {unresolvedIssues > 0 && ( + <> +
+ + + )}
{canEdit && ( diff --git a/frontend/src/equipment/NotesPanel.jsx b/frontend/src/equipment/NotesPanel.jsx index 16d85d7..094f9e2 100644 --- a/frontend/src/equipment/NotesPanel.jsx +++ b/frontend/src/equipment/NotesPanel.jsx @@ -201,7 +201,7 @@ export default function NotesPanel({ deviceId, userId }) { {note.title}
-

{note.content}

+

{note.content}

{note.created_by && `${note.created_by} · `}{note.created_at}

@@ -256,7 +256,7 @@ export default function NotesPanel({ deviceId, userId }) { {msg.subject || "No subject"}
-

{msg.message}

+

{msg.message}

{msg.sender_name && `${msg.sender_name} · `}{msg.phone && `${msg.phone} · `}{msg.date_sent}

@@ -269,7 +269,7 @@ export default function NotesPanel({ deviceId, userId }) { return (

diff --git a/frontend/src/layout/Header.jsx b/frontend/src/layout/Header.jsx index 52b15a5..08cf7fd 100644 --- a/frontend/src/layout/Header.jsx +++ b/frontend/src/layout/Header.jsx @@ -12,7 +12,7 @@ export default function Header() { }} >

- Admin Panel + BellSystems - Control Panel

diff --git a/frontend/src/melodies/MelodyDetail.jsx b/frontend/src/melodies/MelodyDetail.jsx index 015307e..105c79d 100644 --- a/frontend/src/melodies/MelodyDetail.jsx +++ b/frontend/src/melodies/MelodyDetail.jsx @@ -225,8 +225,8 @@ export default function MelodyDetail() { {info.melodyTone} - {info.totalNotes} {info.steps} + {info.totalNotes} {info.minSpeed} {info.maxSpeed} diff --git a/frontend/src/users/UserDetail.jsx b/frontend/src/users/UserDetail.jsx index cdb667c..b6cf6f1 100644 --- a/frontend/src/users/UserDetail.jsx +++ b/frontend/src/users/UserDetail.jsx @@ -309,14 +309,14 @@ export default function UserDetail() {
{/* Fields */}
- + {user.userTitle} + {user.phone_number} + - {user.id} + {user.uid || user.id} - - {user.uid} - + {user.email} - {user.email} - {user.phone_number} - {user.userTitle}