git add .

git commit "Complete project development and finalize features"
This commit is contained in:
2026-08-22 11:14:07 +03:30
parent e72f68cd86
commit 2f431971c0
40 changed files with 126 additions and 637 deletions
@@ -8,7 +8,6 @@ use Illuminate\Http\Request;
class ActivityLogController extends Controller class ActivityLogController extends Controller
{ {
//
public function index() public function index()
{ {
$logs=ActivityLog::with('admin') $logs=ActivityLog::with('admin')
@@ -18,20 +18,21 @@ class AuthController extends Controller
} }
public function loginPost(LoginPostRequest $request) public function loginPost(LoginPostRequest $request)
{ {
$loginData=$request->validated(); $login=$request->validated();
$admins=Admin::query() $admins=Admin::query()
->where('username',$request->input('username')) ->where('username',$request->input('username'))
->where('status',AdminStatus::Active) ->where('status',AdminStatus::Active)
->first(); ->first();
if (!$admins){ if (!$admins || !\Hash::check($login['password'],$admins->password)){
return back()->withErrors([ return back()->withErrors([
'general' => 'اطلاعات وارد شده نامعتبر است' 'general' => 'اطلاعات وارد شده نامعتبر است'
]); ]);
} }
Auth::guard('admin')->login($admins); Auth::guard('admin')->login($admins);
$request->session()->regenerate();
return redirect()->route('admin.dashboard.index'); return redirect()->route('admin.dashboard.index');
} }
@@ -24,14 +24,10 @@ class FlightController extends Controller
return view('admin.flights.index', compact('flights')); return view('admin.flights.index', compact('flights'));
} }
public function create() public function create()
{ {
return view('admin.flights.create'); return view('admin.flights.create');
} }
public function store(FlightStoreRequest $request) public function store(FlightStoreRequest $request)
{ {
DB::beginTransaction(); DB::beginTransaction();
@@ -46,8 +42,6 @@ class FlightController extends Controller
)->formatGregorian('Y-m-d'); )->formatGregorian('Y-m-d');
} }
if ($request->hasFile('image')) { if ($request->hasFile('image')) {
$data['image'] = $request $data['image'] = $request
@@ -70,7 +64,6 @@ class FlightController extends Controller
DB::commit(); DB::commit();
return redirect() return redirect()
->route('admin.flights.index') ->route('admin.flights.index')
->with('success','پرواز ثبت شد'); ->with('success','پرواز ثبت شد');
@@ -84,14 +77,10 @@ class FlightController extends Controller
} }
} }
public function edit(Flight $flight) public function edit(Flight $flight)
{ {
return view('admin.flights.edit',compact('flight')); return view('admin.flights.edit',compact('flight'));
} }
public function update(FlightStoreRequest $request, Flight $flight) public function update(FlightStoreRequest $request, Flight $flight)
{ {
@@ -118,12 +107,9 @@ class FlightController extends Controller
->delete($flight->image); ->delete($flight->image);
} }
$data['image'] = $request $data['image'] = $request
->file('image') ->file('image')
->store('flights','public'); ->store('flights','public');
} }
$data['updated_by'] = auth('admin')->id(); $data['updated_by'] = auth('admin')->id();
@@ -140,12 +126,10 @@ class FlightController extends Controller
DB::commit(); DB::commit();
return redirect() return redirect()
->route('admin.flights.index') ->route('admin.flights.index')
->with('success','پرواز ویرایش شد'); ->with('success','پرواز ویرایش شد');
}catch(\Exception $e){ }catch(\Exception $e){
DB::rollBack(); DB::rollBack();
@@ -155,7 +139,6 @@ class FlightController extends Controller
} }
} }
public function destroy(Flight $flight) public function destroy(Flight $flight)
{ {
@@ -179,6 +162,5 @@ class FlightController extends Controller
return back() return back()
->with('success','پرواز حذف شد'); ->with('success','پرواز حذف شد');
} }
} }
@@ -8,7 +8,6 @@ use Illuminate\Http\Request;
class ProvinceController extends Controller class ProvinceController extends Controller
{ {
public function index() public function index()
{ {
$provinces = Province::latest()->paginate(5); $provinces = Province::latest()->paginate(5);
@@ -16,15 +15,11 @@ class ProvinceController extends Controller
return view('admin.provinces.index', compact('provinces')); return view('admin.provinces.index', compact('provinces'));
} }
public function create() public function create()
{ {
return view('admin.provinces.create'); return view('admin.provinces.create');
} }
public function store(Request $request) public function store(Request $request)
{ {
@@ -42,41 +37,27 @@ class ProvinceController extends Controller
->route('admin.provinces.index'); ->route('admin.provinces.index');
} }
public function edit(Province $province) public function edit(Province $province)
{ {
return view('admin.provinces.edit',compact('province')); return view('admin.provinces.edit',compact('province'));
} }
public function update(Request $request, Province $province) public function update(Request $request, Province $province)
{ {
$request->validate([ $request->validate([
'name'=>'required' 'name'=>'required'
]); ]);
$province->update([ $province->update([
'name'=>$request->name 'name'=>$request->name
]); ]);
return redirect() return redirect()
->route('admin.provinces.index'); ->route('admin.provinces.index');
} }
public function destroy(Province $province) public function destroy(Province $province)
{ {
$province->delete(); $province->delete();
return back(); return back();
} }
} }
@@ -26,7 +26,5 @@ class RoleController extends Controller
return redirect()->back()->with('success','دسترسی‌ها با موفقیت ذخیره شد'); return redirect()->back()->with('success','دسترسی‌ها با موفقیت ذخیره شد');
} }
} }
@@ -18,14 +18,12 @@ class SettingController extends Controller
return view('admin.settings.index', compact('settings')); return view('admin.settings.index', compact('settings'));
} }
public function create() public function create()
{ {
$settings = Setting::all(); $settings = Setting::all();
return view('admin.settings.create',compact('settings')); return view('admin.settings.create',compact('settings'));
} }
public function store(SettingStoreRequest $request) public function store(SettingStoreRequest $request)
{ {
Setting::create($request->validated()); Setting::create($request->validated());
@@ -36,18 +34,14 @@ class SettingController extends Controller
public function edit(Setting $setting) public function edit(Setting $setting)
{ {
return view('admin.settings.edit', compact('setting')); return view('admin.settings.edit', compact('setting'));
} }
public function update(SettingUpdateRequest $request,Setting $setting) public function update(SettingUpdateRequest $request,Setting $setting)
{ {
$setting->update($request->validated()); $setting->update($request->validated());
return redirect() return redirect()
->route('admin.settings.index') ->route('admin.settings.index')
->with('success', 'تنظیمات با موفقیت ویرایش شد.'); ->with('success', 'تنظیمات با موفقیت ویرایش شد.');
} }
public function destroy(Setting $setting) public function destroy(Setting $setting)
@@ -25,15 +25,10 @@ class TourController extends Controller
return view('admin.tours.index', compact('tours')); return view('admin.tours.index', compact('tours'));
} }
public function create() public function create()
{ {
return view('admin.tours.create' ); return view('admin.tours.create' );
} }
public function store(TourStoreRequest $request) public function store(TourStoreRequest $request)
{ {
DB::beginTransaction(); DB::beginTransaction();
@@ -49,7 +44,6 @@ class TourController extends Controller
)->formatGregorian('Y-m-d'); )->formatGregorian('Y-m-d');
} }
if ($request->hasFile('image')) { if ($request->hasFile('image')) {
$data['image'] = $request $data['image'] = $request
@@ -69,8 +63,6 @@ class TourController extends Controller
'model_id' => $tour->id, 'model_id' => $tour->id,
'description' => 'ثبت تور جدید', 'description' => 'ثبت تور جدید',
]); ]);
DB::commit(); DB::commit();
@@ -78,7 +70,6 @@ class TourController extends Controller
->route('admin.tours.index') ->route('admin.tours.index')
->with('success','تور ثبت شد'); ->with('success','تور ثبت شد');
} catch(\Exception $e) { } catch(\Exception $e) {
DB::rollBack(); DB::rollBack();
@@ -92,8 +83,6 @@ class TourController extends Controller
return view('admin.tours.edit',compact('tour')); return view('admin.tours.edit',compact('tour'));
} }
public function update(TourStoreRequest $request, Tour $tour) public function update(TourStoreRequest $request, Tour $tour)
{ {
@@ -121,7 +110,6 @@ class TourController extends Controller
} }
$data['image'] = $request $data['image'] = $request
->file('image') ->file('image')
->store('tours','public'); ->store('tours','public');
@@ -139,15 +127,12 @@ class TourController extends Controller
'description' => 'ویرایش تور', 'description' => 'ویرایش تور',
]); ]);
DB::commit(); DB::commit();
return redirect() return redirect()
->route('admin.tours.index') ->route('admin.tours.index')
->with('success','تور ویرایش شد'); ->with('success','تور ویرایش شد');
}catch(\Exception $e){ }catch(\Exception $e){
DB::rollBack(); DB::rollBack();
@@ -155,12 +140,10 @@ class TourController extends Controller
dd($e->getMessage()); dd($e->getMessage());
} }
} }
public function destroy(Tour $tour) public function destroy(Tour $tour)
{ {
if($tour->image){ if($tour->image){
Storage::disk('public') Storage::disk('public')
@@ -176,12 +159,9 @@ class TourController extends Controller
'description' => 'حذف تور', 'description' => 'حذف تور',
]); ]);
$tour->delete(); $tour->delete();
return back() return back()
->with('success','تور حذف شد'); ->with('success','تور حذف شد');
} }
} }
@@ -49,7 +49,5 @@ class UserController extends Controller
$user->update(['password'=>Hash::make($request->password)]); $user->update(['password'=>Hash::make($request->password)]);
return back(); return back();
} }
} }
@@ -18,7 +18,6 @@ class LoginController extends Controller
return view('auth.login',compact('withoutHeader','withoutHero','withoutFooter')); return view('auth.login',compact('withoutHeader','withoutHero','withoutFooter'));
} }
public function post(LoginPostRequest $request) public function post(LoginPostRequest $request)
{ {
$user = $request->validated(); $user = $request->validated();
@@ -16,6 +16,5 @@ class LogoutController extends Controller
Request()->session()->regenerateToken(); Request()->session()->regenerateToken();
return redirect()->route('index'); return redirect()->route('index');
} }
} }
@@ -40,8 +40,6 @@ class RegisterController extends Controller
$inputs['profile_image'] = $imageName; $inputs['profile_image'] = $imageName;
} }
$inputs['password']=Hash::make($inputs['password']); $inputs['password']=Hash::make($inputs['password']);
$inputs['status']=UserStatus::Draft; $inputs['status']=UserStatus::Draft;
@@ -51,6 +49,5 @@ class RegisterController extends Controller
return redirect()->route('index'); return redirect()->route('index');
} }
} }
@@ -25,20 +25,15 @@ class FavoriteController extends Controller
'favoritable_id' => $request->id, 'favoritable_id' => $request->id,
]); ]);
return back(); return back();
} }
public function destroy(Favorite $favorite) public function destroy(Favorite $favorite)
{ {
$favorite->delete(); $favorite->delete();
return back()->with( return back()->with(
'success', 'success',
'تور از علاقه‌مندی‌ها حذف شد.' 'تور از علاقه‌مندی‌ها حذف شد.'
); );
} }
} }
+2 -10
View File
@@ -15,26 +15,19 @@ class FlightController extends Controller
->applySearch($request->all()) ->applySearch($request->all())
->paginate(10); ->paginate(10);
$newestFlight = Flight::latest() $newestFlight = Flight::latest()
->take(3) ->take(3)
->get(); ->get();
$newestTour = Tour::latest() $newestTour = Tour::latest()
->take(3) ->take(3)
->get(); ->get();
$tours = Tour::latest() $tours = Tour::latest()
->paginate(10); ->paginate(10);
return view('flights.index', compact('flights', 'newestFlight',
return view('flights.index', compact( 'newestTour', 'tours'
'flights',
'newestFlight',
'newestTour',
'tours'
)); ));
} }
public function show(Flight $flight) public function show(Flight $flight)
@@ -48,7 +41,6 @@ class FlightController extends Controller
->latest() ->latest()
->get(); ->get();
return view('flights.show', compact('flight', 'comments')); return view('flights.show', compact('flight', 'comments'));
} }
+2 -5
View File
@@ -24,11 +24,8 @@ class HomeController extends Controller
$tours = Tour::latest() $tours = Tour::latest()
->paginate(5); ->paginate(5);
return view('home.index', compact( return view('home.index', compact('newestFlight',
'newestFlight', 'newestTour', 'flights', 'tours'
'newestTour',
'flights',
'tours'
)); ));
} }
} }
@@ -16,11 +16,8 @@ class ReservationController extends Controller
->latest() ->latest()
->get(); ->get();
return view('account.users.Reservation.index', compact('reservations')); return view('account.users.Reservation.index', compact('reservations'));
} }
public function store(Request $request) public function store(Request $request)
{ {
@@ -32,6 +29,7 @@ class ReservationController extends Controller
'status' => 'pending' 'status' => 'pending'
]); ]);
return redirect()->route('users.reservations.index')->with('success','رزرو شما ثبت شد.'); } return redirect()->route('users.reservations.index')
->with('success','رزرو شما ثبت شد.'); }
} }
+2 -4
View File
@@ -17,9 +17,8 @@ class TourController extends Controller
->latest() ->latest()
->paginate(2); ->paginate(2);
return view('tours.index', compact('tours')) return view('tours.index', compact('tours', 'newestTour'));
->with('withoutHero', true); } }
public function show(Tour $tour) public function show(Tour $tour)
{ {
@@ -33,7 +32,6 @@ class TourController extends Controller
->latest() ->latest()
->get(); ->get();
return view('tours.show', compact('tour','comments')); return view('tours.show', compact('tour','comments'));
} }
} }
+22 -14
View File
@@ -16,6 +16,27 @@ class FlightStoreRequest extends FormRequest
return true; return true;
} }
protected function prepareForValidation()
{
if ($this->departure_date) {
try {
$this->merge([
'departure_date' => verta($this->departure_date)
->formatGregorian('Y-m-d')
]);
} catch (\Exception $e) {
$this->merge([
'departure_date' => null
]);
}
}
}
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
@@ -46,20 +67,7 @@ class FlightStoreRequest extends FormRequest
], ],
'departure_date' => [ 'departure_date' => [
'required', 'required',
function ($attribute, $value, $fail) { 'date'
try {
$gregorian = Verta::parse($value)
->formatGregorian('Y-m-d');
} catch (\Exception $e) {
$fail('تاریخ حرکت معتبر نیست.');
return;
}
if ($gregorian < now()->format('Y-m-d')) {
$fail('تاریخ حرکت نمی‌تواند قبل از تاریخ امروز باشد.');
}
},
], ],
'departure_time' => [ 'departure_time' => [
'required', 'required',
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

+30 -10
View File
@@ -15,23 +15,38 @@
<div class="account-sidebar"> <div class="account-sidebar">
<div class="account-user"> <div class="account-user">
<div class="avatar"> <div class="avatar">
@if(auth()->user()->profile_image)
<img
src="{{ asset('uploads/users/' . auth()->user()->profile_image) }}"
alt="تصویر پروفایل"
style="width:100px;height:100px;object-fit:cover;border-radius:50%;"
>
@else
<i class="fa fa-user"></i> <i class="fa fa-user"></i>
@endif
</div> </div>
<h4> <br>
</h4>
<span> <span>
{{Auth::user()->email}} {{ auth()->user()->email }}
</span> </span>
</div> </div>
<ul> <ul>
<li> <li>
<a href="{{route('users.profile.edit')}}"> <a href="{{ route('users.profile.edit') }}">
<i class="fa fa-user"></i> <i class="fa fa-user"></i>
پروفایل من پروفایل من
</a> </a>
@@ -39,7 +54,7 @@
<li> <li>
<a href="{{route('users.favorite.index')}}"> <a href="{{ route('users.favorite.index') }}">
<i class="fa fa-heart"></i> <i class="fa fa-heart"></i>
علاقه‌مندی‌ها علاقه‌مندی‌ها
</a> </a>
@@ -47,23 +62,28 @@
<li> <li>
<a href="{{route('comments.index')}}"> <a href="{{ route('comments.index') }}">
<i class="fa fa-comments"></i> <i class="fa fa-comments"></i>
نظرات من نظرات من
</a> </a>
</li> </li>
<li> <li>
<a href="{{route('users.reservations.index')}}"> <a href="{{ route('users.reservations.index') }}">
<i class="fa fa-reservations"></i> <i class="fa fa-calendar"></i>
رزرو من رزرو من
</a> </a>
</li> </li>
<form action="{{ route('auth.logout.index') }}" method="POST">
@csrf
<button type="submit">
خروج
</button>
</form>
</ul> </ul>
</div> </div>
</body> </body>
</html> </html>
@@ -1,52 +1,29 @@
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
<div class="theme-page-section theme-page-section-lg"> <div class="theme-page-section theme-page-section-lg">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
@include('account.layout.app') @include('account.layout.app')
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<div class="account-content"> <div class="account-content">
<h2 class="account-title"> <h2 class="account-title">
رزروهای من ✈️ رزروهای من
</h2> </h2>
@if($reservations->count()) @if($reservations->count())
<div class="favorite-list"> <div class="favorite-list">
@foreach($reservations as $reservation) @foreach($reservations as $reservation)
<div class="favorite-card"> <div class="favorite-card">
<div class="favorite-info"> <div class="favorite-info">
@if($reservation->reservable_type == 'App\Models\Tour') @if($reservation->reservable_type == 'App\Models\Tour')
<h3> <h3>
{{ $reservation->reservable?->title ?? 'تور حذف شده' }} {{ $reservation->reservable?->title ?? 'تور حذف شده' }}
</h3> </h3>
@@ -55,7 +32,6 @@
تور تور
</p> </p>
@elseif($reservation->reservable_type == 'App\Models\Flight') @elseif($reservation->reservable_type == 'App\Models\Flight')
@@ -71,8 +47,6 @@
@endif @endif
<p> <p>
مبلغ: مبلغ:
@@ -82,8 +56,6 @@
</strong> </strong>
</p> </p>
<p> <p>
وضعیت: وضعیت:
@@ -110,22 +82,12 @@
</p> </p>
</div> </div>
</div> </div>
@endforeach @endforeach
</div> </div>
@else @else
<div class="empty-favorite"> <div class="empty-favorite">
<i class="fa fa-plane"></i> <i class="fa fa-plane"></i>
@@ -135,22 +97,10 @@
</p> </p>
</div> </div>
@endif @endif
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@endsection @endsection
@@ -1,27 +1,17 @@
@extends('account.layout.app') @extends('account.layout.app')
@section('account-content') @section('account-content')
<div class="profile-box"> <div class="profile-box">
<h3 class="fw-bold"> <h3 class="fw-bold">
سلام {{auth()->user()->name}} 👋 سلام {{auth()->user()->name}} 👋
</h3> </h3>
<p class="text-muted"> <p class="text-muted">
از اینجا می‌توانید تورها، پروازها و نظرات خود را مدیریت کنید. از اینجا می‌توانید تورها، پروازها و نظرات خود را مدیریت کنید.
</p> </p>
<div class="row mt-4"> <div class="row mt-4">
<div class="col-md-4"> <div class="col-md-4">
<div class="card border-0 shadow-sm rounded-4 p-3"> <div class="card border-0 shadow-sm rounded-4 p-3">
<h5> <h5>
@@ -31,15 +21,10 @@
<strong> <strong>
{{ auth()->user()->favorites()->count() }} {{ auth()->user()->favorites()->count() }}
</strong> </strong>
</div> </div>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<div class="card border-0 shadow-sm rounded-4 p-3"> <div class="card border-0 shadow-sm rounded-4 p-3">
<h5> <h5>
@@ -51,31 +36,19 @@
</strong> </strong>
</div> </div>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<div class="card border-0 shadow-sm rounded-4 p-3"> <div class="card border-0 shadow-sm rounded-4 p-3">
<h5> <h5>
رزرو✈️ رزرو✈️
</h5> </h5>
<strong> <strong>
{{ auth()->user()->reservations()->count() }} {{ auth()->user()->reservations()->count() }}
</strong> </strong>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@endsection @endsection
@@ -80,7 +80,6 @@
@endforeach @endforeach
</div> </div>
@else @else
<div class="empty-favorite"> <div class="empty-favorite">
@@ -1,35 +1,25 @@
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
<div class="theme-page-section theme-page-section-lg"> <div class="theme-page-section theme-page-section-lg">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
<div class="col-md-3"> <div class="col-md-3">
@include('account.layout.app') @include('account.layout.app')
</div> </div>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<div class="theme-account"> <div class="theme-account">
<div class="theme-account-header"> <div class="theme-account-header">
<h1 class="theme-account-title"> <h1 class="theme-account-title">
ویرایش پروفایل ویرایش پروفایل
</h1> </h1>
<p class="theme-account-subtitle"> <p class="theme-account-subtitle">
اطلاعات حساب کاربری خود را ویرایش کنید اطلاعات حساب کاربری خود را ویرایش کنید
</p> </p>
</div> </div>
@if(session('success')) @if(session('success'))
@@ -38,14 +28,12 @@
</div> </div>
@endif @endif
@if($errors->any()) @if($errors->any())
<div class="alert alert-danger"> <div class="alert alert-danger">
لطفاً خطاهای فرم را بررسی کنید. لطفاً خطاهای فرم را بررسی کنید.
</div> </div>
@endif @endif
<form <form
action="{{ route('users.profile.update') }}" action="{{ route('users.profile.update') }}"
method="POST" method="POST"
@@ -163,7 +151,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
@@ -321,12 +308,9 @@
{{ $message }} {{ $message }}
</span> </span>
@enderror @enderror
</div> </div>
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<div class="form-group"> <div class="form-group">
@@ -350,13 +334,9 @@
@enderror @enderror
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="theme-account-box"> <div class="theme-account-box">
@@ -427,18 +407,12 @@
{{ $message }} {{ $message }}
</span> </span>
@enderror @enderror
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="theme-account-box"> <div class="theme-account-box">
<div class="theme-account-box-header"> <div class="theme-account-box-header">
@@ -458,9 +432,7 @@
alt="تصویر پروفایل" alt="تصویر پروفایل"
style="width:100px;height:100px;object-fit:cover;border-radius:50%;" style="width:100px;height:100px;object-fit:cover;border-radius:50%;"
> >
</div> </div>
@endif @endif
<div class="form-group"> <div class="form-group">
@@ -482,15 +454,11 @@
{{ $message }} {{ $message }}
</span> </span>
@enderror @enderror
</div> </div>
</div> </div>
</div> </div>
<div class="theme-account-box"> <div class="theme-account-box">
<div class="theme-account-box-header"> <div class="theme-account-box-header">
<h3> <h3>
@@ -532,7 +500,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
@@ -555,10 +522,8 @@
@enderror @enderror
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
@@ -575,13 +540,9 @@
> >
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="text-left"> <div class="text-left">
@@ -592,20 +553,13 @@
> >
ذخیره تغییرات ذخیره تغییرات
</button> </button>
</div> </div>
</form> </form>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div>
</div>
</div>
@endsection @endsection
@push('scripts') @push('scripts')
@@ -5,72 +5,42 @@
گزارش فعالیت‌ها گزارش فعالیت‌ها
</span> </span>
@endsection @endsection
@section('content') @section('content')
<div class="container mt-4"> <div class="container mt-4">
<div class="card shadow"> <div class="card shadow">
<div class="card-body"> <div class="card-body">
<h5 class="mb-4"> <h5 class="mb-4">
گزارش تغییرات سیستم گزارش تغییرات سیستم
</h5> </h5>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered text-center align-middle"> <table class="table table-bordered text-center align-middle">
<thead class="table-light"> <thead class="table-light">
<tr> <tr>
<th> <th>شناسه</th>
شناسه
</th>
<th> <th>مدیر</th>
مدیر
</th>
<th> <th>عملیات</th>
عملیات
</th>
<th> <th>بخش</th>
بخش
</th>
<th> <th>شناسه مورد</th>
شناسه مورد
</th>
<th> <th>توضیحات</th>
توضیحات
</th>
<th>
تاریخ
</th>
<th>تاریخ</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@forelse($logs as $log) @forelse($logs as $log)
<tr> <tr>
<td> <td>
{{ $loop->iteration }} {{ $loop->iteration }}
</td> </td>
@@ -89,7 +59,6 @@
</span> </span>
@break @break
@case('update') @case('update')
<span class="badge bg-warning"> <span class="badge bg-warning">
ویرایش ویرایش
@@ -103,7 +72,6 @@
</span> </span>
@break @break
@default @default
{{ $log->action }} {{ $log->action }}
@@ -133,14 +101,10 @@
{{ $log->model_id }} {{ $log->model_id }}
</td> </td>
<td> <td>
{{ $log->description }} {{ $log->description }}
</td> </td>
<td> <td>
{{ $log->created_at->toJalali()->format('Y/m/d H:i') }} {{ $log->created_at->toJalali()->format('Y/m/d H:i') }}
</td> </td>
@@ -149,7 +113,6 @@
@empty @empty
<tr> <tr>
<td colspan="7"> <td colspan="7">
@@ -164,19 +127,14 @@
</tbody> </tbody>
</table> </table>
</div> </div>
{{ $logs->links() }} {{ $logs->links() }}
</div> </div>
</div> </div>
</div> </div>
@endsection @endsection
@@ -1,5 +1,4 @@
@extends('admin.layouts.app') @extends('admin.layouts.app')
@section('breadcrumb') @section('breadcrumb')
<div> <div>
@@ -29,11 +28,8 @@
@section('content') @section('content')
<div class="container-fluid pt-4"> <div class="container-fluid pt-4">
<div class="card custom-card"> <div class="card custom-card">
<div class="card-header"> <div class="card-header">
<div class="card-title"> <div class="card-title">
ایجاد ادمین جدید ایجاد ادمین جدید
</div> </div>
@@ -260,13 +256,9 @@
> >
ذخیره ادمین ذخیره ادمین
</button> </button>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
@endsection @endsection
@@ -1,12 +1,10 @@
@extends('admin.layouts.app') @extends('admin.layouts.app')
@section('breadcrumb') @section('breadcrumb')
<div> <div>
<h1 class="page-title fw-medium fs-18 mb-2"> <h1 class="page-title fw-medium fs-18 mb-2">
ویرایش ادمین ویرایش ادمین
</h1> </h1>
<nav> <nav>
<ol class="breadcrumb mb-0"> <ol class="breadcrumb mb-0">
@@ -19,7 +17,6 @@
<li class="breadcrumb-item active"> <li class="breadcrumb-item active">
ویرایش ادمین ویرایش ادمین
</li> </li>
</ol> </ol>
</nav> </nav>
</div> </div>
@@ -29,11 +26,8 @@
@section('content') @section('content')
<div class="container-fluid pt-4"> <div class="container-fluid pt-4">
<div class="card custom-card"> <div class="card custom-card">
<div class="card-header"> <div class="card-header">
<div class="card-title"> <div class="card-title">
ویرایش ادمین ویرایش ادمین
</div> </div>
@@ -98,7 +92,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label class="form-label"> <label class="form-label">
@@ -121,7 +114,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label class="form-label"> <label class="form-label">
@@ -144,7 +136,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label class="form-label"> <label class="form-label">
@@ -167,7 +158,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label class="form-label"> <label class="form-label">
@@ -189,7 +179,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label class="form-label"> <label class="form-label">
@@ -226,7 +215,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label class="form-label"> <label class="form-label">
@@ -277,13 +265,9 @@
> >
ذخیره تغییرات ذخیره تغییرات
</button> </button>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
@endsection @endsection
@@ -1,13 +1,9 @@
@extends('admin.layouts.app') @extends('admin.layouts.app')
@section('content') @section('content')
<div class="container-fluid pt-4"> <div class="container-fluid pt-4">
<div class="card custom-card"> <div class="card custom-card">
<div class="card-header d-flex justify-content-between align-items-center"> <div class="card-header d-flex justify-content-between align-items-center">
<div class="card-title"> <div class="card-title">
لیست ادمین‌ها لیست ادمین‌ها
</div> </div>
@@ -20,11 +16,8 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered table-hover text-center align-middle"> <table class="table table-bordered table-hover text-center align-middle">
<thead> <thead>
<tr> <tr>
<th>نام</th> <th>نام</th>
@@ -39,9 +32,7 @@
<tbody> <tbody>
@forelse($admins as $admin) @forelse($admins as $admin)
<tr> <tr>
<td> <td>
{{ $admin->first_name }} {{ $admin->first_name }}
</td> </td>
@@ -99,11 +90,9 @@
</div> </div>
</td> </td>
</tr> </tr>
@empty @empty
<tr> <tr>
<td colspan="6"> <td colspan="6">
ادمینی ثبت نشده است. ادمینی ثبت نشده است.
@@ -111,11 +100,8 @@
</tr> </tr>
@endforelse @endforelse
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="mt-3"> <div class="mt-3">
@@ -123,9 +109,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@endsection @endsection
@@ -1,17 +1,11 @@
@extends('admin.layouts.app') @extends('admin.layouts.app')
@section('content') @section('content')
<div class="container mt-5"> <div class="container mt-5">
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-md-5"> <div class="col-md-5">
<div class="card shadow rounded-4"> <div class="card shadow rounded-4">
<div class="card-body p-4"> <div class="card-body p-4">
<h3 class="text-center mb-4"> <h3 class="text-center mb-4">
ورود مدیر ورود مدیر
</h3> </h3>
@@ -19,12 +13,10 @@
<span style="color: #42a5f5"> {{$message}} </span> <span style="color: #42a5f5"> {{$message}} </span>
@enderror @enderror
<form action="{{ route('admin.auth.login.post') }}" method="POST"> <form action="{{ route('admin.auth.login.post') }}" method="POST">
@csrf @csrf
<div class="mb-3"> <div class="mb-3">
<label> <label>
@@ -44,7 +36,6 @@
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label> <label>
@@ -60,25 +51,16 @@
<span style="color: #42a5f5"> {{$message}} </span> <span style="color: #42a5f5"> {{$message}} </span>
@enderror @enderror
</div> </div>
<button class="btn btn-primary w-100"> <button class="btn btn-primary w-100">
ورود ورود
</button> </button>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@endsection @endsection
-33
View File
@@ -1,10 +1,8 @@
<link rel="stylesheet" href="{{ asset('assets/css/register_login.css') }}"> <link rel="stylesheet" href="{{ asset('assets/css/register_login.css') }}">
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
<div class="theme-hero-area"> <div class="theme-hero-area">
<div class="theme-hero-area-bg-wrap"> <div class="theme-hero-area-bg-wrap">
<div <div
class="theme-hero-area-bg" class="theme-hero-area-bg"
@@ -15,13 +13,9 @@
</div> </div>
<div class="theme-hero-area-body"> <div class="theme-hero-area-body">
<div class="theme-page-section _pt-100 theme-page-section-xl"> <div class="theme-page-section _pt-100 theme-page-section-xl">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-4 col-md-offset-4"> <div class="col-md-4 col-md-offset-4">
<div class="theme-login theme-login-white"> <div class="theme-login theme-login-white">
@@ -35,23 +29,18 @@
<p class="theme-login-subtitle"> <p class="theme-login-subtitle">
وارد حساب Bookify خود شوید وارد حساب Bookify خود شوید
</p> </p>
</div> </div>
<div class="theme-login-box"> <div class="theme-login-box">
<div class="theme-login-box-inner"> <div class="theme-login-box-inner">
{{-- Login Form --}}
<form <form
class="theme-login-form" class="theme-login-form"
action="{{ route('auth.login.post') }}" action="{{ route('auth.login.post') }}"
method="POST" method="POST"
> >
@csrf @csrf
{{-- Mobile --}}
<div class="form-group theme-login-form-group"> <div class="form-group theme-login-form-group">
<label>شماره موبایل</label> <label>شماره موبایل</label>
<input <input
@@ -70,8 +59,6 @@
</div> </div>
{{-- Password --}}
<div class="form-group theme-login-form-group"> <div class="form-group theme-login-form-group">
<label>کلمه عبور</label> <label>کلمه عبور</label>
@@ -90,8 +77,6 @@
</div> </div>
{{-- General Error --}}
@error('general') @error('general')
<div class="text-danger"> <div class="text-danger">
@@ -100,10 +85,7 @@
@enderror @enderror
{{-- Remember --}}
<div class="form-group"> <div class="form-group">
<div class="theme-login-checkbox"> <div class="theme-login-checkbox">
<label class="icheck-label"> <label class="icheck-label">
@@ -126,7 +108,6 @@
</div> </div>
{{-- Submit --}}
<button <button
type="submit" type="submit"
class="btn btn-uc btn-dark btn-block btn-lg" class="btn btn-uc btn-dark btn-block btn-lg"
@@ -136,8 +117,6 @@
</form> </form>
<div class="theme-login-box-alt"> <div class="theme-login-box-alt">
<p> <p>
@@ -148,12 +127,9 @@
</a> </a>
</p> </p>
</div> </div>
</div> </div>
<p class="theme-login-terms"> <p class="theme-login-terms">
با ورود به سیستم، با ورود به سیستم،
@@ -162,7 +138,6 @@
</a> </a>
<br> <br>
و و
<a href="#"> <a href="#">
@@ -172,19 +147,11 @@
ما را می پذیرید. ما را می پذیرید.
</p> </p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@endsection @endsection
-16
View File
@@ -3,7 +3,6 @@
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
<div class="theme-hero-area-bg-wrap"> <div class="theme-hero-area-bg-wrap">
<div class="theme-hero-area-bg" <div class="theme-hero-area-bg"
style="background-image:url({{ asset('img/adult-book-business-cactus-297755_1500x800.jpg') }});"> style="background-image:url({{ asset('img/adult-book-business-cactus-297755_1500x800.jpg') }});">
@@ -13,11 +12,8 @@
</div> </div>
<div class="theme-hero-area-body"> <div class="theme-hero-area-body">
<div class="theme-page-section _pt-100 theme-page-section-xl"> <div class="theme-page-section _pt-100 theme-page-section-xl">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-4 col-md-offset-4"> <div class="col-md-4 col-md-offset-4">
@@ -79,7 +75,6 @@
</div> </div>
<div class="mb-4"> <div class="mb-4">
<label <label
@@ -131,7 +126,6 @@
maxlength="10" maxlength="10"
class="block w-full p-3 text-base outline-none placeholder:text-gray-400 sm:text-sm/6 transition-all text-gray-800 dark:text-gray-100 dark:bg-gray-900 bg-slate-100 border border-transparent hover:border-slate-200 appearance-none rounded-md focus:bg-white focus:border-indigo-400 focus:ring-2 focus:ring-indigo-100" class="block w-full p-3 text-base outline-none placeholder:text-gray-400 sm:text-sm/6 transition-all text-gray-800 dark:text-gray-100 dark:bg-gray-900 bg-slate-100 border border-transparent hover:border-slate-200 appearance-none rounded-md focus:bg-white focus:border-indigo-400 focus:ring-2 focus:ring-indigo-100"
> >
</div> </div>
@error('national_code') @error('national_code')
@@ -186,7 +180,6 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label <label
@@ -237,7 +230,6 @@
</div> </div>
<div class="mb-4"> <div class="mb-4">
<label <label
@@ -300,7 +292,6 @@
</div> </div>
<div class="mb-4"> <div class="mb-4">
<label <label
@@ -332,7 +323,6 @@
</div> </div>
<div class="mb-4"> <div class="mb-4">
<label <label
@@ -362,7 +352,6 @@
</div> </div>
<div class="mb-4"> <div class="mb-4">
<label <label
@@ -473,7 +462,6 @@
</div> </div>
<div class="mb-4"> <div class="mb-4">
<label <label
@@ -503,7 +491,6 @@
</div> </div>
<div class="mb-4"> <div class="mb-4">
<label <label
@@ -527,7 +514,6 @@
</div> </div>
<div class="mt-6"> <div class="mt-6">
<button <button
@@ -541,7 +527,6 @@
</form> </form>
<p class="mt-8 text-center text-sm/6 text-gray-500 dark:text-gray-300"> <p class="mt-8 text-center text-sm/6 text-gray-500 dark:text-gray-300">
حساب کاربری دارید؟ حساب کاربری دارید؟
@@ -607,5 +592,4 @@
}); });
}); });
</script> </script>
@endsection @endsection
+2 -6
View File
@@ -10,7 +10,6 @@
name="type" name="type"
value="App\Models\Flight"> value="App\Models\Flight">
<button class="btn btn-outline-danger"> <button class="btn btn-outline-danger">
❤️ افزودن به علاقه‌مندی ❤️ افزودن به علاقه‌مندی
</button> </button>
@@ -27,14 +26,12 @@
</div> </div>
<div class="card-body d-flex flex-column"> <div class="card-body d-flex flex-column">
<h5 class="fw-bold"> <h5 class="fw-bold">
{{ $flight->airline }} {{ $flight->airline }}
</h5> </h5>
<div class="route"> <div class="route">
<span>{{ $flight->origin }}</span> <span>{{ $flight->origin }}</span>
@@ -43,7 +40,6 @@
<span>{{ $flight->destination }}</span> <span>{{ $flight->destination }}</span>
</div> </div>
<div class="mt-auto d-flex justify-content-between align-items-center"> <div class="mt-auto d-flex justify-content-between align-items-center">
<strong> <strong>
@@ -56,7 +52,7 @@
</a> </a>
</div> </div>
</div> </div>
</div></div> </div>
</div>
-17
View File
@@ -2,20 +2,16 @@
<div class="card border-0 shadow-sm rounded-4 overflow-hidden h-100"> <div class="card border-0 shadow-sm rounded-4 overflow-hidden h-100">
<form action="{{ route('users.favorite.store') }}" method="POST"> <form action="{{ route('users.favorite.store') }}" method="POST">
@csrf @csrf
<input type="hidden" name="id" value="{{ $tour->id }}"> <input type="hidden" name="id" value="{{ $tour->id }}">
<input type="hidden" <input type="hidden"
name="type" name="type"
value="App\Models\Tour"> value="App\Models\Tour">
<button class="btn btn-outline-danger"> <button class="btn btn-outline-danger">
❤️ افزودن به علاقه‌مندی ❤️ افزودن به علاقه‌مندی
</button> </button>
</form> </form>
<div class="flight-image"> <div class="flight-image">
@@ -24,24 +20,18 @@
class="w-100 h-100 object-fit-cover" class="w-100 h-100 object-fit-cover"
alt="{{ $tour->airline }}"> alt="{{ $tour->airline }}">
<span class="flight-badge"> <span class="flight-badge">
تور تور
</span> </span>
</div> </div>
<div class="card-body d-flex flex-column"> <div class="card-body d-flex flex-column">
<h5 class="fw-bold"> <h5 class="fw-bold">
{{ $tour->title }} {{ $tour->title }}
</h5> </h5>
<div class="route"> <div class="route">
<span> <span>
@@ -58,25 +48,18 @@
</div> </div>
<div class="mt-auto d-flex justify-content-between align-items-center"> <div class="mt-auto d-flex justify-content-between align-items-center">
<strong> <strong>
{{ number_format($tour->price) }} تومان {{ number_format($tour->price) }} تومان
</strong> </strong>
<a href="{{ route('tours.show',$tour) }}" <a href="{{ route('tours.show',$tour) }}"
class="btn btn-primary rounded-pill"> class="btn btn-primary rounded-pill">
مشاهده مشاهده
</a> </a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
+1 -42
View File
@@ -1,60 +1,39 @@
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
<div class="container py-5"> <div class="container py-5">
<div class="d-flex justify-content-between align-items-center mb-4"> <div class="d-flex justify-content-between align-items-center mb-4">
<h2 class="fw-bold"> <h2 class="fw-bold">
آرشیو پروازها ️ آرشیو پروازها ️
</h2> </h2>
</div> </div>
<div class="row g-4"> <div class="row g-4">
@foreach($flights as $flight) @foreach($flights as $flight)
<div class="col-lg-4 col-md-6"> <div class="col-lg-4 col-md-6">
<div class="card h-100 shadow-sm border-0 rounded-4 overflow-hidden"> <div class="card h-100 shadow-sm border-0 rounded-4 overflow-hidden">
<div class="position-relative"> <div class="position-relative">
<img src="{{ getImageUrl($flight->image) }}" <img src="{{ getImageUrl($flight->image) }}"
class="card-img-top" class="card-img-top"
style="height:220px; object-fit:cover;" style="height:220px; object-fit:cover;"
alt="{{ $flight->airline }}"> alt="{{ $flight->airline }}">
<span class="position-absolute top-0 end-0 m-3 badge bg-primary"> <span class="position-absolute top-0 end-0 m-3 badge bg-primary">
{{ $flight->flight_class ?? 'Economy' }} {{ $flight->flight_class ?? 'Economy' }}
</span> </span>
</div> </div>
<div class="card-body"> <div class="card-body">
<h5 class="fw-bold mb-3"> <h5 class="fw-bold mb-3">
{{ $flight->airline }} {{ $flight->airline }}
</h5> </h5>
<div class="text-muted mb-2"> <div class="text-muted mb-2">
<i class="bi bi-geo-alt"></i> <i class="bi bi-geo-alt"></i>
@@ -67,8 +46,6 @@
</div> </div>
<div class="mb-2"> <div class="mb-2">
📅 📅
@@ -77,11 +54,8 @@
</div> </div>
<div class="d-flex justify-content-between align-items-center mt-4"> <div class="d-flex justify-content-between align-items-center mt-4">
<strong class="text-primary fs-5"> <strong class="text-primary fs-5">
{{ number_format($flight->price) }} {{ number_format($flight->price) }}
@@ -90,8 +64,6 @@
</strong> </strong>
<a href="{{route('index')}}" <a href="{{route('index')}}"
class="btn btn-outline-primary rounded-pill"> class="btn btn-outline-primary rounded-pill">
@@ -99,34 +71,21 @@
</a> </a>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
@endforeach @endforeach
</div> </div>
<div class="mt-5 d-flex justify-content-center"> <div class="mt-5 d-flex justify-content-center">
{{ $flights->links() }} {{ $flights->links() }}
</div> </div>
</div> </div>
@endsection @endsection
+2 -3
View File
@@ -22,7 +22,6 @@
</span> </span>
</div> </div>
<div class="route-box"> <div class="route-box">
<div> <div>
@@ -43,7 +42,6 @@
</div> </div>
<div class="flight-info-grid"> <div class="flight-info-grid">
<div> <div>
@@ -82,7 +80,8 @@
<button type="submit" class="btn btn-success"> <button type="submit" class="btn btn-success">
رزرو تور رزرو تور
</button> </button>
</form> @else </form>
@else
<a href="{{ route('auth.login.index') }}" class="btn btn-warning btn-lg px-5"> <a href="{{ route('auth.login.index') }}" class="btn btn-warning btn-lg px-5">
برای رزرو وارد شوید برای رزرو وارد شوید
-1
View File
@@ -1,5 +1,4 @@
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
<section class="container mt-5"> <section class="container mt-5">
<h3 class="fw-bold mb-4">آخرین پروازها و تورها</h3> <h3 class="fw-bold mb-4">آخرین پروازها و تورها</h3>
+2 -27
View File
@@ -1,9 +1,6 @@
<footer class="travel-footer"> <footer class="travel-footer">
<div class="container"> <div class="container">
<div class="row gy-5"> <div class="row gy-5">
<div class="col-lg-4 col-md-6"> <div class="col-lg-4 col-md-6">
<h3 class="footer-logo"> <h3 class="footer-logo">
@@ -17,15 +14,12 @@
</div> </div>
<div class="col-lg-2 col-md-6"> <div class="col-lg-2 col-md-6">
<h5> <h5>
دسترسی سریع دسترسی سریع
</h5> </h5>
<ul> <ul>
<li> <li>
@@ -35,25 +29,18 @@
</li> </li>
<li> <li>
<a href="/flights"> <a href="{{route('flights')}}">
پروازها پروازها
</a> </a>
</li> </li>
<li> <li>
<a href="/tours"> <a href="{{route('tours.index')}}">
تورها تورها
</a> </a>
</li> </li>
<li>
<a href="#">
تماس با ما
</a>
</li>
</ul> </ul>
</div> </div>
@@ -64,8 +51,6 @@
<h5> <h5>
خدمات ما خدمات ما
</h5> </h5>
<ul> <ul>
<li> <li>
@@ -88,8 +73,6 @@
</div> </div>
<div class="col-lg-3 col-md-6"> <div class="col-lg-3 col-md-6">
<h5> <h5>
@@ -110,16 +93,10 @@
</p> </p>
</div> </div>
</div> </div>
</div> </div>
<hr> <hr>
<div class="footer-bottom"> <div class="footer-bottom">
<span> <span>
@@ -131,7 +108,5 @@
</span> </span>
</div> </div>
</div> </div>
</footer> </footer>
+1 -18
View File
@@ -1,12 +1,9 @@
<nav class="main-header"> <nav class="main-header">
<div class="container header-inner"> <div class="container header-inner">
<a href="/" class="logo"> <a href="/" class="logo">
Travelio Travelio
</a> </a>
<ul class="menu"> <ul class="menu">
<li> <li>
@@ -28,8 +25,6 @@
</li> </li>
</ul> </ul>
<div class="header-actions"> <div class="header-actions">
@guest @guest
@@ -44,22 +39,18 @@
@endguest @endguest
@auth @auth
<div class="user-dropdown"> <div class="user-dropdown">
<button class="user-btn"> <button class="user-btn">
<i class="fa fa-user"></i> <i class="fa fa-user"></i>
{{ Auth::user()->first_name }} {{getUserFullName()}}
<span>⌄</span> <span>⌄</span>
</button> </button>
<div class="user-menu"> <div class="user-menu">
<a href="{{ route('users.profile.edit') }}"> <a href="{{ route('users.profile.edit') }}">
@@ -67,13 +58,11 @@
پروفایل پروفایل
</a> </a>
<a href="{{ route('users.favorite.index') }}"> <a href="{{ route('users.favorite.index') }}">
<i class="fa fa-heart"></i> <i class="fa fa-heart"></i>
علاقه‌مندی‌ها علاقه‌مندی‌ها
</a> </a>
<a href="{{ route('comments.index') }}"> <a href="{{ route('comments.index') }}">
<i class="fa fa-comments"></i> <i class="fa fa-comments"></i>
نظرات قبلی نظرات قبلی
@@ -93,15 +82,9 @@
</button> </button>
</form> </form>
</div> </div>
</div> </div>
@endauth @endauth
</div> </div>
</div> </div>
</nav> </nav>
+1 -15
View File
@@ -1,27 +1,19 @@
<section class="flight-hero"> <section class="flight-hero">
<div class="container"> <div class="container">
<div class="flight-hero-content"> <div class="flight-hero-content">
<span> <span>
سفر بعدی شما از اینجا شروع می‌شود سفر بعدی شما از اینجا شروع می‌شود
</span> </span>
<h1> <h1>
پرواز خود را پرواز خود را
<span>پیدا کنید</span> <span>پیدا کنید</span>
</h1> </h1>
<p> <p>
مبدا، مقصد سفر خود را انتخاب کنید. مبدا، مقصد سفر خود را انتخاب کنید.
</p> </p>
</div> </div>
<div class="flight-search-card"> <div class="flight-search-card">
<div class="flight-search-header"> <div class="flight-search-header">
<div> <div>
@@ -33,7 +25,6 @@
اطلاعات سفر خود را وارد کنید اطلاعات سفر خود را وارد کنید
</span> </span>
</div> </div>
<div class="flight-type"> <div class="flight-type">
<label> <label>
@@ -52,8 +43,8 @@
type="radio" type="radio"
name="trip_type" name="trip_type"
value="round_trip" value="round_trip"
checked
> >
رفت و برگشت رفت و برگشت
</label> </label>
@@ -61,7 +52,6 @@
</div> </div>
<form action="{{ route('flights') }}" method="GET"> <form action="{{ route('flights') }}" method="GET">
<select name="origin"> <select name="origin">
@@ -75,7 +65,6 @@
</select> </select>
<select name="destination"> <select name="destination">
<option value="">مقصد</option> <option value="">مقصد</option>
@@ -87,16 +76,13 @@
</select> </select>
<button type="submit"> <button type="submit">
جستجو جستجو
</button> </button>
</form> </form>
</div> </div>
</div> </div>
</section> </section>
-21
View File
@@ -1,28 +1,17 @@
@extends('layouts.app') @extends('layouts.app')
@section('content') @section('content')
<div class="container py-5"> <div class="container py-5">
<div class="d-flex justify-content-between align-items-center mb-4"> <div class="d-flex justify-content-between align-items-center mb-4">
<h2 class="fw-bold"> <h2 class="fw-bold">
آرشیو تورها آرشیو تورها
</h2> </h2>
</div> </div>
<div class="row g-4"> <div class="row g-4">
@foreach($tours as $tour) @foreach($tours as $tour)
<div class="col-lg-4 col-md-6"> <div class="col-lg-4 col-md-6">
<div class="card h-100 shadow-sm border-0 rounded-4 overflow-hidden"> <div class="card h-100 shadow-sm border-0 rounded-4 overflow-hidden">
<div class="position-relative"> <div class="position-relative">
<img <img
src="{{ getImageUrl($tour->image) }}" src="{{ getImageUrl($tour->image) }}"
class="card-img-top" class="card-img-top"
@@ -36,21 +25,18 @@
</div> </div>
<div class="card-body d-flex flex-column"> <div class="card-body d-flex flex-column">
<h5 class="fw-bold mb-3"> <h5 class="fw-bold mb-3">
{{ $tour->title }} {{ $tour->title }}
</h5> </h5>
<p class="text-muted mb-3"> <p class="text-muted mb-3">
{{ $tour->summary }} {{ $tour->summary }}
</p> </p>
<div class="d-flex justify-content-between align-items-center mt-auto pt-3"> <div class="d-flex justify-content-between align-items-center mt-auto pt-3">
<strong class="text-primary fs-5"> <strong class="text-primary fs-5">
@@ -62,15 +48,10 @@
</strong> </strong>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@endforeach @endforeach
</div> </div>
<div class="mt-4 d-flex justify-content-center"> <div class="mt-4 d-flex justify-content-center">
@@ -87,7 +68,5 @@
{{$tours->links()}} {{$tours->links()}}
</div> </div>
</div> </div>
@endsection @endsection
-33
View File
@@ -3,38 +3,27 @@
@section('content') @section('content')
<section class="container mt-5"> <section class="container mt-5">
<div class="card border-0 shadow rounded-4 overflow-hidden mb-5"> <div class="card border-0 shadow rounded-4 overflow-hidden mb-5">
<div class="tour-detail-image"> <div class="tour-detail-image">
<img src="{{ $tour->image ? asset('storage/'.$tour->image) : asset('assets/img/placeholder.jpg') }}" <img src="{{ $tour->image ? asset('storage/'.$tour->image) : asset('assets/img/placeholder.jpg') }}"
class="w-100 h-100 object-fit-cover" class="w-100 h-100 object-fit-cover"
alt="{{ $tour->airline }}"> alt="{{ $tour->airline }}">
<span class="badge bg-primary position-absolute top-0 end-0 m-4"> <span class="badge bg-primary position-absolute top-0 end-0 m-4">
تور تور
</span> </span>
</div> </div>
<div class="card-body p-4"> <div class="card-body p-4">
<h1 class="fw-bold mb-3"> <h1 class="fw-bold mb-3">
{{ $tour->title }} {{ $tour->title }}
</h1> </h1>
<p class="text-muted"> <p class="text-muted">
{{ $tour->summary }} {{ $tour->summary }}
</p> </p>
<hr> <hr>
<div class="row g-4"> <div class="row g-4">
<div class="col-md-4"> <div class="col-md-4">
<div class="tour-info-box"> <div class="tour-info-box">
<span>نوع سفر</span> <span>نوع سفر</span>
@@ -54,7 +43,6 @@
</div> </div>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<div class="tour-info-box"> <div class="tour-info-box">
<span>قیمت</span> <span>قیمت</span>
@@ -64,23 +52,18 @@
</h5> </h5>
</div> </div>
</div> </div>
</div> </div>
<hr> <hr>
<h4 class="fw-bold"> <h4 class="fw-bold">
توضیحات تور توضیحات تور
</h4> </h4>
<p> <p>
{{ $tour->description }} {{ $tour->description }}
</p> </p>
<div class="reserve-area mt-5"> <div class="reserve-area mt-5">
@auth @auth
@@ -109,7 +92,6 @@
رزرو تور رزرو تور
</button> </button>
</form> </form>
@else @else
@@ -122,10 +104,8 @@
</a> </a>
@endauth @endauth
</div> </div>
</div> </div>
</div> </div>
<div class="comment-box mb-5"> <div class="comment-box mb-5">
@@ -164,7 +144,6 @@
</div> </div>
<div class="mb-3"> <div class="mb-3">
<textarea name="comment" <textarea name="comment"
@@ -174,15 +153,11 @@
</div> </div>
<button class="btn btn-primary rounded-pill px-5"> <button class="btn btn-primary rounded-pill px-5">
ثبت نظر ثبت نظر
</button> </button>
</form> </form>
</div> </div>
<div class="comment-box"> <div class="comment-box">
@@ -192,7 +167,6 @@
نظرات کاربران نظرات کاربران
</h3> </h3>
@forelse($comments as $comment) @forelse($comments as $comment)
<div class="comment-item"> <div class="comment-item">
@@ -203,7 +177,6 @@
{{ $comment->user ? $comment->user->first_name . ' ' . $comment->user->last_name : 'کاربر مهمان' }} {{ $comment->user ? $comment->user->first_name . ' ' . $comment->user->last_name : 'کاربر مهمان' }}
</strong> </strong>
<small> <small>
{{ $comment->created_at->diffForHumans() }} {{ $comment->created_at->diffForHumans() }}
</small> </small>
@@ -216,8 +189,6 @@
</p> </p>
</div> </div>
@empty @empty
<div class="alert alert-secondary rounded-4"> <div class="alert alert-secondary rounded-4">
@@ -226,12 +197,8 @@
@endforelse @endforelse
</div> </div>
</section> </section>
@endsection @endsection