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('slug', '=', $classificationParam)->first(); $data = SubClassification::with(['classification'])->where('classification_id', '=', $classification->id)->get(); }else{ $data = SubClassification::with(['classification'])->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 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 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('action', function ($data) { $showUrl = route('dashboard.media.monitoring.show', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.media.monitoring.edit', ['id' => encrypt_id($data->id)]); $deleteUrl = route('dashboard.media.monitoring.destroy', ['id' => encrypt_id($data->id)]); $dropdown = ''; return $dropdown; }) ->rawColumns(['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); } }