Compare commits

...

2 commits

Author SHA1 Message Date
85d4c19693 Add ability to specify checkin ranges 2022-11-10 02:16:12 +00:00
6eaaff513c Handle fortnightly digests, empty digests 2022-11-10 02:15:42 +00:00
4 changed files with 41 additions and 21 deletions

View file

@ -34,13 +34,26 @@ class TrackerController extends Controller
if (!$tripId) return view('no-trip'); if (!$tripId) return view('no-trip');
$viewMode = $request->input('show', null); $viewMode = $request->input('show', null);
$fromCheckin = $request->input('from', null);
$toCheckin = $request->input('to', null);
$tripData = $this->get_trip_data($tripId); $tripData = $this->get_trip_data($tripId);
if ($fromCheckin) {
$tripData->checkins = array_filter($tripData->checkins, function($key) use ($fromCheckin) { return $key >= $fromCheckin; }, ARRAY_FILTER_USE_KEY);
}
if ($toCheckin) {
$tripData->checkins = array_filter($tripData->checkins, function($key) use ($toCheckin) { return $key <= $toCheckin; }, ARRAY_FILTER_USE_KEY);
}
return view( return view(
'tracker', 'tracker',
[ [
'trip' => $tripData, 'trip' => $tripData,
'showAllCheckins' => ($viewMode === 'all') 'showAllCheckins' => ($viewMode === 'all'),
'fromCheckin' => $fromCheckin,
'toCheckin' => $toCheckin
] ]
); );
} }

View file

@ -55,6 +55,9 @@ class Digest extends Mailable
case 'weekly': case 'weekly':
$cutoffDateTime->modify('-1 week'); $cutoffDateTime->modify('-1 week');
break; break;
case 'fortnightly':
$cutoffDateTime->modify('-2 weeks');
break;
case 'monthly': case 'monthly':
$cutoffDateTime->modify('-1 month'); $cutoffDateTime->modify('-1 month');
break; break;

View file

@ -37,21 +37,25 @@
<p>View the tracker <a href="https://track.bengoldsworthy.net">here.</a></p> <p>View the tracker <a href="https://track.bengoldsworthy.net">here.</a></p>
<hr> <hr>
<h2>Checkins</h2> <h2>Checkins</h2>
<ol> @if($checkins)
@foreach($checkins as $checkin) <ol>
<li> @foreach($checkins as $checkin)
<details class="checkin" id="{{ $checkin->id }}"> <li>
<summary class="checkin__summary"> <details class="checkin" id="{{ $checkin->id }}">
<h3 class="checkin__title">{!! $checkin->title ?? "<i>Untitled</i>" !!}</h3> <summary class="checkin__summary">
<p class="checkin__meta">{!! render_date_difference($checkin->date) !!}</p> <h3 class="checkin__title">{!! $checkin->title ?? "<i>Untitled</i>" !!}</h3>
</summary> <p class="checkin__meta">{!! render_date_difference($checkin->date) !!}</p>
@if($checkin->note) </summary>
{!! $checkin->note !!} @if($checkin->note)
@endif {!! $checkin->note !!}
@if($checkin->image_url) @endif
<img class="popup__image" loading="lazy" src="{{ $checkin->image_url }}"> @if($checkin->image_url)
@endif <img class="popup__image" loading="lazy" src="{{ $checkin->image_url }}">
</details> @endif
</li> </details>
@endforeach </li>
</ol> @endforeach
</ol>
@else
<p>No new checkins</p>
@endif

View file

@ -31,8 +31,8 @@
</section> </section>
<section id="checkinList"> <section id="checkinList">
<h2 class="section__title">@if ($showAllCheckins) Check-ins @else Recent Check-ins @endif</h2> <h2 class="section__title">@if ($showAllCheckins) Check-ins @else Recent Check-ins @endif</h2>
<ol start="{{ count($trip->checkins) }}" reversed> <ol start="{{ $toCheckin ?? count($trip->checkins) }}" reversed>
@if($showAllCheckins) @if($showAllCheckins || $toCheckin || $fromCheckin)
@php $checkinsList = array_reverse($trip->checkins) @endphp @php $checkinsList = array_reverse($trip->checkins) @endphp
@else @else
@php $checkinsList = array_slice(array_reverse($trip->checkins), 0, 10) @endphp @php $checkinsList = array_slice(array_reverse($trip->checkins), 0, 10) @endphp