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,76 @@
@extends('admin.layouts.app')
@section('content')
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<!-- Reuses your existing search component -->
@include('admin.partial.list-filter', ['filterRoute' => 'tickets.index'])
<div id="datatable_wrapper" class="dataTables_wrapper dt-bootstrap4 no-footer">
<div class="row">
<div class="col-sm-12">
<table id="datatable" class="table table-bordered dt-responsive nowrap dataTable no-footer dtr-inline" style="border-collapse: collapse; border-spacing: 0px; width: 100%;" role="grid">
<thead>
<tr role="row">
<th>شناسه</th>
<th>کاربر (موبایل)</th>
<th>موضوع</th>
<th>وضعیت</th>
<th>اولویت</th>
<th>تاریخ بروزرسانی</th>
<th>عملیات</th>
</tr>
</thead>
<tbody>
@foreach ($tickets as $ticket)
<tr>
<td>#{{ $ticket->id }}</td>
<td>{{ optional($ticket->user)->mobile ?? 'کاربر ناشناس' }}</td>
<td>{{ Str::limit($ticket->subject, 50) }}</td>
<td>
@if($ticket->status === 'open')
<span class="badge bg-primary">باز (جدید)</span>
@elseif($ticket->status === 'user_reply')
<span class="badge bg-warning text-dark">پاسخ کاربر</span>
@elseif($ticket->status === 'answered')
<span class="badge bg-success">پاسخ داده شده</span>
@else
<span class="badge bg-secondary">بسته شده</span>
@endif
</td>
<td>
@if($ticket->priority === 'high')
<span class="badge bg-danger">مهم</span>
@elseif($ticket->priority === 'medium')
<span class="badge bg-info">متوسط</span>
@else
<span class="badge bg-light text-dark">کم</span>
@endif
</td>
<td dir="ltr">{{ $ticket->updated_at->format('Y/m/d H:i') }}</td>
<td>
<a href="{{ route('tickets.show', $ticket->id) }}" class="btn btn-primary waves-effect waves-light btn-sm">مشاهده و پاسخ</a>
@if($ticket->status !== 'closed')
<form action="{{ route('tickets.close', $ticket->id) }}" method="POST" style="display: inline;">
@csrf
<button type="submit" class="btn btn-secondary waves-effect waves-light btn-sm" onclick="return confirm('آیا از بستن این تیکت اطمینان دارید؟')">بستن</button>
</form>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div class="d-flex justify-content-center mt-3">
{{ $tickets->withQueryString()->links() }}
</div>
</div>
</div>
</div>
</div>
</div>
@endsection