@extends('layouts.status-page') @section('site_title', formatTitle(($statusPage->meta_title ? e($statusPage->meta_title) : [$statusPage->name, __('Status page')]))) @section('head_content') @if ($statusPage->noindex) @endif @if ($statusPage->favicon) @endif @if ($statusPage->domain) @if ($statusPage->user->can('statusPageCustomization', ['App\Models\User'])) @endif @if ($statusPage->user->can('statusPageCustomization', ['App\Models\User'])) @if ($statusPage->custom_js) {!! $statusPage->custom_js !!} @endif @endif @endif @endsection @section('content')
@include('icons.' . (count($monitors) == 0 ? 'error-filled' : (count($incidents) == 0 ? 'check-circle-filled' : (count($incidents) == count($monitors) ? 'error-filled' : 'offline-bolt-filled'))), ['class' => 'fill-current width-6 height-6 ' . (count($monitors) == 0 ? 'text-secondary' : (count($incidents) == 0 ? 'text-success' : (count($incidents) == count($monitors) ? 'text-danger' : 'text-warning')))])

{{ (count($monitors) == 0 ? __('No monitors.') : (count($incidents) == 0 ? __('All services are online') : (count($incidents) == count($monitors) ? __('All services are offline') : __('Some services are offline')))) }}

@if(count($monitors) == 0)
{{ __('No data') }}.
@else
@foreach($monitors as $monitor)
@include('icons.status', ['class' => 'width-4 height-4 fill-current text-' . formatMonitorStatus($monitor)])​
{{ $monitor->name }} @if ($monitor->ssl_alert_days && parse_url($monitor->url, PHP_URL_SCHEME) == 'https' && $monitor->user->can('sslMonitoring', ['App\Models\User']))
@include('icons.lock', ['class' => 'fill-current width-4 height-4 text-' . formatMonitorSslStatus($monitor)])​
@endif @if ($monitor->domain_alert_days && $monitor->user->can('domainMonitoring', ['App\Models\User']))
@include('icons.website', ['class' => 'fill-current width-4 height-4 text-' . formatMonitorDomainStatus($monitor)])​
@endif
@php $fromNew = (\Carbon\Carbon::createFromFormat('Y-m-d', $range['from'], Auth::user()->timezone ?? config('settings.timezone'))->startOfDay()->lt($monitor->created_at) ? $monitor->created_at : \Carbon\Carbon::createFromFormat('Y-m-d', $range['from'], Auth::user()->timezone ?? config('settings.timezone'))->startOfDay()); $toNew = (\Carbon\Carbon::createFromFormat('Y-m-d', $range['to'], Auth::user()->timezone ?? config('settings.timezone'))->isSameDay((clone $now)) || \Carbon\Carbon::createFromFormat('Y-m-d', $range['to'], Auth::user()->timezone ?? config('settings.timezone'))->gt((clone $now)) ? (clone $now) : \Carbon\Carbon::createFromFormat('Y-m-d', $range['to'], Auth::user()->timezone ?? config('settings.timezone'))->addDay()->startOfDay()); @endphp {{ __(':value uptime', ['value' => formatUptimePercentageNumber((\Carbon\Carbon::createFromFormat('Y-m-d', $range['from'], Auth::user()->timezone ?? config('settings.timezone'))->startOfDay()->lt($monitor->created_at->tz(Auth::user()->timezone ?? config('settings.timezone'))) ? $monitor->created_at->tz(Auth::user()->timezone ?? config('settings.timezone'))->diffInMicroseconds($toNew) : \Carbon\Carbon::createFromFormat('Y-m-d', $range['from'], Auth::user()->timezone ?? config('settings.timezone'))->startOfDay()->diffInMicroseconds($toNew)), $monitor['totalIncidentsDuration'], 2, __('.'), __(',')) . '%']) }}
@foreach($rangeMap as $date => $value) @php $startDate = $iteratedDate = \Carbon\Carbon::createFromFormat($range['format'], $date, Auth::user()->timezone ?? config('settings.timezone'))->startOfDay(); $endDate = (clone $iteratedDate)->addDay()->startOfDay(); if ($iteratedDate->isSameDay($monitor->created_at->tz(Auth::user()->timezone ?? config('settings.timezone'))) && $iteratedDate->isSameDay((clone $now)->tz(Auth::user()->timezone ?? config('settings.timezone')))) { $startDate = $monitor->created_at->tz(Auth::user()->timezone ?? config('settings.timezone')); $endDate = (clone $now)->tz(Auth::user()->timezone ?? config('settings.timezone')); } elseif ($iteratedDate->isSameDay($monitor->created_at->tz(Auth::user()->timezone ?? config('settings.timezone')))) { $startDate = $monitor->created_at->tz(Auth::user()->timezone ?? config('settings.timezone')); } elseif ($iteratedDate->isSameDay((clone $now)->tz(Auth::user()->timezone ?? config('settings.timezone')))) { $endDate = (clone $now)->tz(Auth::user()->timezone ?? config('settings.timezone')); } $diffMicroseconds = $startDate->diffInMicroseconds($endDate); @endphp
{{ \Carbon\Carbon::createFromFormat($range['format'], $date, Auth::user()->timezone ?? config('settings.timezone'))->format(__('Y-m-d')) }}
@if (\Carbon\Carbon::createFromFormat($range['format'], $date, Auth::user()->timezone ?? config('settings.timezone'))->greaterThanOrEqualTo($monitor->created_at->tz(Auth::user()->timezone ?? config('settings.timezone'))->startOfDay()))
@include('icons.analytics-filled', ['class' => 'width-4 height-4 fill-current text-light ' . (__('lang_dir') == 'rtl' ? 'ml-2' : 'mr-2')]) {{ __('Uptime') }}: {{ number_format((-(($monitor['incidentsDurationMap'][$date] - $diffMicroseconds) / $diffMicroseconds) * 100), 2, __('.'), __(',')) . '%' }}
@if ($monitor['incidentsMap'][$date] > 0)
@include('icons.offline-bolt-filled', ['class' => 'width-4 height-4 fill-current text-danger ' . (__('lang_dir') == 'rtl' ? 'ml-2' : 'mr-2')]) {{ __('Incidents') }}: {{ $monitor['incidentsMap'][$date] }} ({{ (clone $now)->diffForHumans((clone $now)->subMicroseconds($monitor['incidentsDurationMap'][$date]), ['syntax' => true, 'parts' => 2]) }})
@else
@include('icons.check-circle-filled', ['class' => 'width-4 height-4 fill-current text-success ' . (__('lang_dir') == 'rtl' ? 'ml-2' : 'mr-2')]) {{ __('No incidents') }}
@endif @else
{{ __('No data') }}
@endif
'>
@if (!$loop->last)
@endif @endforeach
{{ __('Last :days days', ['days' => 90]) }} {{ __('Last :days days', ['days' => 60]) }} {{ __('Last :days days', ['days' => 30]) }}
{{ __('Today') }}
@endforeach
@endif
@if(count($monitors) != 0)
{{ __('Report generated on :date at :time (UTC :offset).', ['date' => (clone $now)->tz(Auth::user()->timezone ?? config('settings.timezone'))->format(__('Y-m-d')), 'time' => (clone $now)->tz(Auth::user()->timezone ?? config('settings.timezone'))->format('H:i:s'), 'offset' => (clone $now)->tz(Auth::user()->timezone ?? config('settings.timezone'))->getOffsetString()]) }} {{ __('Refresh report') }}
@endif @endsection