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) -