diff --git a/frontend/app/admin/monitoring/page.tsx b/frontend/app/admin/monitoring/page.tsx index 798b8f0..2ed74d0 100644 --- a/frontend/app/admin/monitoring/page.tsx +++ b/frontend/app/admin/monitoring/page.tsx @@ -1,7 +1,8 @@ "use client"; import { useState, useEffect } from "react"; -import { Activity, Power, ZapOff, AlertTriangle } from "lucide-react"; +// 1. IMPORT IKON BARU DI SINI +import { Activity, Power, ZapOff, AlertTriangle, Lightbulb, Wind, Projector } from "lucide-react"; export default function PowerMonitoringPage() { const [rooms, setRooms] = useState([]); @@ -19,11 +20,17 @@ export default function PowerMonitoringPage() { const handleCutOff = (roomName: string) => { if(confirm(`PERINGATAN: Anda yakin ingin mematikan daya secara paksa di ${roomName}?`)) { - alert(`Sinyal pemutusan daya dikirim ke Relay ${roomName}.`); + alert(`Sinyal pemutusan daya dikirim ke Relay Master ${roomName}.`); // Nanti di sini kamu pasang axios.post ke Golang -> MQTT -> ESP32 } }; + // 2. FUNGSI BARU UNTUK KONTROL PERANGKAT SPESIFIK + const handleDeviceToggle = (roomName: string, deviceName: string) => { + alert(`Mengirim sinyal IoT untuk menyalakan/mematikan [${deviceName}] di [${roomName}]...`); + // Nanti ganti dengan axios.put(`http://localhost:8080/api/rooms/.../device`, { device: deviceName }) + }; + return (
@@ -37,8 +44,11 @@ export default function PowerMonitoringPage() {
- {rooms.map((room) => ( -
+ {/* SUDAH DITAMBAHKAN PENGURUTAN ABJAD AGAR RAPI */} + {[...rooms] + .sort((a, b) => a.name.localeCompare(b.name)) + .map((room) => ( +
{/* Indikator Status di Pojok Kanan Atas */}
)} + {/* 3. PANEL KONTROL IoT BARU */} +
+

IoT Device Control

+
+ + + + + +
+
+
Update: {room.lastUpdate} diff --git a/frontend/app/admin/page.tsx b/frontend/app/admin/page.tsx index 2742a11..b955846 100644 --- a/frontend/app/admin/page.tsx +++ b/frontend/app/admin/page.tsx @@ -75,8 +75,11 @@ export default function AdminDashboard() {

Real-time Room Energy

-
- {roomStats.map((room) => ( +
+ {/* TAMBAHKAN PENGURUTAN ABJAD DI SINI */} + {[...roomStats] + .sort((a, b) => a.name.localeCompare(b.name)) + .map((room) => (
{room.name} diff --git a/frontend/app/dashboard/bookings/calendar/page.tsx b/frontend/app/dashboard/bookings/calendar/page.tsx index 23bc0b2..b05e94c 100644 --- a/frontend/app/dashboard/bookings/calendar/page.tsx +++ b/frontend/app/dashboard/bookings/calendar/page.tsx @@ -167,7 +167,7 @@ export default function CalendarViewPage() { ))} - + {/* BODY TABEL: Sumbu Y (Ruangan) */}