From ae25b79f92c65f52e02f3462c55fc45d5e7af813 Mon Sep 17 00:00:00 2001 From: SahrulGnwn Date: Wed, 10 Aug 2022 23:53:13 +0700 Subject: [PATCH] Change index table to DataTable --- .../Moderation/TicketsController.php | 56 +++++++++++- app/Http/Controllers/TicketsController.php | 36 ++++++++ resources/views/layouts/main.blade.php | 2 +- .../views/moderator/ticket/index.blade.php | 86 ++++++++----------- resources/views/ticket/index.blade.php | 59 ++++++------- routes/web.php | 2 + 6 files changed, 154 insertions(+), 87 deletions(-) diff --git a/app/Http/Controllers/Moderation/TicketsController.php b/app/Http/Controllers/Moderation/TicketsController.php index a0dbb0fb..4ef25bd0 100644 --- a/app/Http/Controllers/Moderation/TicketsController.php +++ b/app/Http/Controllers/Moderation/TicketsController.php @@ -59,4 +59,58 @@ class TicketsController extends Controller $user->notify(new ReplyNotification($ticket, $user, $newmessage)); return redirect()->back()->with('success', __('Your comment has been submitted')); } -} + + public function dataTable() + { + $query = Ticket::query(); + + return datatables($query) + ->addColumn('category', function (Ticket $tickets) { + return $tickets->ticketcategory->name; + }) + ->editColumn('title', function (Ticket $tickets) { + return '' . "#" . $tickets->ticket_id . " - " . $tickets->title . ''; + }) + ->editColumn('user_id', function (Ticket $tickets) { + return '' . $tickets->user->name . ''; + }) + ->addColumn('actions', function (Ticket $tickets) { + return ' + +
+ ' . csrf_field() . ' + ' . method_field("POST") . ' + +
+
+ ' . csrf_field() . ' + ' . method_field("POST") . ' + +
+ '; + }) + ->editColumn('status', function (Ticket $tickets) { + switch ($tickets->status) { + case 'Open': + $badgeColor = 'badge-success'; + break; + case 'Closed': + $badgeColor = 'badge-danger'; + break; + case 'Answered': + $badgeColor = 'badge-info'; + break; + default: + $badgeColor = 'badge-warning'; + break; + } + + return '' . $tickets->status . ''; + }) + ->editColumn('updated_at', function (Ticket $tickets) { + return $tickets->updated_at ? $tickets->updated_at->diffForHumans() : ''; + }) + ->rawColumns(['category', 'title', 'user_id', 'status', 'updated_at', 'actions']) + ->make(true); + } +} diff --git a/app/Http/Controllers/TicketsController.php b/app/Http/Controllers/TicketsController.php index f845d4c4..8155037b 100644 --- a/app/Http/Controllers/TicketsController.php +++ b/app/Http/Controllers/TicketsController.php @@ -81,4 +81,40 @@ class TicketsController extends Controller Notification::send($admin, new AdminReplyNotification($ticket, $user, $newmessage)); return redirect()->back()->with('success', __('Your comment has been submitted')); } + + public function dataTable() + { + $query = Ticket::where("user_id", Auth::user()->id)->get(); + + return datatables($query) + ->addColumn('category', function (Ticket $tickets) { + return $tickets->ticketcategory->name; + }) + ->editColumn('title', function (Ticket $tickets) { + return '' . "#" . $tickets->ticket_id . " - " . $tickets->title . ''; + }) + ->editColumn('status', function (Ticket $tickets) { + switch ($tickets->status) { + case 'Open': + $badgeColor = 'badge-success'; + break; + case 'Closed': + $badgeColor = 'badge-danger'; + break; + case 'Answered': + $badgeColor = 'badge-info'; + break; + default: + $badgeColor = 'badge-warning'; + break; + } + + return '' . $tickets->status . ''; + }) + ->editColumn('updated_at', function (Ticket $tickets) { + return $tickets->updated_at ? $tickets->updated_at->diffForHumans() : ''; + }) + ->rawColumns(['category', 'title', 'status', 'updated_at']) + ->make(true); + } } diff --git a/resources/views/layouts/main.blade.php b/resources/views/layouts/main.blade.php index 5a7f4ade..458a2398 100644 --- a/resources/views/layouts/main.blade.php +++ b/resources/views/layouts/main.blade.php @@ -238,7 +238,7 @@