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}