535 lines
17 KiB
PHP
535 lines
17 KiB
PHP
@extends('admin.layouts.app')
|
|
|
|
@section('title', 'مدیریت پروازها')
|
|
|
|
@section('breadcrumb')
|
|
|
|
<div>
|
|
|
|
<h1 class="page-title fw-medium fs-18 mb-2">
|
|
مدیریت پروازها
|
|
</h1>
|
|
|
|
<nav>
|
|
<ol class="breadcrumb mb-0">
|
|
|
|
<li class="breadcrumb-item">
|
|
<a href="{{ route('admin.dashboard.index') }}">
|
|
داشبورد
|
|
</a>
|
|
</li>
|
|
|
|
<li class="breadcrumb-item active">
|
|
مدیریت پروازها
|
|
</li>
|
|
|
|
</ol>
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
@endsection
|
|
|
|
|
|
@section('content')
|
|
|
|
<div class="container-fluid pt-4">
|
|
|
|
{{-- عنوان و عملیات --}}
|
|
<div class="row">
|
|
|
|
<div class="col-xl-12">
|
|
|
|
<div class="card custom-card">
|
|
|
|
<div class="card-body p-3">
|
|
|
|
<div class="d-flex align-items-center justify-content-between flex-wrap gap-3">
|
|
|
|
<div>
|
|
|
|
<h5 class="mb-1">
|
|
مدیریت پروازها
|
|
</h5>
|
|
|
|
<p class="text-muted mb-0 fs-12">
|
|
لیست پروازهای ثبت شده در سیستم
|
|
</p>
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
@if(auth('admin')->user()?->canManageFlights('create'))
|
|
|
|
<a href="{{ route('admin.flights.create') }}"
|
|
class="btn btn-primary">
|
|
|
|
<i class="fa fa-plus me-1"></i>
|
|
|
|
پرواز جدید
|
|
|
|
</a>
|
|
|
|
@endif
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
{{-- جستجو و فیلتر --}}
|
|
<div class="row">
|
|
|
|
<div class="col-xl-12">
|
|
|
|
<div class="card custom-card">
|
|
|
|
<div class="card-body">
|
|
|
|
<form
|
|
method="GET"
|
|
action="{{ route('admin.flights.index') }}"
|
|
>
|
|
|
|
<div class="row g-3 align-items-end">
|
|
|
|
{{-- جستجو --}}
|
|
<div class="col-xl-6 col-lg-5 col-md-6">
|
|
|
|
<label class="form-label">
|
|
جستجوی پرواز
|
|
</label>
|
|
|
|
<input
|
|
type="text"
|
|
name="q"
|
|
class="form-control"
|
|
placeholder="شماره پرواز، ایرلاین، مبدأ یا مقصد..."
|
|
value="{{ request('q') }}"
|
|
>
|
|
|
|
</div>
|
|
|
|
|
|
{{-- وضعیت --}}
|
|
<div class="col-xl-2 col-lg-3 col-md-3">
|
|
|
|
<label class="form-label">
|
|
وضعیت
|
|
</label>
|
|
|
|
<select
|
|
name="status"
|
|
class="form-select"
|
|
>
|
|
|
|
<option value="">
|
|
همه وضعیتها
|
|
</option>
|
|
|
|
<option
|
|
value="1"
|
|
{{ request('status') === '1' ? 'selected' : '' }}
|
|
>
|
|
فعال
|
|
</option>
|
|
|
|
<option
|
|
value="0"
|
|
{{ request('status') === '0' ? 'selected' : '' }}
|
|
>
|
|
غیرفعال
|
|
</option>
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
|
|
{{-- جستجو --}}
|
|
<div class="col-xl-2 col-lg-2 col-md-3">
|
|
|
|
<button
|
|
type="submit"
|
|
class="btn btn-primary w-100"
|
|
>
|
|
|
|
<i class="fa fa-search me-1"></i>
|
|
|
|
جستجو
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
{{-- پاک کردن --}}
|
|
<div class="col-xl-2 col-lg-2 col-md-3">
|
|
|
|
<a
|
|
href="{{ route('admin.flights.index') }}"
|
|
class="btn btn-light w-100"
|
|
>
|
|
|
|
<i class="fa fa-refresh me-1"></i>
|
|
|
|
پاک کردن
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
{{-- جدول پروازها --}}
|
|
<div class="row">
|
|
|
|
<div class="col-xl-12">
|
|
|
|
<div class="card custom-card">
|
|
|
|
<div class="card-body p-0">
|
|
|
|
<div class="table-responsive">
|
|
|
|
<table class="table table-hover align-middle text-nowrap mb-0">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>
|
|
#
|
|
</th>
|
|
|
|
<th>
|
|
شماره پرواز
|
|
</th>
|
|
|
|
<th>
|
|
نوع سفر
|
|
</th>
|
|
|
|
<th>
|
|
ایرلاین
|
|
</th>
|
|
|
|
<th>
|
|
مسیر
|
|
</th>
|
|
|
|
<th>
|
|
تاریخ حرکت
|
|
</th>
|
|
|
|
<th>
|
|
قیمت
|
|
</th>
|
|
|
|
<th>
|
|
وضعیت
|
|
</th>
|
|
|
|
<th>
|
|
عملیات
|
|
</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
|
@forelse($flights as $flight)
|
|
|
|
<tr>
|
|
|
|
{{-- شناسه --}}
|
|
<td>
|
|
{{ $flight->id }}
|
|
</td>
|
|
|
|
|
|
{{-- شماره پرواز --}}
|
|
<td>
|
|
|
|
<span class="fw-semibold">
|
|
{{ $flight->flight_number }}
|
|
</span>
|
|
|
|
</td>
|
|
|
|
|
|
{{-- نوع سفر --}}
|
|
<td>
|
|
|
|
@if($flight->travelType)
|
|
|
|
<span class="badge bg-primary-transparent">
|
|
{{ $flight->travelType->title }}
|
|
</span>
|
|
|
|
@else
|
|
|
|
<span class="text-muted">
|
|
—
|
|
</span>
|
|
|
|
@endif
|
|
|
|
</td>
|
|
|
|
|
|
{{-- ایرلاین --}}
|
|
<td>
|
|
{{ $flight->airline_name }}
|
|
</td>
|
|
|
|
|
|
{{-- مسیر --}}
|
|
<td>
|
|
|
|
<span class="badge bg-primary-transparent">
|
|
{{ $flight->origin }}
|
|
</span>
|
|
|
|
<span class="mx-1 text-muted">
|
|
←
|
|
</span>
|
|
|
|
<span class="badge bg-info-transparent">
|
|
{{ $flight->destination }}
|
|
</span>
|
|
|
|
</td>
|
|
|
|
|
|
{{-- تاریخ حرکت --}}
|
|
<td>
|
|
|
|
@if($flight->departure_date)
|
|
|
|
<span class="fw-medium">
|
|
|
|
{{ $flight->departure_date
|
|
->toJalali()
|
|
->format('Y/m/d') }}
|
|
|
|
</span>
|
|
|
|
@else
|
|
|
|
<span class="text-muted">
|
|
—
|
|
</span>
|
|
|
|
@endif
|
|
|
|
|
|
@if($flight->departure_time)
|
|
|
|
<br>
|
|
|
|
<small class="text-muted">
|
|
|
|
{{ $flight->departure_time->format('H:i') }}
|
|
|
|
</small>
|
|
|
|
@endif
|
|
|
|
</td>
|
|
|
|
|
|
{{-- قیمت --}}
|
|
<td>
|
|
|
|
<span class="fw-medium">
|
|
|
|
{{ number_format($flight->price) }}
|
|
|
|
</span>
|
|
|
|
<small class="text-muted">
|
|
تومان
|
|
</small>
|
|
|
|
</td>
|
|
|
|
|
|
{{-- وضعیت --}}
|
|
<td>
|
|
|
|
@if((int) $flight->status === 1)
|
|
|
|
<span class="badge bg-success-transparent">
|
|
فعال
|
|
</span>
|
|
|
|
@else
|
|
|
|
<span class="badge bg-danger-transparent">
|
|
غیرفعال
|
|
</span>
|
|
|
|
@endif
|
|
|
|
</td>
|
|
|
|
|
|
{{-- عملیات --}}
|
|
<td>
|
|
|
|
<div class="d-flex align-items-center gap-2">
|
|
|
|
{{-- مشاهده --}}
|
|
@if(auth('admin')->user()?->canManageFlights('view'))
|
|
|
|
<a
|
|
href="{{ route('admin.flights.show', $flight) }}"
|
|
class="btn btn-info-light btn-sm"
|
|
>
|
|
|
|
<i class="fa fa-eye me-1"></i>
|
|
|
|
مشاهده
|
|
|
|
</a>
|
|
|
|
@endif
|
|
|
|
|
|
{{-- ویرایش --}}
|
|
@if(auth('admin')->user()?->canManageFlights('update'))
|
|
|
|
<a
|
|
href="{{ route('admin.flights.edit', $flight) }}"
|
|
class="btn btn-warning-light btn-sm"
|
|
>
|
|
|
|
<i class="fa fa-edit me-1"></i>
|
|
|
|
ویرایش
|
|
|
|
</a>
|
|
|
|
@endif
|
|
|
|
|
|
{{-- حذف --}}
|
|
@if(auth('admin')->user()?->canManageFlights('delete'))
|
|
|
|
<form
|
|
action="{{ route('admin.flights.destroy', $flight) }}"
|
|
method="POST"
|
|
class="d-inline"
|
|
onsubmit="return confirm('آیا از حذف این پرواز مطمئن هستید؟');"
|
|
>
|
|
|
|
@csrf
|
|
|
|
@method('DELETE')
|
|
|
|
<button
|
|
type="submit"
|
|
class="btn btn-danger-light btn-sm"
|
|
>
|
|
|
|
<i class="fa fa-trash me-1"></i>
|
|
|
|
حذف
|
|
|
|
</button>
|
|
|
|
</form>
|
|
|
|
@endif
|
|
|
|
</div>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
@empty
|
|
|
|
<tr>
|
|
|
|
<td
|
|
colspan="9"
|
|
class="text-center py-5"
|
|
>
|
|
|
|
<div class="text-muted">
|
|
|
|
<i class="fa fa-plane fs-2 mb-3 d-block"></i>
|
|
|
|
<div>
|
|
پروازی برای نمایش وجود ندارد.
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
@endforelse
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
{{-- Pagination --}}
|
|
@if($flights->hasPages())
|
|
|
|
<div class="card-footer">
|
|
|
|
<div class="d-flex justify-content-center">
|
|
|
|
{{ $flights->links() }}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@endif
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@endsection
|
|
|