diff --git a/app/lang/en/cachet.php b/app/lang/en/cachet.php index 37a70187..49bf6a0e 100644 --- a/app/lang/en/cachet.php +++ b/app/lang/en/cachet.php @@ -35,6 +35,8 @@ return [ 'setup' => 'Setup Cachet', 'no_incidents' => 'No incidents reported.', 'past_incidents' => 'Past incidents', + 'previous_week' => 'Previous week', + 'next_week' => 'Next week', // Dashboard 'dashboard' => [ 'dashboard' => 'Dashboard', diff --git a/app/views/index.blade.php b/app/views/index.blade.php index b43ef1e0..8fe9ac05 100644 --- a/app/views/index.blade.php +++ b/app/views/index.blade.php @@ -29,4 +29,20 @@ @foreach($allIncidents as $incidents) @include('partials.incidents', $incidents) @endforeach +
+ + @stop diff --git a/src/Http/Controllers/HomeController.php b/src/Http/Controllers/HomeController.php index 28bd3ff3..8c20fd1a 100644 --- a/src/Http/Controllers/HomeController.php +++ b/src/Http/Controllers/HomeController.php @@ -6,6 +6,7 @@ use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\Incident; use CachetHQ\Cachet\Models\Setting; use Carbon\Carbon; +use GrahamCampbell\Binput\Facades\Binput; use GrahamCampbell\Markdown\Facades\Markdown; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\View; @@ -25,8 +26,25 @@ class HomeController extends Controller $incidentDays = Setting::get('app_incident_days') ?: 7; + $today = Carbon::now(); + $startDate = Carbon::now(); + + // Check if we have another starting date + if (Binput::has('start_date')) { + try { + // If date provided is valid + $oldDate = Carbon::createFromFormat('Y-m-d', Binput::get('start_date')); + // If trying to get a future date fallback to today + if ($today->gt($oldDate)) { + $startDate = $oldDate; + } + } catch (Exception $e) { + // Fallback to today + } + } + foreach (range(0, $incidentDays) as $i) { - $date = Carbon::now()->subDays($i); + $date = $startDate->copy()->subDays($i); $incidents = Incident::whereBetween('created_at', [ $date->format('Y-m-d').' 00:00:00', $date->format('Y-m-d').' 23:59:59', @@ -35,10 +53,13 @@ class HomeController extends Controller } return View::make('index', [ - 'components' => $components, - 'allIncidents' => $allIncidents, - 'pageTitle' => Setting::get('app_name'), - 'aboutApp' => Markdown::render(Setting::get('app_about')), + 'components' => $components, + 'allIncidents' => $allIncidents, + 'pageTitle' => Setting::get('app_name'), + 'aboutApp' => Markdown::render(Setting::get('app_about')), + 'canPageForward' => (bool) $today->gt($startDate), + 'previousDate' => $startDate->copy()->subWeek()->subDay()->toDateString(), + 'nextDate' => $startDate->copy()->addWeek()->addDay()->toDateString(), ]); } }