add functionality : edit a sent message
This commit is contained in:
parent
4b57951701
commit
386e37eefb
6 changed files with 102 additions and 9 deletions
|
|
@ -8,6 +8,7 @@ use App\Events\NotifySubscriptions;
|
|||
use App\Events\TicketStatusChanged;
|
||||
use App\Http\Requests\ChangeTicketStatus;
|
||||
use App\Http\Requests\CreateMessage;
|
||||
use App\Http\Requests\UpdateMessage;
|
||||
use App\Http\Requests\SortTickets;
|
||||
use App\Http\Requests\StoreTicket;
|
||||
use App\Http\Requests\UpdateTicket;
|
||||
|
|
@ -346,6 +347,15 @@ class TicketController extends Controller
|
|||
->with('success', trans('Votre message à été ajouté'));
|
||||
}
|
||||
|
||||
public function updateMessage(UpdateMessage $request, Ticket $ticket, Message $message)
|
||||
{
|
||||
$message->message = $request->message;
|
||||
$message->saveOrFail();
|
||||
|
||||
return back()
|
||||
->with('success', trans('Votre message à bien été modifié'));
|
||||
}
|
||||
|
||||
public function setToArchive(Ticket $ticket)
|
||||
{
|
||||
$ticket->status = TicketStatus::archived();
|
||||
|
|
|
|||
35
app/Http/Requests/UpdateMessage.php
Normal file
35
app/Http/Requests/UpdateMessage.php
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateMessage extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
/** @var \App\Models\User|null $user */
|
||||
$user = auth()->user();
|
||||
|
||||
return auth()->check() && $user->isAdmin();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
/** @var \App\Models\User */
|
||||
$user = auth()->user();
|
||||
return [
|
||||
'message' => 'required|min:' . ($user->isAdmin() ? '5' : '20'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -47,6 +47,10 @@ class TicketPolicy extends RootPolicy
|
|||
]),
|
||||
'suscribeToTicket' => TicketStaticRules::make('ticketIsNotArchived', $model),
|
||||
'createMessage' => TicketStaticRules::make('ticketIsNotArchived', $model),
|
||||
'updateMessage' => StaticRules::or([
|
||||
URR::make('userIsAdmin', $user),
|
||||
TicketStaticRules::make('ticketIsNotArchived', $model),
|
||||
]),
|
||||
'reopen' => URR::make('userIsClient', $user)
|
||||
]
|
||||
];
|
||||
|
|
|
|||
12
resources/sass/_bootswatch.scss
vendored
12
resources/sass/_bootswatch.scss
vendored
|
|
@ -327,9 +327,11 @@ a.list-group-item {
|
|||
}
|
||||
}
|
||||
|
||||
.modal,
|
||||
.toast {
|
||||
.btn-close {
|
||||
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>");
|
||||
.modal{
|
||||
color: #1e2125;
|
||||
& .toast {
|
||||
.btn-close {
|
||||
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -124,10 +124,49 @@
|
|||
@if ($message->file !== null)
|
||||
<br><a @if(Utils::isImageFile($message->file))data-fslightbox="gallery" @endif href="{{ asset($message->file) }}" target="_blank">Ouvrir la pièce jointe</a><br>
|
||||
@endif<br><br>
|
||||
<small class="text-muted fw-bold">{!! __('Créé le :date par <b>:userName</b>', [
|
||||
'date' => \Carbon\Carbon::parse($message->created_at)->format('d/m/Y à H:i'),
|
||||
'userName' => $message->user ? $message->user->name : __('Utilisateur supprimé')
|
||||
]) !!}</small>
|
||||
<small class="text-muted fw-bold">
|
||||
{!! __('Créé le :date par <b>:userName</b>', [
|
||||
'date' => \Carbon\Carbon::parse($message->created_at)->format('d/m/Y à H:i'),
|
||||
'userName' => $message->user ? $message->user->name : __('Utilisateur supprimé')
|
||||
]) !!}
|
||||
</small>
|
||||
@if($message->user_id === Auth::user()->id)
|
||||
|
||||
@can('updateMessage', $ticket, $message)
|
||||
<button type="button" class="btn btn-sm btn-primary float-end" data-bs-toggle="modal" data-bs-target="#updateMessageModal">
|
||||
{{ __('Modifier le message') }}
|
||||
</button>
|
||||
<div class="modal fade" id="updateMessageModal" tabindex="-1" aria-labelledby="updateMessageModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<form action="{{ route('ticket.message.update', ['ticket'=>$ticket, 'message'=>$message]) }}" method="POST" enctype="multipart/form-data">
|
||||
@method('PUT')
|
||||
@csrf
|
||||
<input type="hidden" name="ticket_id" value="{{ $ticket->id }}">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="messageModalLabel">
|
||||
{{ __('Modification du message n°:messageid', ['messageid' => $message->id]) }}
|
||||
</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{__('Fermer') }}"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<textarea name="message" class="form-control" rows="10">{{ $message->message }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="reset" class="btn btn-sm btn-danger" data-bs-dismiss="modal">{{ __('Fermer') }}</button>
|
||||
<button type="submit" class="btn btn-sm btn-success">{{ __('Envoyer') }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
|
|
|
|||
|
|
@ -74,6 +74,9 @@ Route::middleware(['auth'])->group(function () {
|
|||
Route::put('/{ticket}/message/create', [TicketController::class, 'createMessage'])
|
||||
->middleware('can:createMessage,ticket')
|
||||
->name('message.create');
|
||||
Route::put('/{ticket}/message/{message}/update', [TicketController::class, 'updateMessage'])
|
||||
->middleware('can:updateMessage,ticket,message')
|
||||
->name('message.update');
|
||||
});
|
||||
|
||||
Route::prefix('/schedule')->name('schedule.')->group(function () {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue