Added ticketing feature

This commit is contained in:
m.razaghi
2026-07-31 18:54:09 +03:30
parent d77605db75
commit 516bc4b26b
8 changed files with 406 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
@extends('admin.layouts.app')
@section('content')
<div class="row">
@include('admin.layouts.errors')
<div class="col-lg-8 offset-lg-2">
<!-- Ticket Info Header -->
<div class="card mb-4">
<div class="card-body bg-light">
<h4 class="card-title">موضوع: {{ $ticket->subject }}</h4>
<p class="mb-0 text-muted">تیکت #{{ $ticket->id }} | ایجاد کننده: {{ optional($ticket->user)->mobile }}</p>
</div>
</div>
<!-- Chat History -->
@foreach($ticket->messages as $msg)
<div class="card mb-3 shadow-sm {{ $msg->user_id === $ticket->user_id ? 'border-primary' : 'border-success' }}">
<div class="card-header {{ $msg->user_id === $ticket->user_id ? 'bg-primary text-white' : 'bg-success text-white' }}">
<strong>{{ $msg->user_id === $ticket->user_id ? 'کاربر' : 'پشتیبانی (شما)' }}</strong>
<span class="float-end" dir="ltr" style="font-size: 0.85rem;">{{ $msg->created_at->format('Y/m/d H:i') }}</span>
</div>
<div class="card-body">
<p style="white-space: pre-wrap;">{{ $msg->message }}</p>
@if($msg->attachment_path)
<hr>
<a href="{{ asset('storage/' . $msg->attachment_path) }}" target="_blank" class="btn btn-sm btn-info waves-effect waves-light">
<i class="fas fa-paperclip"></i> مشاهده فایل ضمیمه
</a>
@endif
</div>
</div>
@endforeach
<!-- Reply Form -->
<div class="card mt-4">
<div class="card-body">
@if($ticket->status !== 'closed')
<h4 class="card-title mb-3">ارسال پاسخ</h4>
<!-- Notice the enctype="multipart/form-data" which is required for attachments -->
<form action="{{ route('tickets.reply', $ticket->id) }}" method="post" enctype="multipart/form-data">
@csrf
<div class="mb-4">
<label for="message">متن پاسخ</label>
<textarea class="form-control" name="message" id="message" rows="5" placeholder="پاسخ خود را بنویسید..." required></textarea>
</div>
<div class="mb-4">
<label for="attachment">فایل ضمیمه (اختیاری)</label>
<input class="form-control" name="attachment" id="attachment" type="file" accept=".jpg,.jpeg,.png,.pdf">
<small class="text-muted">فرمت‌های مجاز: jpg, png, pdf (حداکثر 5 مگابایت)</small>
</div>
<div class="d-flex justify-content-between">
<button type="submit" class="btn btn-success waves-effect waves-light">ارسال پاسخ</button>
<a href="{{ route('tickets.index') }}" class="btn btn-outline-secondary">بازگشت به لیست</a>
</div>
</form>
@else
<div class="alert alert-secondary text-center mb-0">
این تیکت بسته شده است و امکان ارسال پاسخ جدید وجود ندارد.
<br>
<a href="{{ route('tickets.index') }}" class="btn btn-secondary btn-sm mt-2">بازگشت به لیست</a>
</div>
@endif
</div>
</div>
</div>
</div>
@endsection