subscribe on ticket while answering

This commit is contained in:
Jérémy Munsch 2021-05-18 20:07:42 +02:00
parent 59bb0a3fbd
commit 7909856b9d
3 changed files with 44 additions and 3 deletions

View file

@ -187,7 +187,16 @@ class TicketController extends Controller
$message = new Message($request->validated());
$message->user()->associate(auth()->user());
$message->ticket()->associate($ticket);
$message->save();
$message->saveOrFail();
/** @var \App\Models\User */
$user = auth()->user();
if ($request->subscribe) {
$user->subscriptions()->attach($ticket->id);
} else {
$user->subscriptions()->detach($ticket->id);
}
if ($request->file_message) {
$projectSlug = Str::slug($ticket->project->name);

View file

@ -6,6 +6,20 @@ use Illuminate\Foundation\Http\FormRequest;
class CreateMessage extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
$this->merge([
'subscribe' => $this->subscribe ? true : false
]);
return auth()->check() and (auth()->user()->role === 1 or
$this->ticket->project->id === auth()->user()->project_id);
}
/**
* Get the validation rules that apply to the request.
*
@ -14,6 +28,7 @@ class CreateMessage extends FormRequest
public function rules()
{
return [
'subscribe' => 'required|boolean',
'message' => 'required|min:' . (auth()->user()->role == 1 ? '5' : '20'),
'file_message' => 'sometimes|mimes:jpeg,jpg,png,pdf|max:2048'
];

View file

@ -63,8 +63,25 @@
</button>
</div>
<div class="modal-body">
<textarea name="message" class="form-control" rows="10"></textarea><br>
<input type="file" name="file_message" accept="image/jpeg, image/png, image/jpg, .pdf">
<div class="row">
<div class="col">
<textarea name="message" class="form-control" rows="10"></textarea>
</div>
</div>
<div class="row mt-4">
<div class="col">
<label for="formFile" class="form-label">Joindre un fichier (jpg, png, pdf) 2Mo max</label>
<input class="form-control" type="file" id="formFile" name="file_message" accept="image/jpeg, image/png, image/jpg, .pdf">
</div>
</div>
<div class="row mt-4">
<div class="col">
<div class="form-check">
<input name="subscribe" type="checkbox" class="form-check-input" id="subscribeResponse" autocomplete="off" @if ($isSubscribed)checked @endif value="1">
<label class="form-check-label" for="subscribeResponse">Suivre le ticket</label>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="reset" class="btn btn-sm btn-danger" data-dismiss="modal">Fermer</button>