@extends('layouts.app') @section('title', 'Dashboard') @section('content') Dashboard villa All Properties @foreach ($allProperties as $property) id)> {{ $property->name }} @endforeach chevron_left {{ $rangeStart->format('M j') }} — {{ $rangeEnd->format('M j, Y') }} chevron_right notifications Sync Now @if ($timeline->isEmpty()) No properties yet Add a property and connect its Airbnb or Traveloka calendar to see bookings here. @else Property @foreach ($days as $day) {{ strtoupper($day->format('D')) }} {{ $day->day }} @endforeach @foreach ($timeline as $row) @php $property = $row['property']; @endphp {{ $property->name }} @if ($row['hasConflict']) warning Conflict @endif @forelse ($property->channelConnections as $connection) {{ $connection->label }}{{ ! $loop->last ? ' · ' : '' }} @empty No channels connected @endforelse @foreach ($days as $day) @endforeach @foreach ($row['lanes'] as $laneIndex => $lane) @foreach ($lane as $item) @php $event = $item['event']; $phone = $event->guestPhoneLast4(); $guestName = $event->guestName(); $reservationUrl = $event->reservationUrl(); $displayName = $guestName ?: $event->summary.($phone ? " ••{$phone}" : ''); $tooltip = collect([ $item['label'].' · '.($guestName ?? $event->summary), $event->guestCount(), $event->totalPaid() ? 'Paid '.$event->totalPaid() : null, ])->filter()->implode(' · '); @endphp {{ $item['label'] }} {{ $displayName }} @endforeach @endforeach @endforeach Airbnb Traveloka Booking.com Occupancy {{ $occupancyPct }}% Confirmed Bookings {{ $confirmedBookingsCount }} @endif @endsection
Add a property and connect its Airbnb or Traveloka calendar to see bookings here.