From 628564730bfff41c4da371f62ef03a908b4c16dd Mon Sep 17 00:00:00 2001 From: internetfett Date: Tue, 30 Jul 2019 14:52:29 -0500 Subject: [PATCH 1/2] show recent notifications on status page --- .../views/pages/dominion/status.blade.php | 37 +++++++++++++++++++ .../Controllers/Dominion/MiscController.php | 2 +- .../Controllers/Dominion/StatusController.php | 2 + 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/app/resources/views/pages/dominion/status.blade.php b/app/resources/views/pages/dominion/status.blade.php index d4158d077f..6d1009d467 100644 --- a/app/resources/views/pages/dominion/status.blade.php +++ b/app/resources/views/pages/dominion/status.blade.php @@ -257,5 +257,42 @@ @endif +
+
+
+

Recent News

+
+
+ + @foreach ($selectedDominion->notifications->take(30) as $notification) + @php + $route = array_get($notificationHelper->getNotificationCategories(), "{$notification->data['category']}.{$notification->data['type']}.route", '#'); + + if (is_callable($route)) { + if (isset($notification->data['data']['_routeParams'])) { + $route = $route($notification->data['data']['_routeParams']); + } else { + // fallback + $route = '#'; + } + } + @endphp + + + + + @endforeach +
+ {{ $notification->created_at }} + + @if ($route !== '#')@endif + data['category']}.{$notification->data['type']}.iconClass", 'fa fa-question') }}"> + {{ $notification->data['message'] }} + @if ($route !== '#')@endif +
+
+
+
+ @endsection diff --git a/src/Http/Controllers/Dominion/MiscController.php b/src/Http/Controllers/Dominion/MiscController.php index 66e309f67a..78544a476d 100644 --- a/src/Http/Controllers/Dominion/MiscController.php +++ b/src/Http/Controllers/Dominion/MiscController.php @@ -13,7 +13,7 @@ class MiscController extends AbstractDominionController { public function postClearNotifications() { - $this->getSelectedDominion()->notifications()->delete(); + $this->getSelectedDominion()->notifications->markAsRead(); return redirect()->back(); } diff --git a/src/Http/Controllers/Dominion/StatusController.php b/src/Http/Controllers/Dominion/StatusController.php index 721d3e9d32..69d133134b 100644 --- a/src/Http/Controllers/Dominion/StatusController.php +++ b/src/Http/Controllers/Dominion/StatusController.php @@ -6,6 +6,7 @@ use OpenDominion\Calculators\Dominion\MilitaryCalculator; use OpenDominion\Calculators\Dominion\PopulationCalculator; use OpenDominion\Calculators\NetworthCalculator; +use OpenDominion\Helpers\NotificationHelper; use OpenDominion\Services\Dominion\ProtectionService; use OpenDominion\Services\Dominion\QueueService; @@ -18,6 +19,7 @@ public function getStatus() 'landCalculator' => app(LandCalculator::class), 'militaryCalculator' => app(MilitaryCalculator::class), 'networthCalculator' => app(NetworthCalculator::class), + 'notificationHelper' => app(NotificationHelper::class), 'populationCalculator' => app(PopulationCalculator::class), 'queueService' => app(QueueService::class) ]); From 21d789a1140e64a7de307ac6f9d356cfca287de2 Mon Sep 17 00:00:00 2001 From: internetfett Date: Tue, 30 Jul 2019 15:25:12 -0500 Subject: [PATCH 2/2] add pagination --- app/resources/views/pages/dominion/status.blade.php | 7 ++++++- src/Http/Controllers/Dominion/StatusController.php | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/resources/views/pages/dominion/status.blade.php b/app/resources/views/pages/dominion/status.blade.php index 6d1009d467..798627482e 100644 --- a/app/resources/views/pages/dominion/status.blade.php +++ b/app/resources/views/pages/dominion/status.blade.php @@ -264,7 +264,7 @@
- @foreach ($selectedDominion->notifications->take(30) as $notification) + @foreach ($notifications as $notification) @php $route = array_get($notificationHelper->getNotificationCategories(), "{$notification->data['category']}.{$notification->data['type']}.route", '#'); @@ -291,6 +291,11 @@ @endforeach
+ diff --git a/src/Http/Controllers/Dominion/StatusController.php b/src/Http/Controllers/Dominion/StatusController.php index 69d133134b..7aa8528cf7 100644 --- a/src/Http/Controllers/Dominion/StatusController.php +++ b/src/Http/Controllers/Dominion/StatusController.php @@ -14,6 +14,11 @@ class StatusController extends AbstractDominionController { public function getStatus() { + $resultsPerPage = 25; + $selectedDominion = $this->getSelectedDominion(); + + $notifications = $selectedDominion->notifications()->paginate($resultsPerPage); + return view('pages.dominion.status', [ 'dominionProtectionService' => app(ProtectionService::class), 'landCalculator' => app(LandCalculator::class), @@ -21,7 +26,8 @@ public function getStatus() 'networthCalculator' => app(NetworthCalculator::class), 'notificationHelper' => app(NotificationHelper::class), 'populationCalculator' => app(PopulationCalculator::class), - 'queueService' => app(QueueService::class) + 'queueService' => app(QueueService::class), + 'notifications' => $notifications ]); } }