From 8fcd20c9f5de1e1626110547e64fd84714e93043 Mon Sep 17 00:00:00 2001 From: myuqinurrohman Date: Mon, 14 Apr 2025 10:28:52 +0700 Subject: [PATCH] feat: request edit journalist chore: change UI for index company journalist page --- .../Dashboard/DatatableController.php | 127 +++++++++- .../Dashboard/JournalistController.php | 219 +++++++++++++++++- .../Controllers/Dashboard/MediaController.php | 8 +- app/Http/Requests/JournalistRequest.php | 66 ++++++ app/Models/Journalist.php | 3 + ..._02_25_024802_create_journalists_table.php | 4 + database/seeders/JournalistSeeder.php | 2 + resources/views/auth/register.blade.php | 2 +- .../journalists/admin/index.blade.php | 53 +++++ .../dashboard/journalists/create.blade.php | 133 +++++++++++ .../journalists/edit-request.blade.php | 65 ++++++ .../dashboard/journalists/index.blade.php | 210 ++++++++++++++--- .../journalists/process-submission.blade.php | 139 +++++++++++ .../dashboard/journalists/show.blade.php | 133 +++++++++-- .../journalists/submission.blade.php | 56 +++++ .../dashboard/users/profiles/action.blade.php | 6 +- .../users/profiles/journalists.blade.php | 4 +- .../views/partials/app/datatable.blade.php | 43 ++++ .../views/partials/app/sweetalert.blade.php | 23 +- routes/web.php | 12 + 20 files changed, 1216 insertions(+), 92 deletions(-) create mode 100644 app/Http/Requests/JournalistRequest.php create mode 100644 resources/views/dashboard/journalists/admin/index.blade.php create mode 100644 resources/views/dashboard/journalists/create.blade.php create mode 100644 resources/views/dashboard/journalists/edit-request.blade.php create mode 100644 resources/views/dashboard/journalists/process-submission.blade.php create mode 100644 resources/views/dashboard/journalists/submission.blade.php diff --git a/app/Http/Controllers/Dashboard/DatatableController.php b/app/Http/Controllers/Dashboard/DatatableController.php index ac12a10..a0f18f7 100644 --- a/app/Http/Controllers/Dashboard/DatatableController.php +++ b/app/Http/Controllers/Dashboard/DatatableController.php @@ -1008,7 +1008,114 @@ public function journalist(Request $request){ $query->withTrashed(); }, 'media.company.user' => function($query) { $query->withTrashed(); - }])->get(); + }]) + ->where('approved_status', '1') + ->whereNull('deleted_at') + ->get(); + + + return DataTables::of($data) + ->addIndexColumn() + ->addColumn('journalist_name', function ($data) { + return $data->name; + }) + ->addColumn('company_name', function ($data) { + return $data->media->company->name; + }) + ->addColumn('status', function ($data) { + switch($data->media->company->user->status){ + case 0: + return 'Menunggu'; + case 1: + return 'Diterima'; + case 2: + return 'Ditolak'; + case 3: + return 'Tidak Diketahui'; + default: + return 'Tidak Diketahui'; + } + }) + ->addColumn('status_edit', function ($data) { + switch($data->edit_status){ + case 0: + return 'Tidak Ada'; + case 1: + return 'Menunggu'; + case 2: + return 'Diterima'; + case 3: + return 'Ditolak'; + default: + return 'Tidak Diketahui'; + } + }) + ->addColumn('action', function ($data) { + $showUrl = route('dashboard.journalists.show', ['id' => encrypt_id($data->id)]); + + $editUrl = route('dashboard.journalists.edit', ['id' => encrypt_id($data->id)]); + + $deleteUrl = route('dashboard.journalists.destroy', ['id' => encrypt_id($data->id)]); + + $processEditRequestCompanyUrl = route('dashboard.journalists.edit.process', ['id' => encrypt_id($data->id)]); + + $dropdown = ''; + + return $dropdown; + }) + + ->rawColumns(['status', 'status_edit', 'action']) + ->make(true); + } + + return response()->json(['error' => 'Unauthorized'], 401); + + } + + public function journalistSubmission(Request $request, $role){ + if ($request->ajax()) { + + $data = Journalist::with(['media' => function($query) { + $query->withTrashed(); + }, 'media.company' => function($query) { + $query->withTrashed(); + }, 'media.company.user' => function($query) { + $query->withTrashed(); + }]); + + if ($role === '1') { + $data->where('approved_status', '0') + ->whereNull('deleted_at') + ->orWhere('approved_status', '2'); + } else if($role === '3'){ + $data->where('approved_status', '0') + ->orWhere('approved_status', '2') + ->whereNull('deleted_at') + ->where('media_id', Auth::user()->company->media->id); + } + + $data = $data->get(); return DataTables::of($data) @@ -1033,8 +1140,8 @@ public function journalist(Request $request){ return 'Tidak Diketahui'; } }) - ->addColumn('status_edit', function ($data) { - switch($data->edit_status){ + ->addColumn('approved_status', function ($data) { + switch($data->approved_status){ case 0: return 'Menunggu'; case 1: @@ -1050,6 +1157,8 @@ public function journalist(Request $request){ ->addColumn('action', function ($data) { $showUrl = route('dashboard.journalists.show', ['id' => encrypt_id($data->id)]); + $processUrl = route('dashboard.journalists.submissions.process', ['id' => encrypt_id($data->id)]); + $editUrl = route('dashboard.journalists.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.journalists.destroy', ['id' => encrypt_id($data->id)]); @@ -1060,12 +1169,16 @@ public function journalist(Request $request){