From 4bbe3f6807f90d482f2de8698be68ec7f4c7b8d4 Mon Sep 17 00:00:00 2001 From: Wira Basalamah Date: Mon, 8 Jun 2026 16:09:24 +0700 Subject: [PATCH] Polish device registry identity displays --- CODEX_HANDOFF.md | 5 +++- ui/device-registry-monitoring/index.html | 14 ++++++++++- ui/device-technical-detail/index.html | 30 ++++++++++++++++++++---- ui/soundbox-ops/index.html | 11 +++++---- 4 files changed, 48 insertions(+), 12 deletions(-) diff --git a/CODEX_HANDOFF.md b/CODEX_HANDOFF.md index 6fe3eb9..cbdd0d3 100644 --- a/CODEX_HANDOFF.md +++ b/CODEX_HANDOFF.md @@ -16,14 +16,17 @@ Dokumen ini adalah snapshot kerja terakhir untuk melanjutkan project tanpa perlu - KPI warning sekarang menunjukkan breakdown stale vs degraded; - KPI card bisa dipakai sebagai quick filter; - tabel Fleet Status menampilkan health bar, reason, signal, dan battery; - - Device ID menjadi link langsung ke technical detail; + - kolom utama Fleet Status sekarang memakai Serial Number sebagai identitas utama, dengan device code hanya sebagai detail sekunder; - Remote Actions menambahkan tombol `Power Off Device`; - layout mobile header/filter dibuat full-width agar tidak overflow. - Registry `/ui/device-registry-monitoring` sekarang mendukung koreksi device metadata: + - tabel dan detail mengutamakan Serial Number, bukan internal device id; - menu row punya `Edit Device`; + - menu row baris bawah otomatis membuka ke atas agar tidak tertutup pagination; - modal edit bisa koreksi `serial_number/dev-sn`, vendor, model, communication mode, status, dan firmware version; - perubahan model ikut memperbarui `capability_profile_json` dari katalog model aktif; - backend menolak duplicate `serial_number` supaya config pull/MQTT lookup tidak ambigu. +- Device Technical Detail mengutamakan Serial Number di breadcrumb/title, menaruh device code sebagai detail, dan remote action menambahkan `Power Off Device`. - Search UI yang sebelumnya dekoratif sudah mulai difungsikan: - Admin Dashboard global search route ke Device Registry, Merchant List, atau Transaction History dengan `?q=`; - Transaction History dan Merchant List membaca `?q=` sebagai initial search; diff --git a/ui/device-registry-monitoring/index.html b/ui/device-registry-monitoring/index.html index e2668cd..a67bd3b 100644 --- a/ui/device-registry-monitoring/index.html +++ b/ui/device-registry-monitoring/index.html @@ -1062,9 +1062,21 @@ Changing SN affects config pull lookup and MQTT topic routing. Use the physical button.addEventListener("click", (event) => { event.stopPropagation(); const rowId = event.currentTarget.getAttribute("data-id"); + const activeMenu = Array.from(tableBody.querySelectorAll("[data-device-menu]")) + .find((menu) => menu.getAttribute("data-device-menu") === rowId); + const shouldOpen = Boolean(activeMenu?.classList.contains("hidden")); tableBody.querySelectorAll("[data-device-menu]").forEach((menu) => { - menu.classList.toggle("hidden", menu.getAttribute("data-device-menu") !== rowId || !menu.classList.contains("hidden")); + menu.classList.add("hidden", "top-12"); + menu.classList.remove("bottom-12"); }); + if (!activeMenu || !shouldOpen) { + return; + } + const buttonRect = event.currentTarget.getBoundingClientRect(); + const availableBelow = window.innerHeight - buttonRect.bottom; + activeMenu.classList.toggle("top-12", availableBelow >= 190); + activeMenu.classList.toggle("bottom-12", availableBelow < 190); + activeMenu.classList.remove("hidden"); }); }); diff --git a/ui/device-technical-detail/index.html b/ui/device-technical-detail/index.html index 15c694d..e35b34f 100644 --- a/ui/device-technical-detail/index.html +++ b/ui/device-technical-detail/index.html @@ -212,7 +212,7 @@

tag - SN: - + Code: -

schedule @@ -405,6 +405,13 @@ Loading chevron_right +