feat(issue management): add date range and user for export data and filder datatable

This commit is contained in:
Yoga Pangestu 2025-10-10 15:37:25 +07:00
parent 019c6374f2
commit 51c2365cfa
5 changed files with 1284 additions and 1112 deletions

View File

@ -11,26 +11,54 @@
use Maatwebsite\Excel\Concerns\WithStyles; use Maatwebsite\Excel\Concerns\WithStyles;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
class IssueManagementExport implements FromCollection, WithHeadings, WithStyles, WithMapping class IssueManagementExport implements FromCollection, WithHeadings, WithMapping, WithStyles
{ {
/** /**
* @return \Illuminate\Support\Collection * @return \Illuminate\Support\Collection
*/ */
protected $no = 1; protected $no = 1;
protected $classification; protected $classification;
protected $sub_classification; protected $sub_classification;
protected $location; protected $location;
protected $sub_location; protected $sub_location;
protected $government_agency; protected $government_agency;
protected $issue; protected $issue;
protected $response; protected $response;
protected $year; protected $year;
protected $month; protected $month;
protected $date; protected $date;
public function __construct($classification, $sub_classification, $location, $sub_location, $government_agency, $issue, $response, $year, $month, $date) protected $start_date;
{
protected $end_date;
protected $user;
public function __construct(
$classification,
$sub_classification,
$location,
$sub_location,
$government_agency,
$issue,
$response,
$year,
$month,
$date,
$start_date,
$end_date,
$user
) {
$this->classification = $classification; $this->classification = $classification;
$this->sub_classification = $sub_classification; $this->sub_classification = $sub_classification;
$this->location = $location; $this->location = $location;
@ -41,6 +69,9 @@ public function __construct($classification, $sub_classification, $location, $su
$this->year = $year; $this->year = $year;
$this->month = $month; $this->month = $month;
$this->date = $date; $this->date = $date;
$this->start_date = $start_date;
$this->end_date = $end_date;
$this->user = $user;
} }
public function collection() public function collection()
@ -117,6 +148,17 @@ public function collection()
$query->whereDate('created_at', $this->date); $query->whereDate('created_at', $this->date);
} }
if ($this->start_date && $this->end_date) {
$start = \Carbon\Carbon::createFromFormat('m/d/Y', $this->start_date)->startOfDay();
$end = \Carbon\Carbon::createFromFormat('m/d/Y', $this->end_date)->endOfDay();
$query->whereBetween('created_at', [$start, $end]);
}
if ($this->user) {
$query->where('enhancer_id', decrypt_id($this->user));
}
return $query->get(); return $query->get();
} }
@ -144,7 +186,7 @@ public function headings(): array
{ {
return [ return [
['Data Managemen Isu', '', '', '', '', '', '', '', '', '', '', ''], ['Data Managemen Isu', '', '', '', '', '', '', '', '', '', '', ''],
['NO', 'Kode', 'Monitoring Media', 'Klasifikasi', 'Sub Klasifikasi', 'Lokus', 'Sub Lokus', 'Isu', 'Tanggapan', 'Dinas', 'Oleh', 'Dibuat Pada'] ['NO', 'Kode', 'Monitoring Media', 'Klasifikasi', 'Sub Klasifikasi', 'Lokus', 'Sub Lokus', 'Isu', 'Tanggapan', 'Dinas', 'Oleh', 'Dibuat Pada'],
]; ];
} }

View File

