diff --git a/app/Events/TicketStatusChanged.php b/app/Events/TicketStatusChanged.php index 6e02add..eb592b0 100644 --- a/app/Events/TicketStatusChanged.php +++ b/app/Events/TicketStatusChanged.php @@ -27,6 +27,9 @@ class TicketStatusChanged /** @var string */ public $message; + /** @var boolean */ + public $is_private; + /** * Create a new event instance. * @@ -34,13 +37,20 @@ class TicketStatusChanged * @param \App\Enums\TicketStatus $status * @param \App\Models\User|null $user * @param string|null $message + * @param boolean $is_private * @return void */ - public function __construct(Ticket $ticket, TicketStatus $status, User $user = null, string $message = null) - { - $this->ticket = $ticket; - $this->status = $status; - $this->user = $user; - $this->message = $message; + public function __construct( + Ticket $ticket, + TicketStatus $status, + User $user = null, + string $message = null, + bool $is_private = false + ) { + $this->ticket = $ticket; + $this->status = $status; + $this->user = $user; + $this->message = $message; + $this->is_private = $is_private; } } diff --git a/app/Http/Controllers/TicketController.php b/app/Http/Controllers/TicketController.php index b0395d9..02a94c5 100644 --- a/app/Http/Controllers/TicketController.php +++ b/app/Http/Controllers/TicketController.php @@ -454,7 +454,7 @@ class TicketController extends Controller /** @var \App\Enums\TicketStatus */ $oldStatus = $ticket->status; - event(new TicketStatusChanged($ticket, $oldStatus, null, $message)); + event(new TicketStatusChanged($ticket, $oldStatus, null, $message, true)); event(new NotifySubscriptions($ticket, $message, collect([$ticket->user]))); /** @var \App\Models\User */ diff --git a/app/Listeners/AddStatusMessages.php b/app/Listeners/AddStatusMessages.php index a7e6cd7..8429e10 100644 --- a/app/Listeners/AddStatusMessages.php +++ b/app/Listeners/AddStatusMessages.php @@ -14,11 +14,16 @@ class AddStatusMessages * * @param \App\Events\TicketStatusChanged $event * @return void + * @phpcs:disable Generic.Metrics.CyclomaticComplexity */ public function handle(TicketStatusChanged $event) { $message = new Message(); $message->ticket_id = $event->ticket->id; + $message->type = MessageType::public(); + if ($event->is_private) { + $message->type = MessageType::private(); + } if ($event->message) { $message->message = $event->message; } elseif ($event->user) { @@ -92,7 +97,6 @@ class AddStatusMessages ); break; } //end switch - $message->type = MessageType::public(); $message->save(); } } diff --git a/resources/views/ticket/show.blade.php b/resources/views/ticket/show.blade.php index f6ae88a..4818ca1 100644 --- a/resources/views/ticket/show.blade.php +++ b/resources/views/ticket/show.blade.php @@ -151,66 +151,66 @@ @endcan @foreach ($messages as $message) - @if ($message->user_id === null) -
- {!! nl2br(clean($message->message)) !!} - Le {{ \Carbon\Carbon::parse($message->created_at)->format('d/m/Y à H:i')}} - ({{ __('Message système') }}) -
- @else - @if ( - $message->type->equals(MessageTypeEnum::public()) || - (Auth::user()->can('createPrivateMessage', $ticket)) - ) -
- @if ($message->type->equals(MessageTypeEnum::private())) -    - @endif - {!! ToolboxHelper::plainToHtml($message->message) !!} - @if ($message->file !== null) -
file))data-fslightbox="gallery" @endif href="{{ asset($message->file) }}" target="_blank">Ouvrir la pièce jointe
- @endif

- - {!! __('Créé le :date par :userName', [ - 'date' => \Carbon\Carbon::parse($message->created_at)->format('d/m/Y à H:i'), - 'userName' => $message->user ? $message->user->name : __('Utilisateur supprimé') - ]) !!} - - @if($message->user_id === Auth::user()->id) - @can('updateMessage', $ticket, $message) - -