git add .
git commit "Complete project development and finalize features"
This commit is contained in:
@@ -8,7 +8,6 @@ use Illuminate\Http\Request;
|
||||
|
||||
class ActivityLogController extends Controller
|
||||
{
|
||||
//
|
||||
public function index()
|
||||
{
|
||||
$logs=ActivityLog::with('admin')
|
||||
|
||||
@@ -18,20 +18,21 @@ class AuthController extends Controller
|
||||
}
|
||||
public function loginPost(LoginPostRequest $request)
|
||||
{
|
||||
$loginData=$request->validated();
|
||||
$login=$request->validated();
|
||||
|
||||
$admins=Admin::query()
|
||||
->where('username',$request->input('username'))
|
||||
->where('status',AdminStatus::Active)
|
||||
->first();
|
||||
|
||||
if (!$admins){
|
||||
if (!$admins || !\Hash::check($login['password'],$admins->password)){
|
||||
return back()->withErrors([
|
||||
'general' => 'اطلاعات وارد شده نامعتبر است'
|
||||
]);
|
||||
}
|
||||
|
||||
Auth::guard('admin')->login($admins);
|
||||
$request->session()->regenerate();
|
||||
return redirect()->route('admin.dashboard.index');
|
||||
|
||||
}
|
||||
|
||||
@@ -24,14 +24,10 @@ class FlightController extends Controller
|
||||
|
||||
return view('admin.flights.index', compact('flights'));
|
||||
}
|
||||
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('admin.flights.create');
|
||||
}
|
||||
|
||||
|
||||
public function store(FlightStoreRequest $request)
|
||||
{
|
||||
DB::beginTransaction();
|
||||
@@ -46,8 +42,6 @@ class FlightController extends Controller
|
||||
)->formatGregorian('Y-m-d');
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ($request->hasFile('image')) {
|
||||
|
||||
$data['image'] = $request
|
||||
@@ -70,7 +64,6 @@ class FlightController extends Controller
|
||||
|
||||
DB::commit();
|
||||
|
||||
|
||||
return redirect()
|
||||
->route('admin.flights.index')
|
||||
->with('success','پرواز ثبت شد');
|
||||
@@ -84,14 +77,10 @@ class FlightController extends Controller
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function edit(Flight $flight)
|
||||
{
|
||||
return view('admin.flights.edit',compact('flight'));
|
||||
}
|
||||
|
||||
public function update(FlightStoreRequest $request, Flight $flight)
|
||||
{
|
||||
|
||||
@@ -118,12 +107,9 @@ class FlightController extends Controller
|
||||
->delete($flight->image);
|
||||
|
||||
}
|
||||
|
||||
|
||||
$data['image'] = $request
|
||||
->file('image')
|
||||
->store('flights','public');
|
||||
|
||||
}
|
||||
|
||||
$data['updated_by'] = auth('admin')->id();
|
||||
@@ -140,12 +126,10 @@ class FlightController extends Controller
|
||||
|
||||
DB::commit();
|
||||
|
||||
|
||||
return redirect()
|
||||
->route('admin.flights.index')
|
||||
->with('success','پرواز ویرایش شد');
|
||||
|
||||
|
||||
}catch(\Exception $e){
|
||||
|
||||
DB::rollBack();
|
||||
@@ -155,7 +139,6 @@ class FlightController extends Controller
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function destroy(Flight $flight)
|
||||
{
|
||||
|
||||
@@ -179,6 +162,5 @@ class FlightController extends Controller
|
||||
|
||||
return back()
|
||||
->with('success','پرواز حذف شد');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ use Illuminate\Http\Request;
|
||||
|
||||
class ProvinceController extends Controller
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
$provinces = Province::latest()->paginate(5);
|
||||
@@ -16,15 +15,11 @@ class ProvinceController extends Controller
|
||||
return view('admin.provinces.index', compact('provinces'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('admin.provinces.create');
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
@@ -42,41 +37,27 @@ class ProvinceController extends Controller
|
||||
->route('admin.provinces.index');
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function edit(Province $province)
|
||||
{
|
||||
return view('admin.provinces.edit',compact('province'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function update(Request $request, Province $province)
|
||||
{
|
||||
|
||||
$request->validate([
|
||||
'name'=>'required'
|
||||
]);
|
||||
|
||||
|
||||
$province->update([
|
||||
'name'=>$request->name
|
||||
]);
|
||||
|
||||
|
||||
return redirect()
|
||||
->route('admin.provinces.index');
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function destroy(Province $province)
|
||||
{
|
||||
|
||||
$province->delete();
|
||||
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,7 +26,5 @@ class RoleController extends Controller
|
||||
|
||||
return redirect()->back()->with('success','دسترسیها با موفقیت ذخیره شد');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -18,14 +18,12 @@ class SettingController extends Controller
|
||||
return view('admin.settings.index', compact('settings'));
|
||||
}
|
||||
|
||||
|
||||
public function create()
|
||||
{
|
||||
$settings = Setting::all();
|
||||
return view('admin.settings.create',compact('settings'));
|
||||
|
||||
}
|
||||
|
||||
public function store(SettingStoreRequest $request)
|
||||
{
|
||||
Setting::create($request->validated());
|
||||
@@ -36,18 +34,14 @@ class SettingController extends Controller
|
||||
public function edit(Setting $setting)
|
||||
{
|
||||
return view('admin.settings.edit', compact('setting'));
|
||||
|
||||
}
|
||||
|
||||
public function update(SettingUpdateRequest $request,Setting $setting)
|
||||
{
|
||||
|
||||
$setting->update($request->validated());
|
||||
|
||||
return redirect()
|
||||
->route('admin.settings.index')
|
||||
->with('success', 'تنظیمات با موفقیت ویرایش شد.');
|
||||
|
||||
}
|
||||
|
||||
public function destroy(Setting $setting)
|
||||
|
||||
@@ -25,15 +25,10 @@ class TourController extends Controller
|
||||
|
||||
return view('admin.tours.index', compact('tours'));
|
||||
}
|
||||
|
||||
|
||||
public function create()
|
||||
{
|
||||
|
||||
return view('admin.tours.create' );
|
||||
}
|
||||
|
||||
|
||||
public function store(TourStoreRequest $request)
|
||||
{
|
||||
DB::beginTransaction();
|
||||
@@ -49,7 +44,6 @@ class TourController extends Controller
|
||||
)->formatGregorian('Y-m-d');
|
||||
|
||||
}
|
||||
|
||||
if ($request->hasFile('image')) {
|
||||
|
||||
$data['image'] = $request
|
||||
@@ -69,8 +63,6 @@ class TourController extends Controller
|
||||
'model_id' => $tour->id,
|
||||
'description' => 'ثبت تور جدید',
|
||||
]);
|
||||
|
||||
|
||||
DB::commit();
|
||||
|
||||
|
||||
@@ -78,7 +70,6 @@ class TourController extends Controller
|
||||
->route('admin.tours.index')
|
||||
->with('success','تور ثبت شد');
|
||||
|
||||
|
||||
} catch(\Exception $e) {
|
||||
|
||||
DB::rollBack();
|
||||
@@ -92,8 +83,6 @@ class TourController extends Controller
|
||||
return view('admin.tours.edit',compact('tour'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function update(TourStoreRequest $request, Tour $tour)
|
||||
{
|
||||
|
||||
@@ -121,7 +110,6 @@ class TourController extends Controller
|
||||
|
||||
}
|
||||
|
||||
|
||||
$data['image'] = $request
|
||||
->file('image')
|
||||
->store('tours','public');
|
||||
@@ -139,15 +127,12 @@ class TourController extends Controller
|
||||
'description' => 'ویرایش تور',
|
||||
]);
|
||||
|
||||
|
||||
DB::commit();
|
||||
|
||||
|
||||
return redirect()
|
||||
->route('admin.tours.index')
|
||||
->with('success','تور ویرایش شد');
|
||||
|
||||
|
||||
}catch(\Exception $e){
|
||||
|
||||
DB::rollBack();
|
||||
@@ -155,12 +140,10 @@ class TourController extends Controller
|
||||
dd($e->getMessage());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function destroy(Tour $tour)
|
||||
{
|
||||
|
||||
if($tour->image){
|
||||
|
||||
Storage::disk('public')
|
||||
@@ -176,12 +159,9 @@ class TourController extends Controller
|
||||
'description' => 'حذف تور',
|
||||
]);
|
||||
|
||||
|
||||
$tour->delete();
|
||||
|
||||
|
||||
return back()
|
||||
->with('success','تور حذف شد');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,5 @@ class UserController extends Controller
|
||||
$user->update(['password'=>Hash::make($request->password)]);
|
||||
|
||||
return back();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ class LoginController extends Controller
|
||||
|
||||
return view('auth.login',compact('withoutHeader','withoutHero','withoutFooter'));
|
||||
}
|
||||
|
||||
public function post(LoginPostRequest $request)
|
||||
{
|
||||
$user = $request->validated();
|
||||
|
||||
@@ -16,6 +16,5 @@ class LogoutController extends Controller
|
||||
Request()->session()->regenerateToken();
|
||||
|
||||
return redirect()->route('index');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,8 +40,6 @@ class RegisterController extends Controller
|
||||
$inputs['profile_image'] = $imageName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$inputs['password']=Hash::make($inputs['password']);
|
||||
$inputs['status']=UserStatus::Draft;
|
||||
|
||||
@@ -51,6 +49,5 @@ class RegisterController extends Controller
|
||||
|
||||
return redirect()->route('index');
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,20 +25,15 @@ class FavoriteController extends Controller
|
||||
'favoritable_id' => $request->id,
|
||||
]);
|
||||
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
|
||||
public function destroy(Favorite $favorite)
|
||||
{
|
||||
|
||||
$favorite->delete();
|
||||
|
||||
return back()->with(
|
||||
'success',
|
||||
'تور از علاقهمندیها حذف شد.'
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,26 +15,19 @@ class FlightController extends Controller
|
||||
->applySearch($request->all())
|
||||
->paginate(10);
|
||||
|
||||
|
||||
$newestFlight = Flight::latest()
|
||||
->take(3)
|
||||
->get();
|
||||
|
||||
|
||||
$newestTour = Tour::latest()
|
||||
->take(3)
|
||||
->get();
|
||||
|
||||
|
||||
$tours = Tour::latest()
|
||||
->paginate(10);
|
||||
|
||||
|
||||
return view('flights.index', compact(
|
||||
'flights',
|
||||
'newestFlight',
|
||||
'newestTour',
|
||||
'tours'
|
||||
return view('flights.index', compact('flights', 'newestFlight',
|
||||
'newestTour', 'tours'
|
||||
));
|
||||
}
|
||||
public function show(Flight $flight)
|
||||
@@ -48,7 +41,6 @@ class FlightController extends Controller
|
||||
->latest()
|
||||
->get();
|
||||
|
||||
|
||||
return view('flights.show', compact('flight', 'comments'));
|
||||
}
|
||||
|
||||
|
||||
@@ -24,11 +24,8 @@ class HomeController extends Controller
|
||||
$tours = Tour::latest()
|
||||
->paginate(5);
|
||||
|
||||
return view('home.index', compact(
|
||||
'newestFlight',
|
||||
'newestTour',
|
||||
'flights',
|
||||
'tours'
|
||||
return view('home.index', compact('newestFlight',
|
||||
'newestTour', 'flights', 'tours'
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,11 +16,8 @@ class ReservationController extends Controller
|
||||
->latest()
|
||||
->get();
|
||||
|
||||
|
||||
return view('account.users.Reservation.index', compact('reservations'));
|
||||
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
@@ -32,6 +29,7 @@ class ReservationController extends Controller
|
||||
'status' => 'pending'
|
||||
]);
|
||||
|
||||
return redirect()->route('users.reservations.index')->with('success','رزرو شما ثبت شد.'); }
|
||||
return redirect()->route('users.reservations.index')
|
||||
->with('success','رزرو شما ثبت شد.'); }
|
||||
|
||||
}
|
||||
|
||||
@@ -17,9 +17,8 @@ class TourController extends Controller
|
||||
->latest()
|
||||
->paginate(2);
|
||||
|
||||
return view('tours.index', compact('tours'))
|
||||
->with('withoutHero', true); }
|
||||
|
||||
return view('tours.index', compact('tours', 'newestTour'));
|
||||
}
|
||||
|
||||
public function show(Tour $tour)
|
||||
{
|
||||
@@ -33,7 +32,6 @@ class TourController extends Controller
|
||||
->latest()
|
||||
->get();
|
||||
|
||||
|
||||
return view('tours.show', compact('tour','comments'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,27 @@ class FlightStoreRequest extends FormRequest
|
||||
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.
|
||||
*
|
||||
@@ -46,20 +67,7 @@ class FlightStoreRequest extends FormRequest
|
||||
],
|
||||
'departure_date' => [
|
||||
'required',
|
||||
function ($attribute, $value, $fail) {
|
||||
|
||||
try {
|
||||
$gregorian = Verta::parse($value)
|
||||
->formatGregorian('Y-m-d');
|
||||
} catch (\Exception $e) {
|
||||
$fail('تاریخ حرکت معتبر نیست.');
|
||||
return;
|
||||
}
|
||||
|
||||
if ($gregorian < now()->format('Y-m-d')) {
|
||||
$fail('تاریخ حرکت نمیتواند قبل از تاریخ امروز باشد.');
|
||||
}
|
||||
},
|
||||
'date'
|
||||
],
|
||||
'departure_time' => [
|
||||
'required',
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -15,23 +15,38 @@
|
||||
<div class="account-sidebar">
|
||||
|
||||
<div class="account-user">
|
||||
|
||||
<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>
|
||||
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
<h4>
|
||||
</h4>
|
||||
<br>
|
||||
|
||||
<span>
|
||||
{{Auth::user()->email}}
|
||||
{{ auth()->user()->email }}
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="{{route('users.profile.edit')}}">
|
||||
<a href="{{ route('users.profile.edit') }}">
|
||||
<i class="fa fa-user"></i>
|
||||
پروفایل من
|
||||
</a>
|
||||
@@ -39,7 +54,7 @@
|
||||
|
||||
|
||||
<li>
|
||||
<a href="{{route('users.favorite.index')}}">
|
||||
<a href="{{ route('users.favorite.index') }}">
|
||||
<i class="fa fa-heart"></i>
|
||||
علاقهمندیها
|
||||
</a>
|
||||
@@ -47,23 +62,28 @@
|
||||
|
||||
|
||||
<li>
|
||||
<a href="{{route('comments.index')}}">
|
||||
<a href="{{ route('comments.index') }}">
|
||||
<i class="fa fa-comments"></i>
|
||||
نظرات من
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a href="{{route('users.reservations.index')}}">
|
||||
<i class="fa fa-reservations"></i>
|
||||
<a href="{{ route('users.reservations.index') }}">
|
||||
<i class="fa fa-calendar"></i>
|
||||
رزرو من
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<form action="{{ route('auth.logout.index') }}" method="POST">
|
||||
@csrf
|
||||
<button type="submit">
|
||||
خروج
|
||||
</button>
|
||||
</form>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,52 +1,29 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="theme-page-section theme-page-section-lg">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
|
||||
@include('account.layout.app')
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-9">
|
||||
|
||||
|
||||
<div class="account-content">
|
||||
|
||||
|
||||
<h2 class="account-title">
|
||||
رزروهای من ✈️
|
||||
رزروهای من
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
@if($reservations->count())
|
||||
|
||||
|
||||
<div class="favorite-list">
|
||||
|
||||
|
||||
@foreach($reservations as $reservation)
|
||||
|
||||
|
||||
<div class="favorite-card">
|
||||
|
||||
|
||||
<div class="favorite-info">
|
||||
|
||||
|
||||
@if($reservation->reservable_type == 'App\Models\Tour')
|
||||
|
||||
|
||||
<h3>
|
||||
{{ $reservation->reservable?->title ?? 'تور حذف شده' }}
|
||||
</h3>
|
||||
@@ -55,7 +32,6 @@
|
||||
تور
|
||||
</p>
|
||||
|
||||
|
||||
@elseif($reservation->reservable_type == 'App\Models\Flight')
|
||||
|
||||
|
||||
@@ -71,8 +47,6 @@
|
||||
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
مبلغ:
|
||||
|
||||
@@ -82,8 +56,6 @@
|
||||
</strong>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
|
||||
وضعیت:
|
||||
@@ -110,22 +82,12 @@
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@endforeach
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@else
|
||||
|
||||
|
||||
<div class="empty-favorite">
|
||||
|
||||
<i class="fa fa-plane"></i>
|
||||
@@ -135,22 +97,10 @@
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@endif
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -1,27 +1,17 @@
|
||||
@extends('account.layout.app')
|
||||
|
||||
|
||||
@section('account-content')
|
||||
|
||||
|
||||
<div class="profile-box">
|
||||
|
||||
|
||||
<h3 class="fw-bold">
|
||||
سلام {{auth()->user()->name}} 👋
|
||||
</h3>
|
||||
|
||||
|
||||
<p class="text-muted">
|
||||
از اینجا میتوانید تورها، پروازها و نظرات خود را مدیریت کنید.
|
||||
</p>
|
||||
|
||||
|
||||
<div class="row mt-4">
|
||||
|
||||
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="card border-0 shadow-sm rounded-4 p-3">
|
||||
|
||||
<h5>
|
||||
@@ -31,15 +21,10 @@
|
||||
<strong>
|
||||
{{ auth()->user()->favorites()->count() }}
|
||||
</strong>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="card border-0 shadow-sm rounded-4 p-3">
|
||||
|
||||
<h5>
|
||||
@@ -51,31 +36,19 @@
|
||||
</strong>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="card border-0 shadow-sm rounded-4 p-3">
|
||||
|
||||
<h5>
|
||||
رزرو✈️
|
||||
</h5>
|
||||
|
||||
<strong>
|
||||
{{ auth()->user()->reservations()->count() }}
|
||||
</strong>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -80,7 +80,6 @@
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
|
||||
@else
|
||||
|
||||
<div class="empty-favorite">
|
||||
|
||||
@@ -1,35 +1,25 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="theme-page-section theme-page-section-lg">
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-3">
|
||||
|
||||
<div class="col-md-3">
|
||||
|
||||
@include('account.layout.app')
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
|
||||
<div class="theme-account">
|
||||
|
||||
<div class="theme-account-header">
|
||||
|
||||
<h1 class="theme-account-title">
|
||||
ویرایش پروفایل
|
||||
</h1>
|
||||
|
||||
<p class="theme-account-subtitle">
|
||||
اطلاعات حساب کاربری خود را ویرایش کنید
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
@if(session('success'))
|
||||
@@ -38,14 +28,12 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
لطفاً خطاهای فرم را بررسی کنید.
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
<form
|
||||
action="{{ route('users.profile.update') }}"
|
||||
method="POST"
|
||||
@@ -163,7 +151,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
@@ -321,12 +308,9 @@
|
||||
{{ $message }}
|
||||
</span>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-12">
|
||||
|
||||
<div class="form-group">
|
||||
@@ -350,13 +334,9 @@
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="theme-account-box">
|
||||
@@ -427,18 +407,12 @@
|
||||
{{ $message }}
|
||||
</span>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="theme-account-box">
|
||||
|
||||
<div class="theme-account-box-header">
|
||||
@@ -458,9 +432,7 @@
|
||||
alt="تصویر پروفایل"
|
||||
style="width:100px;height:100px;object-fit:cover;border-radius:50%;"
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
@endif
|
||||
|
||||
<div class="form-group">
|
||||
@@ -482,15 +454,11 @@
|
||||
{{ $message }}
|
||||
</span>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="theme-account-box">
|
||||
|
||||
<div class="theme-account-box-header">
|
||||
|
||||
<h3>
|
||||
@@ -532,7 +500,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
@@ -555,10 +522,8 @@
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group">
|
||||
@@ -575,13 +540,9 @@
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="text-left">
|
||||
@@ -592,20 +553,13 @@
|
||||
>
|
||||
ذخیره تغییرات
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
|
||||
@@ -5,72 +5,42 @@
|
||||
گزارش فعالیتها
|
||||
</span>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container mt-4">
|
||||
|
||||
|
||||
<div class="card shadow">
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<h5 class="mb-4">
|
||||
گزارش تغییرات سیستم
|
||||
</h5>
|
||||
|
||||
|
||||
<div class="table-responsive">
|
||||
|
||||
<table class="table table-bordered text-center align-middle">
|
||||
|
||||
|
||||
<thead class="table-light">
|
||||
|
||||
<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>
|
||||
|
||||
</thead>
|
||||
|
||||
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
@forelse($logs as $log)
|
||||
|
||||
<tr>
|
||||
|
||||
<td>
|
||||
{{ $loop->iteration }}
|
||||
</td>
|
||||
@@ -89,7 +59,6 @@
|
||||
</span>
|
||||
@break
|
||||
|
||||
|
||||
@case('update')
|
||||
<span class="badge bg-warning">
|
||||
ویرایش
|
||||
@@ -103,7 +72,6 @@
|
||||
</span>
|
||||
@break
|
||||
|
||||
|
||||
@default
|
||||
{{ $log->action }}
|
||||
|
||||
@@ -133,14 +101,10 @@
|
||||
{{ $log->model_id }}
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
<td>
|
||||
{{ $log->description }}
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
<td>
|
||||
{{ $log->created_at->toJalali()->format('Y/m/d H:i') }}
|
||||
</td>
|
||||
@@ -149,7 +113,6 @@
|
||||
|
||||
@empty
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td colspan="7">
|
||||
@@ -164,19 +127,14 @@
|
||||
|
||||
</tbody>
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
{{ $logs->links() }}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
@extends('admin.layouts.app')
|
||||
|
||||
@section('breadcrumb')
|
||||
|
||||
<div>
|
||||
@@ -29,11 +28,8 @@
|
||||
@section('content')
|
||||
|
||||
<div class="container-fluid pt-4">
|
||||
|
||||
<div class="card custom-card">
|
||||
|
||||
<div class="card-header">
|
||||
|
||||
<div class="card-title">
|
||||
ایجاد ادمین جدید
|
||||
</div>
|
||||
@@ -260,13 +256,9 @@
|
||||
>
|
||||
ذخیره ادمین
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
@extends('admin.layouts.app')
|
||||
|
||||
@section('breadcrumb')
|
||||
|
||||
<div>
|
||||
<h1 class="page-title fw-medium fs-18 mb-2">
|
||||
ویرایش ادمین
|
||||
</h1>
|
||||
|
||||
<nav>
|
||||
<ol class="breadcrumb mb-0">
|
||||
|
||||
@@ -19,7 +17,6 @@
|
||||
<li class="breadcrumb-item active">
|
||||
ویرایش ادمین
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
@@ -29,11 +26,8 @@
|
||||
@section('content')
|
||||
|
||||
<div class="container-fluid pt-4">
|
||||
|
||||
<div class="card custom-card">
|
||||
|
||||
<div class="card-header">
|
||||
|
||||
<div class="card-title">
|
||||
ویرایش ادمین
|
||||
</div>
|
||||
@@ -98,7 +92,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<label class="form-label">
|
||||
@@ -121,7 +114,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<label class="form-label">
|
||||
@@ -144,7 +136,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<label class="form-label">
|
||||
@@ -167,7 +158,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<label class="form-label">
|
||||
@@ -189,7 +179,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<label class="form-label">
|
||||
@@ -226,7 +215,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<label class="form-label">
|
||||
@@ -277,13 +265,9 @@
|
||||
>
|
||||
ذخیره تغییرات
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
@extends('admin.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container-fluid pt-4">
|
||||
|
||||
<div class="card custom-card">
|
||||
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
|
||||
<div class="card-title">
|
||||
لیست ادمینها
|
||||
</div>
|
||||
@@ -20,11 +16,8 @@
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
<div class="table-responsive">
|
||||
|
||||
<table class="table table-bordered table-hover text-center align-middle">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>نام</th>
|
||||
@@ -39,9 +32,7 @@
|
||||
<tbody>
|
||||
|
||||
@forelse($admins as $admin)
|
||||
|
||||
<tr>
|
||||
|
||||
<td>
|
||||
{{ $admin->first_name }}
|
||||
</td>
|
||||
@@ -99,11 +90,9 @@
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
@empty
|
||||
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
ادمینی ثبت نشده است.
|
||||
@@ -111,11 +100,8 @@
|
||||
</tr>
|
||||
|
||||
@endforelse
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
@@ -123,9 +109,7 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
@extends('admin.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container mt-5">
|
||||
|
||||
<div class="row justify-content-center">
|
||||
|
||||
<div class="col-md-5">
|
||||
|
||||
<div class="card shadow rounded-4">
|
||||
|
||||
<div class="card-body p-4">
|
||||
|
||||
<h3 class="text-center mb-4">
|
||||
ورود مدیر
|
||||
</h3>
|
||||
@@ -19,12 +13,10 @@
|
||||
<span style="color: #42a5f5"> {{$message}} </span>
|
||||
@enderror
|
||||
|
||||
|
||||
<form action="{{ route('admin.auth.login.post') }}" method="POST">
|
||||
|
||||
@csrf
|
||||
|
||||
|
||||
<div class="mb-3">
|
||||
|
||||
<label>
|
||||
@@ -44,7 +36,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-3">
|
||||
|
||||
<label>
|
||||
@@ -60,25 +51,16 @@
|
||||
<span style="color: #42a5f5"> {{$message}} </span>
|
||||
@enderror
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<button class="btn btn-primary w-100">
|
||||
ورود
|
||||
</button>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
<link rel="stylesheet" href="{{ asset('assets/css/register_login.css') }}">
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="theme-hero-area">
|
||||
|
||||
<div class="theme-hero-area-bg-wrap">
|
||||
<div
|
||||
class="theme-hero-area-bg"
|
||||
@@ -15,13 +13,9 @@
|
||||
</div>
|
||||
|
||||
<div class="theme-hero-area-body">
|
||||
|
||||
<div class="theme-page-section _pt-100 theme-page-section-xl">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
|
||||
<div class="theme-login theme-login-white">
|
||||
@@ -35,23 +29,18 @@
|
||||
<p class="theme-login-subtitle">
|
||||
وارد حساب Bookify خود شوید
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="theme-login-box">
|
||||
|
||||
<div class="theme-login-box-inner">
|
||||
|
||||
{{-- Login Form --}}
|
||||
<form
|
||||
class="theme-login-form"
|
||||
action="{{ route('auth.login.post') }}"
|
||||
method="POST"
|
||||
>
|
||||
|
||||
@csrf
|
||||
|
||||
{{-- Mobile --}}
|
||||
<div class="form-group theme-login-form-group">
|
||||
<label>شماره موبایل</label>
|
||||
<input
|
||||
@@ -70,8 +59,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- Password --}}
|
||||
<div class="form-group theme-login-form-group">
|
||||
<label>کلمه عبور</label>
|
||||
|
||||
@@ -90,8 +77,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{-- General Error --}}
|
||||
@error('general')
|
||||
|
||||
<div class="text-danger">
|
||||
@@ -100,10 +85,7 @@
|
||||
|
||||
@enderror
|
||||
|
||||
|
||||
{{-- Remember --}}
|
||||
<div class="form-group">
|
||||
|
||||
<div class="theme-login-checkbox">
|
||||
|
||||
<label class="icheck-label">
|
||||
@@ -126,7 +108,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
{{-- Submit --}}
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-uc btn-dark btn-block btn-lg"
|
||||
@@ -136,8 +117,6 @@
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<div class="theme-login-box-alt">
|
||||
|
||||
<p>
|
||||
@@ -148,12 +127,9 @@
|
||||
</a>
|
||||
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<p class="theme-login-terms">
|
||||
|
||||
با ورود به سیستم،
|
||||
@@ -162,7 +138,6 @@
|
||||
</a>
|
||||
|
||||
<br>
|
||||
|
||||
و
|
||||
|
||||
<a href="#">
|
||||
@@ -172,19 +147,11 @@
|
||||
ما را می پذیرید.
|
||||
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
@extends('layouts.app')
|
||||
@section('content')
|
||||
|
||||
|
||||
<div class="theme-hero-area-bg-wrap">
|
||||
<div class="theme-hero-area-bg"
|
||||
style="background-image:url({{ asset('img/adult-book-business-cactus-297755_1500x800.jpg') }});">
|
||||
@@ -13,11 +12,8 @@
|
||||
</div>
|
||||
|
||||
<div class="theme-hero-area-body">
|
||||
|
||||
<div class="theme-page-section _pt-100 theme-page-section-xl">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
@@ -79,7 +75,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-4">
|
||||
|
||||
<label
|
||||
@@ -131,7 +126,6 @@
|
||||
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"
|
||||
>
|
||||
|
||||
</div>
|
||||
|
||||
@error('national_code')
|
||||
@@ -186,7 +180,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<label
|
||||
@@ -237,7 +230,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-4">
|
||||
|
||||
<label
|
||||
@@ -300,7 +292,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-4">
|
||||
|
||||
<label
|
||||
@@ -332,7 +323,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-4">
|
||||
|
||||
<label
|
||||
@@ -362,7 +352,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-4">
|
||||
|
||||
<label
|
||||
@@ -473,7 +462,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-4">
|
||||
|
||||
<label
|
||||
@@ -503,7 +491,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-4">
|
||||
|
||||
<label
|
||||
@@ -527,7 +514,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mt-6">
|
||||
|
||||
<button
|
||||
@@ -541,7 +527,6 @@
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
<p class="mt-8 text-center text-sm/6 text-gray-500 dark:text-gray-300">
|
||||
|
||||
حساب کاربری دارید؟
|
||||
@@ -607,5 +592,4 @@
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
name="type"
|
||||
value="App\Models\Flight">
|
||||
|
||||
|
||||
<button class="btn btn-outline-danger">
|
||||
❤️ افزودن به علاقهمندی
|
||||
</button>
|
||||
@@ -27,14 +26,12 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-body d-flex flex-column">
|
||||
|
||||
<h5 class="fw-bold">
|
||||
{{ $flight->airline }}
|
||||
</h5>
|
||||
|
||||
|
||||
<div class="route">
|
||||
<span>{{ $flight->origin }}</span>
|
||||
|
||||
@@ -43,7 +40,6 @@
|
||||
<span>{{ $flight->destination }}</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mt-auto d-flex justify-content-between align-items-center">
|
||||
|
||||
<strong>
|
||||
@@ -56,7 +52,7 @@
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,20 +2,16 @@
|
||||
|
||||
<div class="card border-0 shadow-sm rounded-4 overflow-hidden h-100">
|
||||
<form action="{{ route('users.favorite.store') }}" method="POST">
|
||||
|
||||
@csrf
|
||||
|
||||
<input type="hidden" name="id" value="{{ $tour->id }}">
|
||||
|
||||
<input type="hidden"
|
||||
name="type"
|
||||
value="App\Models\Tour">
|
||||
|
||||
|
||||
<button class="btn btn-outline-danger">
|
||||
❤️ افزودن به علاقهمندی
|
||||
</button>
|
||||
|
||||
</form>
|
||||
|
||||
<div class="flight-image">
|
||||
@@ -24,24 +20,18 @@
|
||||
class="w-100 h-100 object-fit-cover"
|
||||
alt="{{ $tour->airline }}">
|
||||
|
||||
|
||||
<span class="flight-badge">
|
||||
تور
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card-body d-flex flex-column">
|
||||
|
||||
|
||||
<h5 class="fw-bold">
|
||||
{{ $tour->title }}
|
||||
</h5>
|
||||
|
||||
|
||||
|
||||
<div class="route">
|
||||
|
||||
<span>
|
||||
@@ -58,25 +48,18 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="mt-auto d-flex justify-content-between align-items-center">
|
||||
|
||||
<strong>
|
||||
{{ number_format($tour->price) }} تومان
|
||||
</strong>
|
||||
|
||||
|
||||
<a href="{{ route('tours.show',$tour) }}"
|
||||
class="btn btn-primary rounded-pill">
|
||||
مشاهده
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,60 +1,39 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container py-5">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
|
||||
<h2 class="fw-bold">
|
||||
آرشیو پروازها ️
|
||||
</h2>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row g-4">
|
||||
|
||||
|
||||
@foreach($flights as $flight)
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
|
||||
|
||||
<div class="card h-100 shadow-sm border-0 rounded-4 overflow-hidden">
|
||||
|
||||
|
||||
<div class="position-relative">
|
||||
|
||||
|
||||
<img src="{{ getImageUrl($flight->image) }}"
|
||||
class="card-img-top"
|
||||
style="height:220px; object-fit:cover;"
|
||||
alt="{{ $flight->airline }}">
|
||||
|
||||
|
||||
<span class="position-absolute top-0 end-0 m-3 badge bg-primary">
|
||||
|
||||
{{ $flight->flight_class ?? 'Economy' }}
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<h5 class="fw-bold mb-3">
|
||||
|
||||
{{ $flight->airline }}
|
||||
|
||||
</h5>
|
||||
|
||||
|
||||
|
||||
<div class="text-muted mb-2">
|
||||
|
||||
<i class="bi bi-geo-alt"></i>
|
||||
@@ -67,8 +46,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="mb-2">
|
||||
|
||||
📅
|
||||
@@ -77,11 +54,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mt-4">
|
||||
|
||||
|
||||
<strong class="text-primary fs-5">
|
||||
|
||||
{{ number_format($flight->price) }}
|
||||
@@ -90,8 +64,6 @@
|
||||
|
||||
</strong>
|
||||
|
||||
|
||||
|
||||
<a href="{{route('index')}}"
|
||||
class="btn btn-outline-primary rounded-pill">
|
||||
|
||||
@@ -99,34 +71,21 @@
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@endforeach
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="mt-5 d-flex justify-content-center">
|
||||
|
||||
{{ $flights->links() }}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="route-box">
|
||||
|
||||
<div>
|
||||
@@ -43,7 +42,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flight-info-grid">
|
||||
|
||||
<div>
|
||||
@@ -82,7 +80,8 @@
|
||||
<button type="submit" class="btn btn-success">
|
||||
رزرو تور
|
||||
</button>
|
||||
</form> @else
|
||||
</form>
|
||||
@else
|
||||
|
||||
<a href="{{ route('auth.login.index') }}" class="btn btn-warning btn-lg px-5">
|
||||
برای رزرو وارد شوید
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<section class="container mt-5">
|
||||
<h3 class="fw-bold mb-4">آخرین پروازها و تورها</h3>
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
<footer class="travel-footer">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="row gy-5">
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
|
||||
<h3 class="footer-logo">
|
||||
@@ -17,15 +14,12 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-lg-2 col-md-6">
|
||||
|
||||
<h5>
|
||||
دسترسی سریع
|
||||
</h5>
|
||||
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
@@ -35,25 +29,18 @@
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/flights">
|
||||
<a href="{{route('flights')}}">
|
||||
پروازها
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a href="/tours">
|
||||
<a href="{{route('tours.index')}}">
|
||||
تورها
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a href="#">
|
||||
تماس با ما
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -64,8 +51,6 @@
|
||||
<h5>
|
||||
خدمات ما
|
||||
</h5>
|
||||
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
@@ -88,8 +73,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-lg-3 col-md-6">
|
||||
|
||||
<h5>
|
||||
@@ -110,16 +93,10 @@
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="footer-bottom">
|
||||
|
||||
<span>
|
||||
@@ -131,7 +108,5 @@
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
<nav class="main-header">
|
||||
|
||||
<div class="container header-inner">
|
||||
|
||||
<a href="/" class="logo">
|
||||
Travelio
|
||||
</a>
|
||||
|
||||
|
||||
<ul class="menu">
|
||||
|
||||
<li>
|
||||
@@ -28,8 +25,6 @@
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="header-actions">
|
||||
|
||||
@guest
|
||||
@@ -44,22 +39,18 @@
|
||||
|
||||
@endguest
|
||||
|
||||
|
||||
@auth
|
||||
|
||||
<div class="user-dropdown">
|
||||
|
||||
<button class="user-btn">
|
||||
|
||||
<i class="fa fa-user"></i>
|
||||
|
||||
{{ Auth::user()->first_name }}
|
||||
{{getUserFullName()}}
|
||||
|
||||
<span>⌄</span>
|
||||
|
||||
</button>
|
||||
|
||||
|
||||
<div class="user-menu">
|
||||
|
||||
<a href="{{ route('users.profile.edit') }}">
|
||||
@@ -67,13 +58,11 @@
|
||||
پروفایل
|
||||
</a>
|
||||
|
||||
|
||||
<a href="{{ route('users.favorite.index') }}">
|
||||
<i class="fa fa-heart"></i>
|
||||
علاقهمندیها
|
||||
</a>
|
||||
|
||||
|
||||
<a href="{{ route('comments.index') }}">
|
||||
<i class="fa fa-comments"></i>
|
||||
نظرات قبلی
|
||||
@@ -93,15 +82,9 @@
|
||||
</button>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endauth
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
@@ -1,27 +1,19 @@
|
||||
<section class="flight-hero">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="flight-hero-content">
|
||||
|
||||
<span>
|
||||
سفر بعدی شما از اینجا شروع میشود
|
||||
</span>
|
||||
|
||||
<h1>
|
||||
پرواز خود را
|
||||
<span>پیدا کنید</span>
|
||||
</h1>
|
||||
|
||||
<p>
|
||||
مبدا، مقصد سفر خود را انتخاب کنید.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flight-search-card">
|
||||
|
||||
<div class="flight-search-header">
|
||||
|
||||
<div>
|
||||
@@ -33,7 +25,6 @@
|
||||
اطلاعات سفر خود را وارد کنید
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="flight-type">
|
||||
|
||||
<label>
|
||||
@@ -52,8 +43,8 @@
|
||||
type="radio"
|
||||
name="trip_type"
|
||||
value="round_trip"
|
||||
checked
|
||||
>
|
||||
|
||||
رفت و برگشت
|
||||
</label>
|
||||
|
||||
@@ -61,7 +52,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<form action="{{ route('flights') }}" method="GET">
|
||||
|
||||
<select name="origin">
|
||||
@@ -75,7 +65,6 @@
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select name="destination">
|
||||
<option value="">مقصد</option>
|
||||
|
||||
@@ -87,16 +76,13 @@
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<button type="submit">
|
||||
جستجو
|
||||
</button>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +1,17 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="container py-5">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
|
||||
<h2 class="fw-bold">
|
||||
آرشیو تورها
|
||||
</h2>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row g-4">
|
||||
|
||||
@foreach($tours as $tour)
|
||||
|
||||
<div class="col-lg-4 col-md-6">
|
||||
|
||||
<div class="card h-100 shadow-sm border-0 rounded-4 overflow-hidden">
|
||||
|
||||
<div class="position-relative">
|
||||
|
||||
<img
|
||||
src="{{ getImageUrl($tour->image) }}"
|
||||
class="card-img-top"
|
||||
@@ -36,21 +25,18 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-body d-flex flex-column">
|
||||
|
||||
<h5 class="fw-bold mb-3">
|
||||
{{ $tour->title }}
|
||||
</h5>
|
||||
|
||||
|
||||
<p class="text-muted mb-3">
|
||||
|
||||
{{ $tour->summary }}
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mt-auto pt-3">
|
||||
|
||||
<strong class="text-primary fs-5">
|
||||
@@ -62,15 +48,10 @@
|
||||
</strong>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-4 d-flex justify-content-center">
|
||||
@@ -87,7 +68,5 @@
|
||||
{{$tours->links()}}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -3,38 +3,27 @@
|
||||
@section('content')
|
||||
|
||||
<section class="container mt-5">
|
||||
|
||||
<div class="card border-0 shadow rounded-4 overflow-hidden mb-5">
|
||||
|
||||
<div class="tour-detail-image">
|
||||
|
||||
<img src="{{ $tour->image ? asset('storage/'.$tour->image) : asset('assets/img/placeholder.jpg') }}"
|
||||
class="w-100 h-100 object-fit-cover"
|
||||
alt="{{ $tour->airline }}">
|
||||
<span class="badge bg-primary position-absolute top-0 end-0 m-4">
|
||||
تور
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-body p-4">
|
||||
|
||||
<h1 class="fw-bold mb-3">
|
||||
{{ $tour->title }}
|
||||
</h1>
|
||||
|
||||
|
||||
<p class="text-muted">
|
||||
{{ $tour->summary }}
|
||||
</p>
|
||||
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="row g-4">
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="tour-info-box">
|
||||
<span>نوع سفر</span>
|
||||
@@ -54,7 +43,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="tour-info-box">
|
||||
<span>قیمت</span>
|
||||
@@ -64,23 +52,18 @@
|
||||
</h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h4 class="fw-bold">
|
||||
توضیحات تور
|
||||
</h4>
|
||||
|
||||
|
||||
<p>
|
||||
{{ $tour->description }}
|
||||
</p>
|
||||
|
||||
|
||||
<div class="reserve-area mt-5">
|
||||
|
||||
@auth
|
||||
@@ -109,7 +92,6 @@
|
||||
رزرو تور
|
||||
|
||||
</button>
|
||||
|
||||
</form>
|
||||
|
||||
@else
|
||||
@@ -122,10 +104,8 @@
|
||||
</a>
|
||||
|
||||
@endauth
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="comment-box mb-5">
|
||||
@@ -164,7 +144,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-3">
|
||||
|
||||
<textarea name="comment"
|
||||
@@ -174,15 +153,11 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<button class="btn btn-primary rounded-pill px-5">
|
||||
ثبت نظر
|
||||
</button>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="comment-box">
|
||||
@@ -192,7 +167,6 @@
|
||||
نظرات کاربران
|
||||
</h3>
|
||||
|
||||
|
||||
@forelse($comments as $comment)
|
||||
|
||||
<div class="comment-item">
|
||||
@@ -203,7 +177,6 @@
|
||||
{{ $comment->user ? $comment->user->first_name . ' ' . $comment->user->last_name : 'کاربر مهمان' }}
|
||||
</strong>
|
||||
|
||||
|
||||
<small>
|
||||
{{ $comment->created_at->diffForHumans() }}
|
||||
</small>
|
||||
@@ -216,8 +189,6 @@
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@empty
|
||||
|
||||
<div class="alert alert-secondary rounded-4">
|
||||
@@ -226,12 +197,8 @@
|
||||
|
||||
@endforelse
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
@endsection
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user