@ -31,16 +31,14 @@
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use SebastianBergmann\Type\TrueType;
use Yajra\DataTables\DataTables;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Spatie\Activitylog\Models\Activity; use Spatie\Activitylog\Models\Activity;
use Yajra\DataTables\DataTables;
class DatatableController extends Controller class DatatableController extends Controller
{ {
public function classification(Request $request){ public function classification(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
if ($request->input('filter') === 'deleted') { if ($request->input('filter') === 'deleted') {
@ -51,7 +49,6 @@ public function classification(Request $request){
$newData = $request->input('new_data', null); $newData = $request->input('new_data', null);
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('name', function ($data) use ($newData) { ->addColumn('name', function ($data) use ($newData) {
@ -79,7 +76,6 @@ public function classification(Request $request){
} else { } else {
return $subClassificationCount; return $subClassificationCount;
} }
}) })
->addColumn('issues', function ($data) { ->addColumn('issues', function ($data) {
$issueCount = $data->issues->count(); $issueCount = $data->issues->count();
@ -89,7 +85,6 @@ public function classification(Request $request){
} else { } else {
return $issueCount; return $issueCount;
} }
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
$showUrl = route('dashboard.classifications.show', ['id' => encrypt_id($data->id)]); $showUrl = route('dashboard.classifications.show', ['id' => encrypt_id($data->id)]);
@ -116,7 +111,6 @@ public function classification(Request $request){
if (is_role([1]) && ! filled($data->deleted_at)) { if (is_role([1]) && ! filled($data->deleted_at)) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus klasifikasi '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus klasifikasi '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -131,10 +125,10 @@ public function classification(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function subClassification(Request $request){ public function subClassification(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
if ($request->input('filter') === 'deleted') { if ($request->input('filter') === 'deleted') {
@ -161,8 +155,6 @@ public function subClassification(Request $request){
$newData = $request->input('new_data', null); $newData = $request->input('new_data', null);
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('name', function ($data) use ($newData) { ->addColumn('name', function ($data) use ($newData) {
@ -193,7 +185,6 @@ public function subClassification(Request $request){
} else { } else {
return $issueCount; return $issueCount;
} }
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
$showUrl = route('dashboard.sub.classifications.show', ['id' => encrypt_id($data->id)]); $showUrl = route('dashboard.sub.classifications.show', ['id' => encrypt_id($data->id)]);
@ -214,7 +205,6 @@ public function subClassification(Request $request){
if (is_role([1]) && ! filled($data->deleted_at)) { if (is_role([1]) && ! filled($data->deleted_at)) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus sub klasifikasi '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus sub klasifikasi '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
// else{ // else{
// $dropdown .= '<li><a href="javascript:void(0);" onclick="restoreItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin mengembalikan sub klasifikasi '.$data->name.'? Item ini akan dipulihkan!\')"><em class="icon ni ni-unarchive"></em><span>Pulihkan</span></a></li>'; // $dropdown .= '<li><a href="javascript:void(0);" onclick="restoreItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin mengembalikan sub klasifikasi '.$data->name.'? Item ini akan dipulihkan!\')"><em class="icon ni ni-unarchive"></em><span>Pulihkan</span></a></li>';
@ -232,10 +222,10 @@ public function subClassification(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function location(Request $request){ public function location(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$data = Location::with(['subLocations'])->get(); $data = Location::with(['subLocations'])->get();
@ -267,7 +257,6 @@ public function location(Request $request){
} else { } else {
return $subLocationsCount; return $subLocationsCount;
} }
}) })
->addColumn('issues', function ($data) { ->addColumn('issues', function ($data) {
$issueCount = $data->issues->count(); $issueCount = $data->issues->count();
@ -277,7 +266,6 @@ public function location(Request $request){
} else { } else {
return $issueCount; return $issueCount;
} }
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
$showUrl = route('dashboard.locations.show', ['id' => encrypt_id($data->id)]); $showUrl = route('dashboard.locations.show', ['id' => encrypt_id($data->id)]);
@ -304,7 +292,6 @@ public function location(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus lokus '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus lokus '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -319,10 +306,10 @@ public function location(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function subLocation(Request $request){ public function subLocation(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$locationParam = $request->input('location', null); $locationParam = $request->input('location', null);
@ -363,7 +350,6 @@ public function subLocation(Request $request){
} else { } else {
return $issueCount; return $issueCount;
} }
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
$showUrl = route('dashboard.sub.locations.show', ['id' => encrypt_id($data->id)]); $showUrl = route('dashboard.sub.locations.show', ['id' => encrypt_id($data->id)]);
@ -384,7 +370,6 @@ public function subLocation(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus sub lokus '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus sub lokus '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -399,10 +384,10 @@ public function subLocation(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function governmentAgency(Request $request){ public function governmentAgency(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$data = GovernmentAgency::with(['issues'])->get(); $data = GovernmentAgency::with(['issues'])->get();
@ -429,7 +414,6 @@ public function governmentAgency(Request $request){
} else { } else {
return $issueCount; return $issueCount;
} }
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
$showUrl = route('dashboard.government.agencies.show', ['id' => encrypt_id($data->id)]); $showUrl = route('dashboard.government.agencies.show', ['id' => encrypt_id($data->id)]);
@ -450,7 +434,6 @@ public function governmentAgency(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus OPD '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus OPD '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -465,10 +448,10 @@ public function governmentAgency(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function airingProofTheme(Request $request){ public function airingProofTheme(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$data = AiringProofTheme::all(); $data = AiringProofTheme::all();
@ -497,7 +480,6 @@ public function airingProofTheme(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -512,10 +494,10 @@ public function airingProofTheme(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function contentRecapClassification(Request $request){ public function contentRecapClassification(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$data = ContentRecapClassification::all(); $data = ContentRecapClassification::all();
@ -553,7 +535,6 @@ public function contentRecapClassification(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus klasifikasi '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus klasifikasi '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -568,10 +549,10 @@ public function contentRecapClassification(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function news(Request $request){ public function news(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$category = $request->input('category', 'all'); $category = $request->input('category', 'all');
@ -652,7 +633,6 @@ public function news(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus berita '.$data->title.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus berita '.$data->title.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -667,10 +647,10 @@ public function news(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function announcement(Request $request, $category){ public function announcement(Request $request, $category)
{
if ($request->ajax()) { if ($request->ajax()) {
$data = Announcement::whereHas('users', function ($query) use ($category) { $data = Announcement::whereHas('users', function ($query) use ($category) {
$query->where('announcements_users.category', $category); $query->where('announcements_users.category', $category);
@ -683,7 +663,6 @@ public function announcement(Request $request, $category){
}) })
->get(); ->get();
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('sender', function ($data) use ($category) { ->addColumn('sender', function ($data) use ($category) {
@ -720,7 +699,6 @@ public function announcement(Request $request, $category){
if (is_role([1]) && $category !== 'system') { if (is_role([1]) && $category !== 'system') {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus pengumuman '.$data->headline.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus pengumuman '.$data->headline.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -735,10 +713,10 @@ public function announcement(Request $request, $category){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function mediaAnnouncement(Request $request, $category){ public function mediaAnnouncement(Request $request, $category)
{
if ($request->ajax()) { if ($request->ajax()) {
$data = User::with(['announcements' => function ($query) use ($category) { $data = User::with(['announcements' => function ($query) use ($category) {
$query->wherePivot('category', $category) $query->wherePivot('category', $category)
@ -785,7 +763,6 @@ public function mediaAnnouncement(Request $request, $category){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus pengumuman '.$data->headline.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus pengumuman '.$data->headline.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -800,10 +777,10 @@ public function mediaAnnouncement(Request $request, $category){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function company(Request $request){ public function company(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$status = $request->input('status', null); $status = $request->input('status', null);
@ -931,7 +908,6 @@ public function company(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -946,10 +922,10 @@ public function company(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function media(Request $request){ public function media(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$type = $request->input('type', null); $type = $request->input('type', null);
@ -1033,8 +1009,6 @@ public function media(Request $request){
$data = $query->get(); $data = $query->get();
// $data = ->get(); // $data = ->get();
return DataTables::of($data) return DataTables::of($data)
@ -1116,7 +1090,6 @@ public function media(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -1131,10 +1104,10 @@ public function media(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function journalist(Request $request){ public function journalist(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$media_ids = $request->input('media_ids', null); $media_ids = $request->input('media_ids', null);
@ -1208,16 +1181,15 @@ public function journalist(Request $request){
$data = $query->get(); $data = $query->get();
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('journalist_name', function ($data) { ->addColumn('journalist_name', function ($data) {
return $data->name; return $data->name;
}) })
->addColumn('company_name', function ($data) use ($media_ids_array) { ->addColumn('company_name', function ($data) {
return $data->media->company->name; return $data->media->company->name;
}) })
->addColumn('media_name', function ($data) use ($media_ids_array) { ->addColumn('media_name', function ($data) {
return $data->media->name; return $data->media->name;
}) })
->addColumn('status', function ($data) { ->addColumn('status', function ($data) {
@ -1279,7 +1251,6 @@ public function journalist(Request $request){
if (is_role([3])) { if (is_role([3])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -1294,10 +1265,10 @@ public function journalist(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function journalistSubmission(Request $request, $role){ public function journalistSubmission(Request $request, $role)
{
if ($request->ajax()) { if ($request->ajax()) {
$data = Journalist::with(['media' => function ($query) { $data = Journalist::with(['media' => function ($query) {
@ -1321,7 +1292,6 @@ public function journalistSubmission(Request $request, $role){
$data = $data->get(); $data = $data->get();
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('journalist_name', function ($data) { ->addColumn('journalist_name', function ($data) {
@ -1383,7 +1353,6 @@ public function journalistSubmission(Request $request, $role){
if (is_role(['3']) && in_array($data->approved_status, ['0'])) { if (is_role(['3']) && in_array($data->approved_status, ['0'])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus jurnalis '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus jurnalis '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -1398,11 +1367,11 @@ public function journalistSubmission(Request $request, $role){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
// admin (kerja sama) // admin (kerja sama)
public function cooperation(Request $request){ public function cooperation(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$year = $request->input('year', null); $year = $request->input('year', null);
@ -1447,7 +1416,6 @@ public function cooperation(Request $request){
$data = $query->get(); $data = $query->get();
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('name', function ($data) { ->addColumn('name', function ($data) {
@ -1516,7 +1484,6 @@ public function cooperation(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus kerja sama '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus kerja sama '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -1531,11 +1498,11 @@ public function cooperation(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
// admin (detail kerja sama -> data media) // admin (detail kerja sama -> data media)
public function cooperationMedia(Request $request, $id){ public function cooperationMedia(Request $request, $id)
{
if ($request->ajax()) { if ($request->ajax()) {
$cooperation = Cooperation::with(['media'])->where('id', '=', decrypt_id($id))->first(); $cooperation = Cooperation::with(['media'])->where('id', '=', decrypt_id($id))->first();
@ -1592,11 +1559,11 @@ class="text-dark"
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
// admin (data pengajuan kerja sama) // admin (data pengajuan kerja sama)
public function cooperationProposal(Request $request, $id){ public function cooperationProposal(Request $request, $id)
{
if ($request->ajax()) { if ($request->ajax()) {
$cooperation = Cooperation::with(['media', 'proposals'])->where('id', '=', decrypt_id($id))->first(); $cooperation = Cooperation::with(['media', 'proposals'])->where('id', '=', decrypt_id($id))->first();
@ -1657,11 +1624,11 @@ public function cooperationProposal(Request $request, $id){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
// media (ajuan kerja sama) // media (ajuan kerja sama)
public function cooperationRequest(Request $request){ public function cooperationRequest(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$user = User::findOrFail(Auth::id()); $user = User::findOrFail(Auth::id());
@ -1680,8 +1647,6 @@ public function cooperationRequest(Request $request){
->where('cooperations.start_date', '<=', now()->toDateString()) ->where('cooperations.start_date', '<=', now()->toDateString())
->get(); ->get();
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('name', function ($data) { ->addColumn('name', function ($data) {
@ -1714,7 +1679,6 @@ public function cooperationRequest(Request $request){
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>'; return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>';
default: default:
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>'; return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>';
} }
}) })
->addColumn('action', function ($data) use ($media) { ->addColumn('action', function ($data) use ($media) {
@ -1772,20 +1736,18 @@ public function cooperationRequest(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
// media (pengajuan saya) // media (pengajuan saya)
public function mediaProposal(Request $request){ public function mediaProposal(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$user = User::findOrFail(Auth::id()); $user = User::findOrFail(Auth::id());
$mediaId = $user->company->media->id; $mediaId = $user->company->media->id;
$data = CooperationProposal::with(['cooperation'])->where('media_id', '=', $mediaId)->get(); $data = CooperationProposal::with(['cooperation'])->where('media_id', '=', $mediaId)->get();
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('name', function ($data) { ->addColumn('name', function ($data) {
@ -1811,7 +1773,6 @@ public function mediaProposal(Request $request){
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>'; return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>';
default: default:
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>'; return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>';
} }
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
@ -1848,10 +1809,10 @@ public function mediaProposal(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function orderMedia(Request $request, $id){ public function orderMedia(Request $request, $id)
{
if ($request->ajax()) { if ($request->ajax()) {
$cooperation = Cooperation::with(['media', 'mediaOrder.media'])->where('id', '=', decrypt_id($id))->first(); $cooperation = Cooperation::with(['media', 'mediaOrder.media'])->where('id', '=', decrypt_id($id))->first();
@ -1874,7 +1835,7 @@ public function orderMedia(Request $request, $id){
->addColumn('classification', function ($data) { ->addColumn('classification', function ($data) {
return ucfirst($data->classification); return ucfirst($data->classification);
}) })
->addColumn('status', function ($data) use ($cooperation) { ->addColumn('status', function ($data) {
switch ($data->pivot->status) { switch ($data->pivot->status) {
case 0: case 0:
return '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Menunggu</span>'; return '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Menunggu</span>';
@ -1897,10 +1858,10 @@ class="text-dark"
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function adminMediaReport(Request $request, $id){ public function adminMediaReport(Request $request, $id)
{
if ($request->ajax()) { if ($request->ajax()) {
$mediaOrder = Order::with(['reports', 'media'])->findOrFail(decrypt_id($id)); $mediaOrder = Order::with(['reports', 'media'])->findOrFail(decrypt_id($id));
@ -1925,7 +1886,8 @@ public function adminMediaReport(Request $request, $id){
$reportCount = $mediaOrder->reports->filter(function ($report) use ($data) { $reportCount = $mediaOrder->reports->filter(function ($report) use ($data) {
return $report->media_id == $data->id; // Cek jika laporan milik media ini return $report->media_id == $data->id; // Cek jika laporan milik media ini
})->count(); })->count();
return $reportCount . "/" . $mediaOrder->required_reports;
return $reportCount.'/'.$mediaOrder->required_reports;
}) })
->addColumn('action', function ($data) use ($mediaOrder) { ->addColumn('action', function ($data) use ($mediaOrder) {
$showUrl = route('dashboard.cooperations.process', ['id' => encrypt_id($mediaOrder->cooperation->id), 'process' => 'reports', 'mediaId' => encrypt_id($data->id)]); $showUrl = route('dashboard.cooperations.process', ['id' => encrypt_id($mediaOrder->cooperation->id), 'process' => 'reports', 'mediaId' => encrypt_id($data->id)]);
@ -1961,10 +1923,10 @@ public function adminMediaReport(Request $request, $id){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function mediaReport(Request $request, $mediaOrderId, $mediaId){ public function mediaReport(Request $request, $mediaOrderId, $mediaId)
{
if ($request->ajax()) { if ($request->ajax()) {
$mediaOrder = Order::with(['reports', 'media.reports'])->findOrFail(decrypt_id($mediaOrderId)); $mediaOrder = Order::with(['reports', 'media.reports'])->findOrFail(decrypt_id($mediaOrderId));
@ -2049,10 +2011,10 @@ class="text-dark"
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function adminCooperationCompletion(Request $request, $id){ public function adminCooperationCompletion(Request $request, $id)
{
if ($request->ajax()) { if ($request->ajax()) {
$mediaOrder = Order::with(['reports', 'media', 'completions.media'])->findOrFail(decrypt_id($id)); $mediaOrder = Order::with(['reports', 'media', 'completions.media'])->findOrFail(decrypt_id($id));
@ -2120,11 +2082,11 @@ class="text-dark"
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
// Penyelesaian Kerja sama // Penyelesaian Kerja sama
public function cooperationCompletionIndex(Request $request){ public function cooperationCompletionIndex(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$mediaStrArr = $request->input('media', null); $mediaStrArr = $request->input('media', null);
@ -2249,10 +2211,10 @@ class="text-dark"
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function reportIndex(Request $request){ public function reportIndex(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$mediaStrArr = $request->input('media', null); $mediaStrArr = $request->input('media', null);
@ -2309,7 +2271,7 @@ public function reportIndex(Request $request){
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('cooperation', function ($data) use ($media) { ->addColumn('cooperation', function ($data) {
return $data->order->cooperation->name; return $data->order->cooperation->name;
}) })
->addColumn('media_name', function ($data) { ->addColumn('media_name', function ($data) {
@ -2380,10 +2342,10 @@ class="text-dark"
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function cooperationArchive(Request $request){ public function cooperationArchive(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$year = $request->input('year', null); $year = $request->input('year', null);
@ -2425,7 +2387,6 @@ public function cooperationArchive(Request $request){
$data = $query->get(); $data = $query->get();
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('name', function ($data) { ->addColumn('name', function ($data) {
@ -2482,10 +2443,10 @@ public function cooperationArchive(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function contentRecap(Request $request){ public function contentRecap(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$classification = $request->input('classification', null); $classification = $request->input('classification', null);
@ -2536,7 +2497,6 @@ public function contentRecap(Request $request){
// $data = ContentRecap::all(); // $data = ContentRecap::all();
// } // }
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
->addColumn('channel', function ($data) { ->addColumn('channel', function ($data) {
@ -2579,7 +2539,6 @@ public function contentRecap(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus rekap konten '.$data->title.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus rekap konten '.$data->title.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -2594,10 +2553,10 @@ public function contentRecap(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function mediaMonitoring(Request $request){ public function mediaMonitoring(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$news_title = $request->input('news_title', null); $news_title = $request->input('news_title', null);
@ -2723,7 +2682,6 @@ public function mediaMonitoring(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus monitoring media '.$data->code.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus monitoring media '.$data->code.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -2738,12 +2696,11 @@ public function mediaMonitoring(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function issueManagement(Request $request){ public function issueManagement(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$classification = $request->input('classification', null); $classification = $request->input('classification', null);
$sub_classification = $request->input('sub_classification', null); $sub_classification = $request->input('sub_classification', null);
$location = $request->input('location', null); $location = $request->input('location', null);
@ -2754,6 +2711,9 @@ public function issueManagement(Request $request){
$year = $request->input('year', null); $year = $request->input('year', null);
$month = $request->input('month', null); $month = $request->input('month', null);
$date = $request->input('date', null); $date = $request->input('date', null);
$start_date = $request->input('start_date', null);
$end_date = $request->input('end_date', null);
$user = $request->input('user', null);
$query = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies']); $query = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies']);
@ -2827,8 +2787,18 @@ public function issueManagement(Request $request){
$query->whereDate('created_at', $date); $query->whereDate('created_at', $date);
} }
$data = $query->get(); if ($start_date && $end_date) {
$start = \Carbon\Carbon::createFromFormat('m/d/Y', $start_date)->startOfDay();
$end = \Carbon\Carbon::createFromFormat('m/d/Y', $end_date)->endOfDay();
$query->whereBetween('created_at', [$start, $end]);
}
if ($user) {
$query->where('enhancer_id', decrypt_id($user));
}
$data = $query->get();
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()
@ -2889,7 +2859,6 @@ public function issueManagement(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus manajemen isu '.$data->mediaMonitoring->code.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus manajemen isu '.$data->mediaMonitoring->code.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -2904,17 +2873,16 @@ public function issueManagement(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function contactMessage(Request $request){ public function contactMessage(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$status = $request->input('status', null); $status = $request->input('status', null);
$query = Contact::query(); $query = Contact::query();
if ($status && in_array($status, ['replied', 'not_yet_replied'])) { if ($status && in_array($status, ['replied', 'not_yet_replied'])) {
switch ($status) { switch ($status) {
case 'not_yet_replied': case 'not_yet_replied':
@ -2939,7 +2907,6 @@ public function contactMessage(Request $request){
return '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Sudah Dibalas</span>'; return '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Sudah Dibalas</span>';
default: default:
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>'; return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>';
} }
}) })
->addColumn('date', function ($data) { ->addColumn('date', function ($data) {
@ -2972,7 +2939,6 @@ public function contactMessage(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus pengguna '.$data->name.'? Akun pengguna dan data yang berhubungan dengannya juga akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus pengguna '.$data->name.'? Akun pengguna dan data yang berhubungan dengannya juga akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -2987,10 +2953,10 @@ public function contactMessage(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function user(Request $request){ public function user(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$role = $request->input('role', null); $role = $request->input('role', null);
@ -3037,7 +3003,6 @@ public function user(Request $request){
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>'; return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>';
default: default:
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>'; return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>';
} }
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
@ -3085,7 +3050,6 @@ public function user(Request $request){
if (is_role([1])) { if (is_role([1])) {
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus pengguna '.$data->name.'? Akun pengguna dan data yang berhubungan dengannya juga akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>'; $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus pengguna '.$data->name.'? Akun pengguna dan data yang berhubungan dengannya juga akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
} }
$dropdown .= '</ul> $dropdown .= '</ul>
@ -3100,10 +3064,10 @@ public function user(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function role(Request $request){ public function role(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$data = Role::with(['user'])->get(); $data = Role::with(['user'])->get();
@ -3125,10 +3089,10 @@ public function role(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function loginHistory(Request $request){ public function loginHistory(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$year = $request->input('year', null); $year = $request->input('year', null);
@ -3154,19 +3118,19 @@ public function loginHistory(Request $request){
if ($role !== 'all') { if ($role !== 'all') {
if ($role === 'admin') { if ($role === 'admin') {
$query->whereHas('user', function ($q) use ($role) { $query->whereHas('user', function ($q) {
$q->where('role_id', 1); $q->where('role_id', 1);
}); });
} elseif ($role === 'company') { } elseif ($role === 'company') {
$query->whereHas('user', function ($q) use ($role) { $query->whereHas('user', function ($q) {
$q->where('role_id', 3); $q->where('role_id', 3);
}); });
} elseif ($role === 'monitoring_admin') { } elseif ($role === 'monitoring_admin') {
$query->whereHas('user', function ($q) use ($role) { $query->whereHas('user', function ($q) {
$q->where('role_id', 2); $q->where('role_id', 2);
}); });
} elseif ($role === 'content_admin') { } elseif ($role === 'content_admin') {
$query->whereHas('user', function ($q) use ($role) { $query->whereHas('user', function ($q) {
$q->where('role_id', 4); $q->where('role_id', 4);
}); });
} }
@ -3190,10 +3154,10 @@ public function loginHistory(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
public function logActivity(Request $request){ public function logActivity(Request $request)
{
if ($request->ajax()) { if ($request->ajax()) {
$year = $request->input('year', null); $year = $request->input('year', null);
@ -3242,6 +3206,7 @@ public function logActivity(Request $request){
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
$route = route('dashboard.log.activity.show', ['id' => encrypt_id($data->id)]); $route = route('dashboard.log.activity.show', ['id' => encrypt_id($data->id)]);
return '<a href="'.$route.'"><em class="icon ni ni-eye"></em> Lihat</a>'; return '<a href="'.$route.'"><em class="icon ni ni-eye"></em> Lihat</a>';
}) })
->rawColumns(['time', 'action_type', 'action']) ->rawColumns(['time', 'action_type', 'action'])
@ -3249,6 +3214,5 @@ public function logActivity(Request $request){
} }
return response()->json(['error' => 'Unauthorized'], 401); return response()->json(['error' => 'Unauthorized'], 401);
} }
} }

View File

@ -12,16 +12,17 @@
use App\Models\MediaMonitoring; use App\Models\MediaMonitoring;
use App\Models\SubClassification; use App\Models\SubClassification;
use App\Models\SubLocation; use App\Models\SubLocation;
use App\Models\User;
use Barryvdh\DomPDF\Facade\Pdf; use Barryvdh\DomPDF\Facade\Pdf;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
class IssueManagementController extends Controller class IssueManagementController extends Controller
{ {
public function index(Request $request){ public function index(Request $request)
{
return view('dashboard.issue-managements.index', [ return view('dashboard.issue-managements.index', [
'title' => 'Manajemen Isu', 'title' => 'Manajemen Isu',
'classification' => $request->input('classification', null), 'classification' => $request->input('classification', null),
@ -35,23 +36,28 @@ public function index(Request $request){
'year' => $request->input('year', null), 'year' => $request->input('year', null),
'month' => $request->input('month', null), 'month' => $request->input('month', null),
'date' => $request->input('date', null), 'date' => $request->input('date', null),
'start_date' => $request->input('start_date', null),
'end_date' => $request->input('end_date', null),
'user' => $request->input('user', null),
'locations' => Location::all(), 'locations' => Location::all(),
'sub_locations' => SubLocation::all(), 'sub_locations' => SubLocation::all(),
'classifications' => Classification::all(), 'classifications' => Classification::all(),
'sub_classifications' => SubClassification::all(), 'sub_classifications' => SubClassification::all(),
'government_agencies' => GovernmentAgency::all(), 'government_agencies' => GovernmentAgency::all(),
'users' => User::all(),
]); ]);
} }
public function create(Request $request){ public function create(Request $request)
{
return view('dashboard.issue-managements.create', [ return view('dashboard.issue-managements.create', [
'title' => 'Tambah Manajemen Isu', 'title' => 'Tambah Manajemen Isu',
'locations' => Location::all(), 'locations' => Location::all(),
'classifications' => Classification::all(), 'classifications' => Classification::all(),
'governmentAgencies' => GovernmentAgency::all(), 'governmentAgencies' => GovernmentAgency::all(),
'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find(decrypt_id($request->input('media_monitoring'))), 'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find(decrypt_id($request->input('media_monitoring'))),
'mediaMonitoringId' => $request->input('media_monitoring') ?? null 'mediaMonitoringId' => $request->input('media_monitoring') ?? null,
]); ]);
} }
@ -78,10 +84,15 @@ public function store(IssueManagementRequest $request, $media_monitoring_id)
} }
} }
public function edit(Request $request, $id)
public function edit(Request $request, $id) { {
$issueManagement = IssueManagement::with([ $issueManagement = IssueManagement::with([
'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer' 'location',
'subLocation',
'classification',
'subClassification',
'mediaMonitoring',
'enhancer',
])->findOrFail(decrypt_id($id)); ])->findOrFail(decrypt_id($id));
return view('dashboard.issue-managements.edit', [ return view('dashboard.issue-managements.edit', [
@ -92,17 +103,22 @@ public function edit(Request $request, $id) {
'selectedGovernmentAgencies' => $issueManagement->governmentAgencies->pluck('id')->toArray(), 'selectedGovernmentAgencies' => $issueManagement->governmentAgencies->pluck('id')->toArray(),
'issueManagement' => $issueManagement, 'issueManagement' => $issueManagement,
'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find($issueManagement->media_monitoring_id), 'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find($issueManagement->media_monitoring_id),
'mediaMonitoringId' => $request->input('media_monitoring') ?? null 'mediaMonitoringId' => $request->input('media_monitoring') ?? null,
]); ]);
} }
public function update(IssueManagementRequest $request, $id)
public function update(IssueManagementRequest $request, $id){ {
$validatedData = $request->validated(); $validatedData = $request->validated();
try { try {
$issueManagement = IssueManagement::with([ $issueManagement = IssueManagement::with([
'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer' 'location',
'subLocation',
'classification',
'subClassification',
'mediaMonitoring',
'enhancer',
])->findOrFail(decrypt_id($id)); ])->findOrFail(decrypt_id($id));
$validatedData['media_monitoring_id'] = $issueManagement->media_monitoring_id; $validatedData['media_monitoring_id'] = $issueManagement->media_monitoring_id;
@ -117,19 +133,26 @@ public function update(IssueManagementRequest $request, $id){
return redirect()->route('dashboard.issue.managements.show', ['id' => encrypt_id($issueManagement->id)])->with('success-status', 'Berhasil mengubah manajemen isu.'); return redirect()->route('dashboard.issue.managements.show', ['id' => encrypt_id($issueManagement->id)])->with('success-status', 'Berhasil mengubah manajemen isu.');
} }
public function show($id){ public function show($id)
{
$issueManagement = IssueManagement::with([ $issueManagement = IssueManagement::with([
'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer' 'location',
'subLocation',
'classification',
'subClassification',
'mediaMonitoring',
'enhancer',
])->findOrFail(decrypt_id($id)); ])->findOrFail(decrypt_id($id));
return view('dashboard.issue-managements.show', [ return view('dashboard.issue-managements.show', [
'title' => 'Detail Manajemen Isu', 'title' => 'Detail Manajemen Isu',
'issueManagement' => $issueManagement, 'issueManagement' => $issueManagement,
'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find($issueManagement->media_monitoring_id) 'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find($issueManagement->media_monitoring_id),
]); ]);
} }
public function destroy($id){ public function destroy($id)
{
try { try {
$issueManagement = IssueManagement::findOrFail(decrypt_id($id)); $issueManagement = IssueManagement::findOrFail(decrypt_id($id));
@ -156,8 +179,8 @@ public function getSubClassifications($location_id)
return response()->json(['sub_classifications' => $subLocations]); return response()->json(['sub_classifications' => $subLocations]);
} }
public function filter(Request $request){ public function filter(Request $request)
{
try { try {
$filteredRequest = $request->except('_token'); $filteredRequest = $request->except('_token');
@ -173,7 +196,6 @@ public function filter(Request $request){
public function export(Request $request) public function export(Request $request)
{ {
try { try {
$classification = $request->input('classification', null); $classification = $request->input('classification', null);
$sub_classification = $request->input('sub_classification', null); $sub_classification = $request->input('sub_classification', null);
@ -185,21 +207,43 @@ public function export(Request $request)
$year = $request->input('year', null); $year = $request->input('year', null);
$month = $request->input('month', null); $month = $request->input('month', null);
$date = $request->input('date', null); $date = $request->input('date', null);
$start_date = $request->input('start_date', null);
$end_date = $request->input('end_date', null);
$user = $request->input('user', null);
$formattedNow = Carbon::parse(now())->locale('id')->translatedFormat('d-m-Y'); $formattedNow = Carbon::parse(now())->locale('id')->translatedFormat('d-m-Y');
return Excel::download(new IssueManagementExport($classification, $sub_classification, $location, $sub_location, $government_agency, $issue, $response, $year, $month, $date), 'issue-managements-'.$formattedNow.'.xlsx'); return Excel::download(new IssueManagementExport(
$classification,
$sub_classification,
$location,
$sub_location,
$government_agency,
$issue,
$response,
$year,
$month,
$date,
$start_date,
$end_date,
$user
), 'issue-managements-'.$formattedNow.'.xlsx');
} catch (\Exception $e) { } catch (\Exception $e) {
return redirect()->back()->with('failed-status', 'Gagal melakukan proses export data.'); return redirect()->back()->with('failed-status', 'Gagal melakukan proses export data.');
} }
} }
public function printData($id){ public function printData($id)
{
try { try {
$issueManagement = IssueManagement::with([ $issueManagement = IssueManagement::with([
'location', 'subLocation', 'classification', 'subClassification', 'governmentAgencies','enhancer', 'mediaMonitoring' 'location',
'subLocation',
'classification',
'subClassification',
'governmentAgencies',
'enhancer',
'mediaMonitoring',
])->findOrFail(decrypt_id($id)); ])->findOrFail(decrypt_id($id));
$pdf = Pdf::loadView('dashboard.issue-managements.print', compact('issueManagement')); $pdf = Pdf::loadView('dashboard.issue-managements.print', compact('issueManagement'));

View File

@ -13,24 +13,52 @@
</div><!-- .nk-block-head-content --> </div><!-- .nk-block-head-content -->
<div class="nk-block-head-content"> <div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle"> <div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a> <a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1"
data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
<div class="toggle-expand-content" data-content="pageMenu"> <div class="toggle-expand-content" data-content="pageMenu">
<ul class="nk-block-tools g-3"> <ul class="nk-block-tools g-3">
<li> <li>
@if (filled(value: $media_monitoring) || filled(value: $classification) || filled(value: $sub_classification) || filled(value: $location) || filled(value: $sub_location) || filled($year) || filled(value: $government_agency) || filled(value: $issue) || filled($response) || filled($year) || filled($month) || filled($date)) @if (filled(value: $media_monitoring) ||
filled(value: $classification) ||
filled(value: $sub_classification) ||
filled(value: $location) ||
filled(value: $sub_location) ||
filled($year) ||
filled(value: $government_agency) ||
filled(value: $issue) ||
filled($response) ||
filled($year) ||
filled($month) ||
filled($date) ||
filled($start_date) ||
filled($end_date))
<span class="mx-1"> <span class="mx-1">
<a href="{{route('dashboard.issue.managements.index')}}" class="text-secondary"> <a href="{{ route('dashboard.issue.managements.index') }}"
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-xbox-x"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 2c5.523 0 10 4.477 10 10s-4.477 10 -10 10s-10 -4.477 -10 -10s4.477 -10 10 -10m3.6 5.2a1 1 0 0 0 -1.4 .2l-2.2 2.933l-2.2 -2.933a1 1 0 1 0 -1.6 1.2l2.55 3.4l-2.55 3.4a1 1 0 1 0 1.6 1.2l2.2 -2.933l2.2 2.933a1 1 0 0 0 1.6 -1.2l-2.55 -3.4l2.55 -3.4a1 1 0 0 0 -.2 -1.4" /></svg> class="text-secondary">
<svg xmlns="http://www.w3.org/2000/svg" width="24"
height="24" viewBox="0 0 24 24" fill="currentColor"
class="icon icon-tabler icons-tabler-filled icon-tabler-xbox-x">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path
d="M12 2c5.523 0 10 4.477 10 10s-4.477 10 -10 10s-10 -4.477 -10 -10s4.477 -10 10 -10m3.6 5.2a1 1 0 0 0 -1.4 .2l-2.2 2.933l-2.2 -2.933a1 1 0 1 0 -1.6 1.2l2.55 3.4l-2.55 3.4a1 1 0 1 0 1.6 1.2l2.2 -2.933l2.2 2.933a1 1 0 0 0 1.6 -1.2l-2.55 -3.4l2.55 -3.4a1 1 0 0 0 -.2 -1.4" />
</svg>
</a> </a>
</span> </span>
@endif @endif
<div> <div>
<a href="javascript: void(0);" class="btn btn-white btn-dim btn-outline-light" data-bs-toggle="modal" data-bs-target="#modalFilter"><em class="d-none d-sm-inline icon ni ni-filter"></em><span><span class="d-none d-md-inline">Filter</a> <a href="javascript: void(0);"
class="btn btn-white btn-dim btn-outline-light"
data-bs-toggle="modal" data-bs-target="#modalFilter"><em
class="d-none d-sm-inline icon ni ni-filter"></em><span><span
class="d-none d-md-inline">Filter</a>
</div> </div>
</li> </li>
<li> <li>
<div> <div>
<a href="javascript: void(0);" class="btn btn-info" data-bs-toggle="modal" data-bs-target="#modalExport"><em class="d-none d-sm-inline icon ni ni-upload"></em><span><span class="d-none d-md-inline">Export</a> <a href="javascript: void(0);" class="btn btn-info"
data-bs-toggle="modal" data-bs-target="#modalExport"><em
class="d-none d-sm-inline icon ni ni-upload"></em><span><span
class="d-none d-md-inline">Export</a>
</div> </div>
</li> </li>
</ul> </ul>
@ -43,7 +71,8 @@
<div class="card card-bordered card-preview"> <div class="card card-bordered card-preview">
<div class="card-inner"> <div class="card-inner">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped table-bordered nowrap" id="issueManagementsTable" border="1"> <table class="table table-striped table-bordered nowrap" id="issueManagementsTable"
border="1">
<thead> <thead>
<tr> <tr>
<th style="width: 10% !important;">No</th> <th style="width: 10% !important;">No</th>
@ -74,16 +103,19 @@
<em class="icon ni ni-cross"></em> <em class="icon ni ni-cross"></em>
</a> </a>
</div> </div>
<form action="{{route('dashboard.issue.managements.filter')}}" class="form-validate is-alter" method="post"> <form action="{{ route('dashboard.issue.managements.filter') }}"
class="form-validate is-alter" method="post">
@csrf @csrf
<div class="modal-body"> <div class="modal-body">
<div class="form-group"> <div class="form-group">
<label class="form-label">Lokus</label> <label class="form-label">Lokus</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="location"> <select class="form-select js-select2" name="location">
<option value="all" @selected(isset($location) && $location == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($location) && $location == 'all') selected disabled>
Semua</option>
@foreach ($locations as $item) @foreach ($locations as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($location) && $location == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($location) && $location == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -92,9 +124,11 @@
<label class="form-label">Sub Lokus</label> <label class="form-label">Sub Lokus</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="sub_location"> <select class="form-select js-select2" name="sub_location">
<option value="all" @selected(isset($sub_location) && $sub_location == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($sub_location) && $sub_location == 'all') selected disabled>
Semua</option>
@foreach ($sub_locations as $item) @foreach ($sub_locations as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($sub_location) && $sub_location == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($sub_location) && $sub_location == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -103,9 +137,11 @@
<label class="form-label">Klasifikasi</label> <label class="form-label">Klasifikasi</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="classification"> <select class="form-select js-select2" name="classification">
<option value="all" @selected(isset($classification) && $classification == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($classification) && $classification == 'all') selected disabled>
Semua</option>
@foreach ($classifications as $item) @foreach ($classifications as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($classification) && $classification == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($classification) && $classification == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -114,9 +150,11 @@
<label class="form-label">Sub Klasifikasi</label> <label class="form-label">Sub Klasifikasi</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="sub_classification"> <select class="form-select js-select2" name="sub_classification">
<option value="all" @selected(isset($sub_classification) && $sub_classification == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($sub_classification) && $sub_classification == 'all') selected disabled>
Semua</option>
@foreach ($sub_classifications as $item) @foreach ($sub_classifications as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($sub_classification) && $sub_classification == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($sub_classification) && $sub_classification == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -125,9 +163,11 @@
<label class="form-label">Dinas/OPD</label> <label class="form-label">Dinas/OPD</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="government_agency"> <select class="form-select js-select2" name="government_agency">
<option value="all" @selected(isset($government_agency) && $government_agency == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($government_agency) && $government_agency == 'all') selected disabled>
Semua</option>
@foreach ($government_agencies as $item) @foreach ($government_agencies as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($government_agency) && $government_agency == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($government_agency) && $government_agency == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -136,7 +176,8 @@
<label class="form-label">Isu</label> <label class="form-label">Isu</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="issue"> <select class="form-select js-select2" name="issue">
<option value="all" @selected(isset($issue) && $issue == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($issue) && $issue == 'all') selected disabled>
Semua</option>
<option value="positive" @selected(isset($issue) && $issue == 'positive')>Positif</option> <option value="positive" @selected(isset($issue) && $issue == 'positive')>Positif</option>
<option value="negative" @selected(isset($issue) && $issue == 'negative')>Negatif</option> <option value="negative" @selected(isset($issue) && $issue == 'negative')>Negatif</option>
<option value="neutral" @selected(isset($issue) && $issue == 'neutral')>Netral</option> <option value="neutral" @selected(isset($issue) && $issue == 'neutral')>Netral</option>
@ -148,7 +189,8 @@
<label class="form-label">Tanggapan</label> <label class="form-label">Tanggapan</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="response"> <select class="form-select js-select2" name="response">
<option value="all" @selected(isset($response) && $response == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($response) && $response == 'all') selected disabled>
Semua</option>
<option value="positive" @selected(isset($response) && $response == 'positive')>Positif</option> <option value="positive" @selected(isset($response) && $response == 'positive')>Positif</option>
<option value="negative" @selected(isset($response) && $response == 'negative')>Negatif</option> <option value="negative" @selected(isset($response) && $response == 'negative')>Negatif</option>
<option value="neutral" @selected(isset($response) && $response == 'neutral')>Netral</option> <option value="neutral" @selected(isset($response) && $response == 'neutral')>Netral</option>
@ -159,19 +201,51 @@
<div class="form-group"> <div class="form-group">
<label class="form-label" for="year">Tahun</label> <label class="form-label" for="year">Tahun</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<input type="number" class="form-control" id="year" placeholder="Data isu pada tahun" name="year" value="{{ old('year', $year ?? '') }}"> <input type="number" class="form-control" id="year"
placeholder="Data isu pada tahun" name="year"
value="{{ old('year', $year ?? '') }}">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label" for="month">Bulan</label> <label class="form-label" for="month">Bulan</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<input type="month" class="form-control" id="month" placeholder="Data berita pada bulan dan tahun" name="month" value="{{ old('month', $month ?? '') }}"> <input type="month" class="form-control" id="month"
placeholder="Data berita pada bulan dan tahun" name="month"
value="{{ old('month', $month ?? '') }}">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label" for="date">Tanggal</label> <label class="form-label" for="date">Tanggal</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<input type="date" class="form-control" id="date" placeholder="Data berita pada bulan dan tahun" name="date" value="{{ old('date', $date ?? '') }}"> <input type="date" class="form-control" id="date"
placeholder="Data berita pada bulan dan tahun" name="date"
value="{{ old('date', $date ?? '') }}">
</div>
</div>
<div class="form-group"> <label class="form-label">Rentang Tanggal</label>
<div class="form-control-wrap">
<div class="input-daterange date-picker-range input-group">
<input type="text" class="form-control" id="start-date"
name="start_date"
value="{{ old('start_date', $start_date ?? '') }}" />
<div class="input-group-addon">TO</div>
<input type="text" class="form-control" id="end-date"
name="end_date" value="{{ old('end_date', $end_date ?? '') }}" />
</div>
</div>
</div>
<div class="form-group">
<label class="form-label">Pengguna</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="user">
<option value="all" @selected(isset($user) && $user == 'all') selected disabled>
Semua</option>
@foreach ($users as $item)
<option value="{{ encrypt_id($item->id) }}"
@selected(isset($user) && $user == encrypt_id($item->id))>{{ $item->name }}
</option>
@endforeach
</select>
</div> </div>
</div> </div>
</div> </div>
@ -189,20 +263,24 @@
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title">Export</h5> <h5 class="modal-title">Export</h5>
<a href="javascript:void(0);" class="close" data-bs-dismiss="modal" aria-label="Close"> <a href="javascript:void(0);" class="close" data-bs-dismiss="modal"
aria-label="Close">
<em class="icon ni ni-cross"></em> <em class="icon ni ni-cross"></em>
</a> </a>
</div> </div>
<form action="{{route('dashboard.issue.managements.export')}}" class="form-validate is-alter" method="post"> <form action="{{ route('dashboard.issue.managements.export') }}"
class="form-validate is-alter" method="post">
@csrf @csrf
<div class="modal-body"> <div class="modal-body">
<div class="form-group"> <div class="form-group">
<label class="form-label">Lokus</label> <label class="form-label">Lokus</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="location"> <select class="form-select js-select2" name="location">
<option value="all" @selected(isset($location) && $location == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($location) && $location == 'all') selected disabled>
Semua</option>
@foreach ($locations as $item) @foreach ($locations as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($location) && $location == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($location) && $location == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -211,9 +289,11 @@
<label class="form-label">Sub Lokus</label> <label class="form-label">Sub Lokus</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="sub_location"> <select class="form-select js-select2" name="sub_location">
<option value="all" @selected(isset($sub_location) && $sub_location == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($sub_location) && $sub_location == 'all') selected disabled>
Semua</option>
@foreach ($sub_locations as $item) @foreach ($sub_locations as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($sub_location) && $sub_location == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($sub_location) && $sub_location == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -222,9 +302,11 @@
<label class="form-label">Klasifikasi</label> <label class="form-label">Klasifikasi</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="classification"> <select class="form-select js-select2" name="classification">
<option value="all" @selected(isset($classification) && $classification == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($classification) && $classification == 'all') selected disabled>
Semua</option>
@foreach ($classifications as $item) @foreach ($classifications as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($classification) && $classification == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($classification) && $classification == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -233,9 +315,11 @@
<label class="form-label">Sub Klasifikasi</label> <label class="form-label">Sub Klasifikasi</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="sub_classification"> <select class="form-select js-select2" name="sub_classification">
<option value="all" @selected(isset($sub_classification) && $sub_classification == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($sub_classification) && $sub_classification == 'all') selected disabled>
Semua</option>
@foreach ($sub_classifications as $item) @foreach ($sub_classifications as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($sub_classification) && $sub_classification == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($sub_classification) && $sub_classification == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -244,9 +328,11 @@
<label class="form-label">Dinas/OPD</label> <label class="form-label">Dinas/OPD</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="government_agency"> <select class="form-select js-select2" name="government_agency">
<option value="all" @selected(isset($government_agency) && $government_agency == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($government_agency) && $government_agency == 'all') selected disabled>
Semua</option>
@foreach ($government_agencies as $item) @foreach ($government_agencies as $item)
<option value="{{ encrypt_id($item->id) }}" @selected(isset($government_agency) && $government_agency == encrypt_id($item->id))>{{$item->name}}</option> <option value="{{ encrypt_id($item->id) }}"
@selected(isset($government_agency) && $government_agency == encrypt_id($item->id))>{{ $item->name }}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
@ -255,7 +341,8 @@
<label class="form-label">Isu</label> <label class="form-label">Isu</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="issue"> <select class="form-select js-select2" name="issue">
<option value="all" @selected(isset($issue) && $issue == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($issue) && $issue == 'all') selected disabled>
Semua</option>
<option value="positive" @selected(isset($issue) && $issue == 'positive')>Positif</option> <option value="positive" @selected(isset($issue) && $issue == 'positive')>Positif</option>
<option value="negative" @selected(isset($issue) && $issue == 'negative')>Negatif</option> <option value="negative" @selected(isset($issue) && $issue == 'negative')>Negatif</option>
<option value="neutral" @selected(isset($issue) && $issue == 'neutral')>Netral</option> <option value="neutral" @selected(isset($issue) && $issue == 'neutral')>Netral</option>
@ -267,7 +354,8 @@
<label class="form-label">Tanggapan</label> <label class="form-label">Tanggapan</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="response"> <select class="form-select js-select2" name="response">
<option value="all" @selected(isset($response) && $response == 'all') selected disabled>Semua</option> <option value="all" @selected(isset($response) && $response == 'all') selected disabled>
Semua</option>
<option value="positive" @selected(isset($response) && $response == 'positive')>Positif</option> <option value="positive" @selected(isset($response) && $response == 'positive')>Positif</option>
<option value="negative" @selected(isset($response) && $response == 'negative')>Negatif</option> <option value="negative" @selected(isset($response) && $response == 'negative')>Negatif</option>
<option value="neutral" @selected(isset($response) && $response == 'neutral')>Netral</option> <option value="neutral" @selected(isset($response) && $response == 'neutral')>Netral</option>
@ -278,19 +366,51 @@
<div class="form-group"> <div class="form-group">
<label class="form-label" for="year">Tahun</label> <label class="form-label" for="year">Tahun</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<input type="number" class="form-control" id="year" placeholder="Data isu pada tahun" name="year" value="{{ old('year', $year ?? '') }}"> <input type="number" class="form-control" id="year"
placeholder="Data isu pada tahun" name="year"
value="{{ old('year', $year ?? '') }}">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label" for="month">Bulan</label> <label class="form-label" for="month">Bulan</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<input type="month" class="form-control" id="month" placeholder="Data berita pada bulan dan tahun" name="month" value="{{ old('month', $month ?? '') }}"> <input type="month" class="form-control" id="month"
placeholder="Data berita pada bulan dan tahun" name="month"
value="{{ old('month', $month ?? '') }}">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label" for="date">Tanggal</label> <label class="form-label" for="date">Tanggal</label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<input type="date" class="form-control" id="date" placeholder="Data berita pada bulan dan tahun" name="date" value="{{ old('date', $date ?? '') }}"> <input type="date" class="form-control" id="date"
placeholder="Data berita pada bulan dan tahun" name="date"
value="{{ old('date', $date ?? '') }}">
</div>
</div>
<div class="form-group"> <label class="form-label">Rentang Tanggal</label>
<div class="form-control-wrap">
<div class="input-daterange date-picker-range input-group">
<input type="text" class="form-control" id="start-date"
name="start_date"
value="{{ old('start_date', $start_date ?? '') }}" />
<div class="input-group-addon">TO</div>
<input type="text" class="form-control" id="end-date"
name="end_date" value="{{ old('end_date', $end_date ?? '') }}" />
</div>
</div>
</div>
<div class="form-group">
<label class="form-label">Pengguna</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="user">
<option value="all" @selected(isset($user) && $user == 'all') selected disabled>
Semua</option>
@foreach ($users as $item)
<option value="{{ encrypt_id($item->id) }}"
@selected(isset($user) && $user == encrypt_id($item->id))>{{ $item->name }}
</option>
@endforeach
</select>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1237,6 +1237,8 @@
d.year = '{{ $year }}'; d.year = '{{ $year }}';
d.month = '{{ $month }}'; d.month = '{{ $month }}';
d.date = '{{ $date }}'; d.date = '{{ $date }}';
d.start_date = '{{ $start_date }}';
d.end_date = '{{ $end_date }}';
} }
}, },
columns: [ columns: [