ajax()) { $data = Classification::with(['subClassifications'])->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('status', function ($data) { if ($data->status == '0') { return 'Nonaktif'; }else{ return 'Aktif'; } }) ->addColumn('sub_classifications', function ($data) { $subClassificationCount = $data->subClassifications->count(); if($subClassificationCount > 0){ return $subClassificationCount. ' [Lihat]'; }else{ return $subClassificationCount; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.classifications.show', ['id' => encrypt_id($data->id)]); $addSubClassificationUrl = route('dashboard.sub.classifications.create', ['classification' => $data->slug]); $editUrl = route('dashboard.classifications.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.classifications.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['sub_classifications', 'status', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function subClassification(Request $request){ if ($request->ajax()) { $classificationParam = $request->input('classification', null); if ($classificationParam) { $classification = Classification::where('id', '=', decrypt_id($classificationParam))->first(); // Tambahkan pengecekan apakah classification ditemukan if ($classification) { $data = SubClassification::with(['classification' => function($query) { $query->withTrashed(); }])->where('classification_id', '=', $classification->id)->get(); } else { return response()->json(['error' => 'Classification not found'], 404); } } else { $data = SubClassification::with(['classification' => function($query) { $query->withTrashed(); }])->get(); } return DataTables::of($data) ->addIndexColumn() ->addColumn('classification', function ($data) { return $data->classification->name; }) ->addColumn('status', function ($data) { if ($data->status == '0') { return 'Nonaktif'; }else{ return 'Aktif'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.sub.classifications.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.sub.classifications.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.sub.classifications.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function location(Request $request){ if ($request->ajax()) { $data = Location::with(['subLocations'])->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('status', function ($data) { if ($data->status == '0') { return 'Nonaktif'; }else{ return 'Aktif'; } }) ->addColumn('sub_locations', function ($data) { $subLocationsCount = $data->subLocations->count(); if($subLocationsCount > 0){ return $subLocationsCount. ' [Lihat]'; }else{ return $subLocationsCount; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.locations.show', ['id' => encrypt_id($data->id)]); $addSubLocationUrl = route('dashboard.sub.locations.create', ['location' => $data->slug]); $editUrl = route('dashboard.locations.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.locations.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['sub_locations', 'status', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function subLocation(Request $request){ if ($request->ajax()) { $locationParam = $request->input('location', null); if($locationParam){ $location = Location::where('slug', '=', $locationParam)->first(); $data = SubLocation::with(['location'])->where('location_id', '=', $location->id)->get(); }else{ $data = SubLocation::with(['location'])->get(); } return DataTables::of($data) ->addIndexColumn() ->addColumn('location', function ($data) { return $data->location->name; }) ->addColumn('status', function ($data) { if ($data->status == '0') { return 'Nonaktif'; }else{ return 'Aktif'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.sub.locations.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.sub.locations.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.sub.locations.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function governmentAgency(Request $request){ if ($request->ajax()) { $data = GovernmentAgency::all(); return DataTables::of($data) ->addIndexColumn() ->addColumn('action', function ($data) { $showUrl = route('dashboard.government.agencies.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.government.agencies.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.government.agencies.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function news(Request $request){ if ($request->ajax()) { $data = News::all(); return DataTables::of($data) ->addIndexColumn() ->addColumn('title', function ($data) { return shorten_text($data->title, 50); }) ->addColumn('link', function ($data) { if ($data->link != null) { return ''.$data->link.''; }else{ return 'Tidak ada link'; } }) ->addColumn('category', function ($data) { if ($data->category == '0') { return 'Berita'; }else{ return 'Pengumuman'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.news.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.news.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.news.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['link', 'category', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function announcement(Request $request){ if ($request->ajax()) { $data = Announcement::whereHas('media', function ($query) { $query->where('announcements_media.category', 'general'); })->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('sent_at', function ($data) { return idn_date($data->created_at, 'l, d F Y'); }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.announcements.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.announcements.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.announcements.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function mediaAnnouncement(Request $request){ if ($request->ajax()) { $data = Media::with(['announcements'])->findOrFail(Auth::user()->company->media->id)->announcements; return DataTables::of($data) ->addIndexColumn() ->addColumn('sent_at', function ($data) { return idn_date($data->created_at, 'l, d F Y'); }) ->addColumn('sender', function ($data) { return $data->enhancer->name. ' (admin)'; }) ->addColumn('status', function ($data) { if ($data->pivot->status == '0') { return 'Belum Dibaca'; }else{ return 'Sudah Dibaca'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.announcements.read', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.announcements.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.announcements.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['sender', 'status', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function airingProofTheme(Request $request){ if ($request->ajax()) { $data = AiringProofTheme::all(); return DataTables::of($data) ->addIndexColumn() ->addColumn('action', function ($data) { $showUrl = route('dashboard.airing.proof.themes.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.airing.proof.themes.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.airing.proof.themes.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function company(Request $request){ if ($request->ajax()) { $data = Company::with(['user'])->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('status', function ($data) { switch($data->user->status){ case 0: return 'Menunggu'; case 1: return 'Diterima'; case 2: return 'Ditolak'; case 3: return 'Tidak Diketahui'; } }) ->addColumn('address', function ($data) { return '
' . $data->address . '
'; }) ->addColumn('status_edit', function ($data) { switch($data->edit_status){ case 0: return 'Menunggu'; case 1: return 'Diterima'; case 2: return 'Ditolak'; case 3: return 'Tidak Diketahui'; } }) ->addColumn('register_at', function ($data) { return idn_date($data->created_at, 'd F Y'); }) ->addColumn('validated_at', function ($data) { return idn_date($data->validated_at, 'd F Y'); }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.companies.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.companies.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.companies.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'status_edit', 'address', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function media(Request $request){ if ($request->ajax()) { $data = Media::with(['company.user'])->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('media_name', function ($data) { return $data->name; }) ->addColumn('company_name', function ($data) { return $data->company->name; }) ->addColumn('type', function ($data) { return ucfirst($data->type); }) ->addColumn('classification', function ($data) { return ucfirst($data->classification); }) ->addColumn('link', function ($data) { if($data->link){ return ''.$data->link.''; }else{ return 'Tidak memiliki link'; } }) ->addColumn('address', function ($data) { return '
' . $data->address . '
'; }) ->addColumn('status', function ($data) { switch($data->company->user->status){ case 0: return 'Menunggu'; case 1: return 'Diterima'; case 2: return 'Ditolak'; case 3: return 'Tidak Diketahui'; } }) ->addColumn('status_edit', function ($data) { switch($data->edit_status){ case 0: return 'Menunggu'; case 1: return 'Diterima'; case 2: return 'Ditolak'; case 3: return 'Tidak Diketahui'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.media.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.media.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.media.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['link', 'address', 'status', 'status_edit', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function journalist(Request $request){ if ($request->ajax()) { $data = Journalist::with(['media' => function($query) { $query->withTrashed(); }, 'media.company' => function($query) { $query->withTrashed(); }, 'media.company.user' => function($query) { $query->withTrashed(); }])->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 'Menunggu'; case 1: return 'Diterima'; case 2: return 'Ditolak'; case 3: return 'Tidak Diketahui'; 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)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'status_edit', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } // admin (kerjasama) public function cooperation(Request $request){ if ($request->ajax()) { if(is_role(['1'])){ $data = Cooperation::with(['media', 'mediaOrder'])->get(); }else if(is_role(['3'])){ $mediaId = Auth::user()->company->media->id; $media = Media::findOrFail($mediaId); $data = $media->cooperations->filter(function ($cooperation) use ($mediaId){ // Filter cooperation berdasarkan status proposal yang 1 return $cooperation->proposals->where('status', 1)->where('media_id', $mediaId)->isNotEmpty(); }); } return DataTables::of($data) ->addIndexColumn() ->addColumn('name', function ($data) { return '
' . $data->name . '
'; }) // ->addColumn('start_date', function ($data) { // return idn_date($data->start_date, 'l, d F Y'); // }) // ->addColumn('end_date', function ($data) { // return idn_date($data->end_date, 'l, d F Y'); // }) ->addColumn('posted_at', function ($data) { return idn_date($data->created_at, 'l, d F Y'); }) ->addColumn('status', function ($data) { $isHaveMediaOrder = !is_null($data->mediaOrder); if ($isHaveMediaOrder) { return 'Media Order
Sudah Media Order'; }else{ return 'Pengajuan Kerjasama
Belum Media Order'; } }) ->addColumn('action', function ($data) { $isHaveMediaOrder = $data->mediaorder; $showUrl = route('dashboard.cooperations.show', ['id' => encrypt_id($data->id)]); $processUrl = route('dashboard.cooperations.process', ['id' => encrypt_id($data->id), 'process' => 'cooperation']); $createMediaOrderUrl = route('dashboard.media.orders.create', ['id' => encrypt_id($data->id)]); $proposalsUrl = route('dashboard.cooperations.media.proposal', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.cooperations.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.cooperations.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'name', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } // admin (detail kerjasama -> data media) public function cooperationMedia(Request $request, $id){ if ($request->ajax()) { $cooperation = Cooperation::with(['media'])->where('id', '=', decrypt_id($id))->first(); $data = $cooperation->media; return DataTables::of($data) ->addIndexColumn() ->addColumn('media_name', function ($data) { return $data->name; }) ->addColumn('company_name', function ($data) { return $data->company->name; }) ->addColumn('email', function ($data) { return $data->company->email; }) ->addColumn('type', function ($data) { return ucfirst($data->type); }) ->addColumn('classification', function ($data) { return ucfirst($data->classification); }) ->addColumn('status', function ($data) use ($cooperation) { switch($data->pivot->status){ case 0: return 'Menunggu'; case 1: $status = 'Menerima
'; $isCooperationProposalExists = CooperationProposal::where('cooperation_id', '=', $cooperation->id) ->where('media_id', '=', $data->id)->exists(); if(!$isCooperationProposalExists){ $status .= 'Belum Pengajuan'; }else{ $status .= 'Sudah Pengajuan'; } return $status; case 2: return 'Menolak '; case 3: return 'Tidak Diketahui'; } }) ->rawColumns(['link', 'address', 'status']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } // admin (data pengajuan kerjasama) public function cooperationProposal(Request $request, $id){ if ($request->ajax()) { $cooperation = Cooperation::with(['media', 'proposals'])->where('id', '=', decrypt_id($id))->first(); $data = $cooperation->proposals; return DataTables::of($data) ->addIndexColumn() ->addColumn('name', function ($data) { return '
' . $data->media->name . '
'; }) ->addColumn('send_proposal_at', function ($data) { return idn_date($data->created_at, 'l, d F Y'); }) ->addColumn('status', function ($data){ switch($data->status){ case '0': return 'Menunggu'; case '1': return 'Diterima'; case '2': return 'Ditolak'; default: return 'Tidak Diketahui'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.cooperations.media.proposal.show', ['id' => encrypt_id($data->cooperation->id), 'proposal_id' => encrypt_id($data->id)]); $acceptUrl = route('dashboard.cooperations.media.proposal.accept', ['id' => encrypt_id($data->cooperation->id), 'proposal_id' => encrypt_id($data->id)]); $rejectUrl = route('dashboard.cooperations.media.proposal.reject', ['id' => encrypt_id($data->cooperation->id), 'proposal_id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'name', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } // media (ajuan kerjassama) public function cooperationRequest(Request $request){ if ($request->ajax()) { $user = User::findOrFail(Auth::id()); $mediaId = $user->company->media->id; $media = Media::with('cooperations')->findOrFail($mediaId); $data = $media->cooperations() ->where(function ($query) { $query->where('media_cooperations.status', '!=', 0) ->orWhere(function ($q) { $q->where('media_cooperations.status', 0) ->where('cooperations.end_date', '>=', now()->toDateString()); }); }) ->where('cooperations.start_date', '<=', now()->toDateString()) ->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('name', function ($data) { return '
' . $data->name . '
'; }) ->addColumn('start_date', function ($data) { return idn_date($data->start_date, 'l, d F Y'); }) ->addColumn('end_date', function ($data) { return idn_date($data->end_date, 'l, d F Y'); }) ->addColumn('posted_at', function ($data) { return idn_date($data->created_at, 'l, d F Y'); }) ->addColumn('status', function ($data) use ($media){ $isCooperationProposalExists = CooperationProposal::where('cooperation_id', '=', $data->id) ->where('media_id', '=', $media->id)->exists(); switch($data->pivot->status){ case '0': return 'Menunggu'; case 1: $status = 'Menerima
'; if(!$isCooperationProposalExists){ $status .= 'Belum Mengajukan'; }else{ $status .= 'Sudah Mengajukan'; } return $status; case '2': return 'Ditolak'; default: return 'Tidak Diketahui'; } }) ->addColumn('action', function ($data) use ($media) { $isCooperationProposalExists = CooperationProposal::where('cooperation_id', '=', $data->id) ->where('media_id', '=', $media->id)->exists(); $showUrl = route('dashboard.cooperations.requests.show', ['id' => encrypt_id($data->id)]); // $editUrl = route('dashboard.cooperations.edit', ['id' => encrypt_id($data->id)]); // $deleteUrl = route('dashboard.cooperations.destroy', ['id' => encrypt_id($data->id)]); $acceptUrl = route('dashboard.cooperations.requests.accept', ['id' => encrypt_id($data->id)]); $cooperationProposalUrl = route('dashboard.cooperations.requests.proposal', ['id' => encrypt_id($data->id)]); $rejectUrl = route('dashboard.cooperations.requests.reject', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'name', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } // media (pengajuan saya) public function mediaProposal(Request $request){ if ($request->ajax()) { $user = User::findOrFail(Auth::id()); $mediaId = $user->company->media->id; $data = CooperationProposal::with(['cooperation'])->where('media_id', '=', $mediaId)->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('name', function ($data) { return '
' . $data->cooperation->name . '
'; }) ->addColumn('start_date', function ($data) { return idn_date($data->cooperation->start_date, 'l, d F Y'); }) ->addColumn('end_date', function ($data) { return idn_date($data->cooperation->end_date, 'l, d F Y'); }) ->addColumn('send_proposal_at', function ($data) { return idn_date($data->created_at, 'l, d F Y'); }) ->addColumn('status', function ($data){ switch($data->status){ case '0': return 'Menunggu'; case 1: return 'Diterima
'; case '2': return 'Ditolak'; default: return 'Tidak Diketahui'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.cooperations.requests.media.proposals.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.cooperations.requests.proposal.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.cooperations.requests.proposal.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'name', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function orderMedia(Request $request, $id){ if ($request->ajax()) { $cooperation = Cooperation::with(['media', 'mediaOrder.media'])->where('id', '=', decrypt_id($id))->first(); $data = $cooperation->mediaOrder->media; return DataTables::of($data) ->addIndexColumn() ->addColumn('media_name', function ($data) { return $data->name; }) ->addColumn('company_name', function ($data) { return $data->company->name; }) ->addColumn('email', function ($data) { return $data->company->email; }) ->addColumn('type', function ($data) { return ucfirst($data->type); }) ->addColumn('classification', function ($data) { return ucfirst($data->classification); }) ->addColumn('status', function ($data) use ($cooperation) { switch($data->pivot->status){ case 0: return 'Menunggu'; case 1: return 'Menerima'; case 2: return 'Menolak '; case 3: return 'Tidak Diketahui'; } }) ->rawColumns(['link', 'address', 'status']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function contentRecap(Request $request){ if ($request->ajax()) { $data = ContentRecap::all(); return DataTables::of($data) ->addIndexColumn() ->addColumn('channel', function ($data){ return Str::ucfirst($data->channel); }) ->addColumn('posted_date', function ($data){ return idn_date($data->posted_date, 'd F Y'); }) ->addColumn('link', function ($data){ return ''.$data->link.''; }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.content.recaps.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.content.recaps.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.content.recaps.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['link', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function mediaMonitoring(Request $request){ if ($request->ajax()) { $data = MediaMonitoring::with(['enhancer'])->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('enhancer', function ($data) { return $data->enhancer->name; }) ->addColumn('input_date', function ($data) { return idn_date($data->input_date, 'd F Y'); }) ->addColumn('title', function ($data) { return shorten_text($data->title, 40); }) ->addColumn('link', function ($data) { return ''.$data->link.''; }) ->addColumn('issue_status', function ($data) { if ($data->issue) { return 'Sudah Ditambahkan'; }else{ return 'Belum Ditambahkan'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.media.monitorings.show', ['id' => encrypt_id($data->id)]); $addIssueUrl = route('dashboard.issue.managements.create', ['media_monitoring' => encrypt_id($data->id)]); $editUrl = route('dashboard.media.monitorings.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.media.monitorings.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['issue_status', 'link', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function issueManagement(Request $request){ if ($request->ajax()) { $data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('enhancer', function ($data) { return $data->enhancer->name; }) ->addColumn('code', function ($data) { return $data->mediaMonitoring->code; }) ->addColumn('media_name', function ($data) { return $data->mediaMonitoring->media_name; }) ->addColumn('monitoring_media_title', function ($data) { return '
' . $data->mediaMonitoring->title . '
'; }) ->addColumn('location', function ($data) { return $data->location->name; }) ->addColumn('sub_location', function ($data) { return $data->subLocation->name; }) ->addColumn('classification', function ($data) { return $data->classification->name; }) ->addColumn('sub_classification', function ($data) { return $data->subClassification->name; }) ->addColumn('issue', function ($data) { return Str::ucfirst($data->issue); }) ->addColumn('response', function ($data) { return Str::ucfirst($data->issue); }) ->addColumn('government_agencies', function ($data) { return $data->governmentAgencies->map(function($agency) { return Str::ucfirst($agency->name); })->implode(', '); }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.issue.managements.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.issue.managements.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.issue.managements.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['monitoring_media_title', 'issue_status', 'link', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function user(Request $request){ if ($request->ajax()) { $roleParam = $request->input('role', null); if($roleParam){ $role = Role::findOrFail(decrypt_id($roleParam)); $data = User::with(['role'])->where('role_id', '=', $role->id)->get(); }else{ $data = User::with(['role'])->get(); } return DataTables::of($data) ->addIndexColumn() ->addColumn('role', function ($data){ return $data->role->name; }) ->addColumn('status', function ($data){ switch($data->status){ case '0': return 'Menunggu'; case '1': return 'Aktif'; case '2': return 'Nonaktif'; case '3': return 'Ditolak'; default: return 'Tidak Diketahui'; } }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.users.show', ['id' => encrypt_id($data->id)]); $acceptUrl = route('dashboard.users.status.action', ['id' => encrypt_id($data->id), 'action' => 'accept']); $rejectUrl = route('dashboard.users.status.action', ['id' => encrypt_id($data->id), 'action' => 'reject']); $resetPasswordUrl = route('dashboard.users.reset.password', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.users.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.users.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['status', 'action']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } public function role(Request $request){ if ($request->ajax()) { $data = Role::with(['user'])->get(); return DataTables::of($data) ->addIndexColumn() ->addColumn('account_count', function ($data) { $accountCount = $data->user->count(); if($accountCount > 0){ return $accountCount. ' [Lihat]'; }else{ return $accountCount; } }) ->rawColumns(['account_count']) ->make(true); } return response()->json(['error' => 'Unauthorized'], 401); } }