From e343b3f56dbc64892394173847d75af1b9a19807 Mon Sep 17 00:00:00 2001 From: feycot Date: Sat, 9 May 2020 00:54:30 +0500 Subject: [PATCH 1/2] add latest comments to welcome page --- app/Helpers/CommentHelper.php | 14 +++++++++++++ app/Http/Controllers/WelcomeController.php | 4 ++++ resources/lang/en/welcome.php | 3 +++ resources/lang/ru/welcome.php | 3 +++ .../components/comment/_comment.blade.php | 2 +- resources/views/welcome.blade.php | 21 ++++++++++++++++++- 6 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 app/Helpers/CommentHelper.php diff --git a/app/Helpers/CommentHelper.php b/app/Helpers/CommentHelper.php new file mode 100644 index 000000000..b10e43a99 --- /dev/null +++ b/app/Helpers/CommentHelper.php @@ -0,0 +1,14 @@ +commentable_type))); + $commentableUrl = route("{$commentableResourceName}.show", $comment->commentable); + $commentUrl = "{$commentableUrl}#comment-{$comment->id}"; + + return $commentUrl; + } +} diff --git a/app/Http/Controllers/WelcomeController.php b/app/Http/Controllers/WelcomeController.php index f5b6f5d16..52ea2a94d 100644 --- a/app/Http/Controllers/WelcomeController.php +++ b/app/Http/Controllers/WelcomeController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Activity; +use App\Comment; use Carbon\Carbon; use Carbon\CarbonPeriod; use Illuminate\Support\Collection; @@ -39,11 +40,14 @@ public function index() endif; }); + $comments = Comment::latest()->limit(10)->get(); + return view( 'welcome', [ 'logItems' => $logItems, 'chart' => $chart, + 'comments' => $comments ] ); } diff --git a/resources/lang/en/welcome.php b/resources/lang/en/welcome.php index ed79d5db5..69f172c0f 100644 --- a/resources/lang/en/welcome.php +++ b/resources/lang/en/welcome.php @@ -21,4 +21,7 @@ 'coming_soon_list' => [ 'Bind repository with resolved exercises', ], + 'comments' => [ + 'latest' => 'Latest comments' + ] ]; diff --git a/resources/lang/ru/welcome.php b/resources/lang/ru/welcome.php index d1f9250ed..53437556e 100644 --- a/resources/lang/ru/welcome.php +++ b/resources/lang/ru/welcome.php @@ -20,5 +20,8 @@ ], 'coming_soon_list' => [ 'Привязывать репозиторий с решёнными упражнениями', + ], + 'comments' => [ + 'latest' => 'Последние комментарии' ] ]; diff --git a/resources/views/components/comment/_comment.blade.php b/resources/views/components/comment/_comment.blade.php index c773fa8db..b7500855e 100644 --- a/resources/views/components/comment/_comment.blade.php +++ b/resources/views/components/comment/_comment.blade.php @@ -7,7 +7,7 @@
- # + # {{ $comment->user->name }} - {{ $comment->created_at->diffForHumans() }}
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index 1fb9addb1..061a71404 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -1,6 +1,7 @@ @extends('layouts.app') @php /** @var \Illuminate\Support\Collection|\App\Activity[] $logItems */ +/** @var \Illuminate\Support\Collection|\App\Comment[] $comments */ @endphp @section('content')

{{ __('welcome.title') }}

@@ -40,7 +41,7 @@
-
+

{{ __('activitylog.title') }}

@foreach($logItems as $logItem)
@@ -95,6 +96,24 @@
@endforeach
+
+

@lang('welcome.comments.latest')

+ @foreach($comments as $comment) +
+
+
+ + @if($comment->user) + {{ $comment->user->name }} + @endif + + {{ $comment->created_at }} +
+ {{ str_limit($comment->content, 80) }} +
+
+ @endforeach +
From 32807f2ec86a081ea833c8bf587ee64c95eee4f8 Mon Sep 17 00:00:00 2001 From: feycot Date: Sat, 9 May 2020 02:12:53 +0500 Subject: [PATCH 2/2] refactor WelcomeController.php --- app/Http/Controllers/WelcomeController.php | 55 +++++++++++----------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/app/Http/Controllers/WelcomeController.php b/app/Http/Controllers/WelcomeController.php index 52ea2a94d..1d483cb6f 100644 --- a/app/Http/Controllers/WelcomeController.php +++ b/app/Http/Controllers/WelcomeController.php @@ -13,33 +13,7 @@ class WelcomeController extends Controller public function index() { $logItems = Activity::latest()->with('causer')->limit(10)->get(); - - $countActivitiesByDays = Activity::all() - ->groupBy(function (Activity $activity) { - return $activity->created_at->format('Y-m-d'); - }) - ->map(function (Collection $group) { - return $group->count(); - }); - - $chart = CarbonPeriod::create(now()->subMonths(12), '1 day', now()) - ->map(function (Carbon $dayDate) use ($countActivitiesByDays) { - $day = $dayDate->format('Y-m-d'); - $dayActivitiesCount = $countActivitiesByDays->get($day, 0); - - if ($dayActivitiesCount < 1) : - return 0; - elseif ($dayActivitiesCount < 5) : - return 1; - elseif ($dayActivitiesCount < 10) : - return 2; - elseif ($dayActivitiesCount < 15) : - return 3; - else : - return 4; - endif; - }); - + $chart = $this->getChart(); $comments = Comment::latest()->limit(10)->get(); return view( @@ -51,4 +25,31 @@ public function index() ] ); } + + /** + * @return \Generator + */ + private function getChart(): \Generator + { + $countActivitiesByDays = Activity::all() + ->groupBy(function (Activity $activity) { + return $activity->created_at->format('Y-m-d'); + }) + ->map(function (Collection $group) { + return $group->count(); + }); + + $chart = CarbonPeriod::create(now()->subMonths(12), '1 day', now()) + ->map(function (Carbon $dayDate) use ($countActivitiesByDays): int { + $day = $dayDate->format('Y-m-d'); + $dayActivitiesCount = $countActivitiesByDays->get($day, 0); + $magicNumber = 4; + $maxDayActivityLevel = 4; + $dayActivityLevel = (ceil(($dayActivitiesCount) / $magicNumber)); + + return min($dayActivityLevel, $maxDayActivityLevel); + }); + + return $chart; + } }