From e441f12e0d65987a4d03af1b6e401c16f89aea1d Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Mon, 8 Mar 2021 22:29:20 +0800 Subject: [PATCH] Add job related activities to the project activities tab --- .../Controllers/Projects/ActivityController.php | 7 +++++- resources/lang/de/activity.php | 5 ++++ resources/lang/de/job.php | 1 + resources/lang/en/activity.php | 5 ++++ resources/lang/en/job.php | 1 + resources/lang/id/activity.php | 5 ++++ resources/lang/id/job.php | 1 + .../users/activities/jobs/job_created.blade.php | 11 +++++++++ .../users/activities/jobs/job_updated.blade.php | 28 ++++++++++++++++++++++ .../users/activities/jobs/task_deleted.blade.php | 15 ++++++++++++ 10 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 resources/views/users/activities/jobs/job_created.blade.php create mode 100644 resources/views/users/activities/jobs/job_updated.blade.php create mode 100644 resources/views/users/activities/jobs/task_deleted.blade.php diff --git a/app/Http/Controllers/Projects/ActivityController.php b/app/Http/Controllers/Projects/ActivityController.php index b39416e..1317984 100644 --- a/app/Http/Controllers/Projects/ActivityController.php +++ b/app/Http/Controllers/Projects/ActivityController.php @@ -17,7 +17,12 @@ class ActivityController extends Controller $query->where('object_type', 'projects'); }); - $activities = $activityQuery->latest()->paginate(); + $activityQuery->orWhere(function ($query) use ($project) { + $query->whereIn('object_id', $project->jobs->pluck('id')); + $query->where('object_type', 'jobs'); + }); + + $activities = $activityQuery->latest()->paginate(50); return view('projects.activities.index', compact('project', 'activities')); } diff --git a/resources/lang/de/activity.php b/resources/lang/de/activity.php index a483ba5..645cbcd 100644 --- a/resources/lang/de/activity.php +++ b/resources/lang/de/activity.php @@ -6,4 +6,9 @@ return [ 'project_updated' => 'Project data :name updated by :user.', 'job_deleted' => 'Job deleted by :user.', ], + 'jobs' => [ + 'job_created' => 'Job created: :name new :user.', + 'job_updated' => 'Job data :name updated by :user.', + 'task_deleted' => 'Task deleted by :user.', + ], ]; diff --git a/resources/lang/de/job.php b/resources/lang/de/job.php index feb078a..1de5f16 100644 --- a/resources/lang/de/job.php +++ b/resources/lang/de/job.php @@ -47,6 +47,7 @@ return [ 'target_end_date' => 'Target End Date', 'actual_start_date' => 'Actual Start Date', 'actual_end_date' => 'Actual End Date', + 'updated_at' => 'Last Update', // Types 'main' => 'Haupt', diff --git a/resources/lang/en/activity.php b/resources/lang/en/activity.php index a483ba5..645cbcd 100644 --- a/resources/lang/en/activity.php +++ b/resources/lang/en/activity.php @@ -6,4 +6,9 @@ return [ 'project_updated' => 'Project data :name updated by :user.', 'job_deleted' => 'Job deleted by :user.', ], + 'jobs' => [ + 'job_created' => 'Job created: :name new :user.', + 'job_updated' => 'Job data :name updated by :user.', + 'task_deleted' => 'Task deleted by :user.', + ], ]; diff --git a/resources/lang/en/job.php b/resources/lang/en/job.php index 3415cab..df8c6ff 100644 --- a/resources/lang/en/job.php +++ b/resources/lang/en/job.php @@ -49,6 +49,7 @@ return [ 'target_end_date' => 'Target End Date', 'actual_start_date' => 'Actual Start Date', 'actual_end_date' => 'Actual End Date', + 'updated_at' => 'Last Update', // Types 'main' => 'Main', diff --git a/resources/lang/id/activity.php b/resources/lang/id/activity.php index 19cb1ea..8f996c9 100644 --- a/resources/lang/id/activity.php +++ b/resources/lang/id/activity.php @@ -6,4 +6,9 @@ return [ 'project_updated' => 'Data project :name diubah oleh :user.', 'job_deleted' => 'Job dihapus oleh :user.', ], + 'jobs' => [ + 'job_created' => 'Input job baru: :name oleh :user.', + 'job_updated' => 'Data job :name diubah oleh :user.', + 'task_deleted' => 'Task dihapus oleh :user.', + ], ]; diff --git a/resources/lang/id/job.php b/resources/lang/id/job.php index 4835805..053fb84 100644 --- a/resources/lang/id/job.php +++ b/resources/lang/id/job.php @@ -49,6 +49,7 @@ return [ 'target_end_date' => 'Target Tgl Selesai', 'actual_start_date' => 'Tgl Mulai Aktual', 'actual_end_date' => 'Tgl Selesai Aktual', + 'updated_at' => 'Waktu Update', // Types 'main' => 'Utama', diff --git a/resources/views/users/activities/jobs/job_created.blade.php b/resources/views/users/activities/jobs/job_created.blade.php new file mode 100644 index 0000000..421f0c6 --- /dev/null +++ b/resources/views/users/activities/jobs/job_created.blade.php @@ -0,0 +1,11 @@ +@component('users.activities.activity_list_item') +@slot('time') + {{ $activity->created_at }} +@endslot +@slot('body') + {!! __('activity.'.$activity->object_type.'.'.$activity->type, [ + 'user' => $activity->user->name, + 'name' => $activity->object->name, + ]) !!} +@endslot +@endcomponent diff --git a/resources/views/users/activities/jobs/job_updated.blade.php b/resources/views/users/activities/jobs/job_updated.blade.php new file mode 100644 index 0000000..59dbe2e --- /dev/null +++ b/resources/views/users/activities/jobs/job_updated.blade.php @@ -0,0 +1,28 @@ +@component('users.activities.activity_list_item') +@slot('time') + {{ $activity->created_at }} +@endslot +@slot('body') +

+ {!! __('activity.'.$activity->object_type.'.'.$activity->type, [ + 'user' => $activity->user->name, + 'name' => $activity->object->name, + ]) !!} +

+ @php + $data = $activity->data; + @endphp + @foreach ($data['before'] as $key => $value) + @php + if (in_array($key, ['price']) && !is_null($value)) { + $value = format_money($value); + } + $afterValue = $data['after'][$key] ?? null; + if (in_array($key, ['price']) && !is_null($afterValue)) { + $afterValue = format_money($afterValue); + } + @endphp +
{{ __('job.'.$key) }}: {{ $value }} => {{ $afterValue }}
+ @endforeach +@endslot +@endcomponent diff --git a/resources/views/users/activities/jobs/task_deleted.blade.php b/resources/views/users/activities/jobs/task_deleted.blade.php new file mode 100644 index 0000000..b81aca5 --- /dev/null +++ b/resources/views/users/activities/jobs/task_deleted.blade.php @@ -0,0 +1,15 @@ +@component('users.activities.activity_list_item') +@slot('time') + {{ $activity->created_at }} +@endslot +@slot('body') +

+ {!! __('activity.'.$activity->object_type.'.'.$activity->type, [ + 'user' => $activity->user->name, + ]) !!} +

+
{{ __('task.name') }}: {{ $activity->data['name'] }}
+
{{ __('task.description') }}: {{ $activity->data['description'] }}
+
{{ __('task.progress') }}: {{ $activity->data['progress'] }} %
+@endslot +@endcomponent