@extends('_version_02.commons.layouts.admin')
@section('content')
@include('_version_02.commons.layouts.partials._alert')
@include('_version_02.utility_charges.layouts.partials._meter_css')
| {{ App\Language::trans('Unit') }} |
{{ App\Language::trans('Actions') }} |
@foreach($houses as $house)
|
{{ $house_counter }}.
{{ $house['house_unit'] }}
ID: {{ $house['id_house'] }}
|
|
|
|
@php $house_counter++; @endphp
@endforeach
@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 = `
| # |
Name |
Check In Date |
Total Consumption (kwh) |
${room.house_room_members && room.house_room_members.length > 0 ?
room.house_room_members.map((member, i) => `
| ${i + 1} |
${member.house_member_name} |
${member.house_room_member_start_date} |
|
`).join('')
:
`| No tenants found |
`
}
| # |
Item |
|
| 1 |
Last Reading At |
|
| 2 |
Last Current Reading |
|
`;
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