From 8bb823512d975d3bbd650a2fbedae507301a4f5d Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Thu, 17 Apr 2025 10:47:05 +0200 Subject: [PATCH] fix: Fix ticket sorting --- app/Http/Controllers/Bo/TicketController.php | 45 +++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Bo/TicketController.php b/app/Http/Controllers/Bo/TicketController.php index 4eb8cb0..0ba87b9 100644 --- a/app/Http/Controllers/Bo/TicketController.php +++ b/app/Http/Controllers/Bo/TicketController.php @@ -97,6 +97,12 @@ class TicketController extends Controller TicketStatusEnum::archived ); + if (!$user->isAdmin() && $user->sites->count() === 1) { + $request->merge([ + 'pr' => $user->sites->first()->id, + ]); + } + $tickets = $this->filterTickets($tickets, $request); $tickets = $this->searchTicket($tickets, $request); @@ -557,6 +563,8 @@ class TicketController extends Controller Session::remove('tickets.st'); Session::remove('tickets.pr'); Session::remove('tickets.ty'); + Session::remove('tickets.sort_col'); + Session::remove('tickets.sort_way'); Session::remove('tickets.or'); Session::remove('tickets.search'); } @@ -572,6 +580,12 @@ class TicketController extends Controller if ($request->tys) { Session::remove('tickets.ty'); } + if ($request->sort_col) { + Session::put('tickets.sort_col', $request->sort_col); + } + if ($request->sort_way) { + Session::put('tickets.sort_way', $request->sort_way); + } if ($request->ord) { Session::remove('tickets.or'); } @@ -580,7 +594,6 @@ class TicketController extends Controller } if ($request->st) { Session::put('tickets.st', $request->st); - Session::remove('tickets.or'); } if ($request->ty) { Session::put('tickets.ty', $request->ty); @@ -588,9 +601,19 @@ class TicketController extends Controller if ($request->ass) { Session::put('tickets.ass', $request->ass); } + if (Session::has('tickets.or')) { + Session::remove('tickets.ass'); + Session::remove('tickets.st'); + Session::remove('tickets.ty'); + Session::remove('tickets.sort_col'); + Session::remove('tickets.sort_way'); + Session::remove('tickets.search'); + } + if ($request->or && Session::has('tickets.pr')) { Session::put('tickets.or', $request->or); } + Session::save(); if (Session::has('tickets.pr')) { @@ -615,6 +638,26 @@ class TicketController extends Controller $tickets->orderBy('order', 'ASC'); } + if ( + Session::has('tickets.sort_col') and + Session::has('tickets.sort_way') and + in_array(Session::get('tickets.sort_col'), [ + 'type', + 'title', + 'assigned_to', + 'date_mep', + 'created_at', + 'created_by' + ]) + ) { + $tickets->orderBy( + Session::get('tickets.sort_col'), + Session::get('tickets.sort_way') + ); + } else { + $tickets->orderBy('last_activity', 'DESC'); + } + return $tickets; }