@extends('_version_02.commons.layouts.admin') @section('content') @include('_version_02.commons.layouts.partials._alert') @include('_version_02.utility_charges.layouts.partials._meter_css')
@foreach($houses as $house) @php $house_counter++; @endphp @endforeach
{{ App\Language::trans('Unit') }} {{ App\Language::trans('Actions') }}
{{ $house_counter }}.   {{ $house['house_unit'] }} ID: {{ $house['id_house'] }}
@endsection @section('script') document.addEventListener('DOMContentLoaded', function () { const buttons = document.querySelectorAll('.show-details-btn'); buttons.forEach(button => { button.addEventListener('click', function () { const houseId = this.dataset.houseId; const roomId = this.dataset.roomId; // Get the room ID from the button's data attribute const detailsRow = document.getElementById(`details-row-${houseId}`); const accordionBody = document.querySelector(`#collapse-${houseId} .accordion-body`); // Toggle details row visibility detailsRow.style.display = detailsRow.style.display === 'none' ? '' : 'none'; // Fetch data only if the accordion is empty if (accordionBody.innerHTML.trim() === 'Loading details...') { const url = `${getHouseMeterDataByHouseIdUrl}?house_id=${houseId}`; console.log(url); fetch(url) .then(response => response.json()) .then(data => { console.log(data); if (data.status_code === true) { const rooms = data.rooms; rooms.forEach(room => { console.log('Show room:'); console.log(room); generateRoomHTML(room , data.house.id_house); }); } else { console.error("API call failed:", data.message); // Optionally, show an error message in the UI } }) .catch(error => { console.error('Error fetching house details:', error); accordionBody.innerHTML = '

Failed to load details.

'; }); } }); }); }); // JavaScript Function // JavaScript Function function generateRoomHTML(room, id_house) { console.log('Render room HTML'); console.log(room); console.log(room.meter); const meter = room.meter; const container = document.getElementById('accordion-' + id_house); const isRemoteReady = room?.meter?.is_remote_ready || false; const isRemoteLive = room?.meter?.is_remote_ready || false; const roomHTML = `
`; container.insertAdjacentHTML('beforeend', roomHTML); } function toggleRoomPanel(roomId) { const panel = document.getElementById(`panel-${roomId}`); panel.style.display = panel.style.display === 'none' || panel.style.display === '' ? 'block' : 'none'; get_meter_reading_detail(roomId); } $(document).ready(function(){ }); @endsection