git commit "complete auth pages layout without header hero and footer"

This commit is contained in:
2026-08-17 18:09:33 +03:30
parent 523c9d0396
commit ded7416302
14 changed files with 602 additions and 350 deletions
+2 -6
View File
@@ -6,12 +6,8 @@ use App\Models\City;
class CityController extends Controller
{
public function byProvince(int $province)
public function byProvince($province)
{
$cities = City::where('provinces_id', $province)
->orderBy('name')
->get();
return response()->json($cities);
return City::where('province_id', $province)->get();
}
}
+2 -2
View File
@@ -16,8 +16,8 @@ class TourController extends Controller
->latest()
->paginate(2);
return view('tours.index', compact('newestTour', 'tours'));
}
return view('tours.index', compact('tours'))
->with('withoutHero', true); }
public function show(Tour $tour)
+69
View File
@@ -0,0 +1,69 @@
.account-sidebar {
background: #fff;
border-radius: 20px;
padding: 25px;
box-shadow: 0 10px 35px rgba(0,0,0,.08);
}
.account-user {
text-align: center;
border-bottom: 1px solid #eee;
padding-bottom: 20px;
}
.avatar {
width: 80px;
height: 80px;
margin: auto;
border-radius: 50%;
background: #09203f;
color: white;
display: flex;
align-items: center;
justify-content: center;
}
.avatar i {
font-size: 35px;
}
.account-user h4 {
margin-top: 15px;
color: #09203f;
}
.account-user span {
color: #777;
font-size: 13px;
}
.account-sidebar ul {
list-style: none;
padding: 0;
margin-top: 20px;
}
.account-sidebar li {
margin-bottom: 10px;
}
.account-sidebar a {
display: flex;
align-items: center;
gap: 12px;
padding: 14px;
border-radius: 12px;
color: #555;
text-decoration: none;
transition: .3s;
}
.account-sidebar a:hover {
background: #09203f;
color: white;
transform: translateX(-5px);
}
.account-sidebar i {
width: 20px;
}
+100
View File
@@ -0,0 +1,100 @@
.account-content {
background: #fff;
padding: 35px;
border-radius: 25px;
box-shadow: 0 15px 40px rgba(0,0,0,.08);
}
.account-title {
color:#09203f;
font-weight:900;
margin-bottom:30px;
}
.comment-card {
background:#fafcff;
border:1px solid #edf1f7;
border-radius:20px;
padding:25px;
margin-bottom:20px;
transition:.3s;
}
.comment-card:hover {
transform:translateY(-5px);
box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.comment-header {
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:20px;
}
.comment-header h4 {
color:#09203f;
font-weight:800;
}
.comment-header span {
color:#999;
font-size:13px;
}
.comment-body {
background:white;
padding:18px;
border-radius:15px;
color:#555;
line-height:2;
}
.approved {
background:#198754;
color:white;
padding:7px 15px;
border-radius:20px;
font-size:12px;
}
.pending {
background:#ffc107;
color:#333;
padding:7px 15px;
border-radius:20px;
font-size:12px;
}
+110
View File
@@ -0,0 +1,110 @@
.account-content{
background:#fff;
border-radius:25px;
padding:30px;
box-shadow:0 15px 40px rgba(0,0,0,.08);
}
.account-header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:30px;
}
.account-title{
color:#09203f;
font-size:26px;
font-weight:700;
}
.account-header p{
color:#777;
margin-top:8px;
}
.profile-badge{
width:60px;
height:60px;
border-radius:18px;
background:#09203f;
color:white;
display:flex;
align-items:center;
justify-content:center;
font-size:25px;
}
.profile-box{
background:#fafafa;
border-radius:20px;
padding:25px;
margin-bottom:25px;
}
.profile-box-title{
font-size:18px;
font-weight:bold;
color:#09203f;
margin-bottom:20px;
}
.profile-box-title i{
margin-left:8px;
}
.form-control{
border-radius:12px;
height:45px;
border:1px solid #ddd;
}
.form-control:focus{
border-color:#09203f;
box-shadow:0 0 0 3px rgba(9,32,63,.1);
}
.btn-save-profile{
background:#09203f;
color:white;
border:none;
border-radius:15px;
padding:14px 35px;
font-size:16px;
transition:.3s;
}
.btn-save-profile:hover{
transform:translateY(-3px);
background:#123b70;
}
+131
View File
@@ -0,0 +1,131 @@
.account-content{
background:#fff;
padding:30px;
border-radius:20px;
box-shadow:0 10px 35px rgba(0,0,0,.08);
}
.account-header{
margin-bottom:30px;
}
.account-title{
color:#09203f;
font-size:26px;
font-weight:700;
}
.account-subtitle{
color:#777;
}
.profile-box{
background:#fff;
border-radius:18px;
margin-bottom:25px;
border:1px solid #eee;
overflow:hidden;
}
.profile-box-header{
background:#f8fafc;
padding:18px 25px;
border-bottom:1px solid #eee;
}
.profile-box-header h3{
margin:0;
color:#09203f;
font-size:18px;
}
.profile-box-body{
padding:25px;
}
.profile-box .form-control{
height:48px;
border-radius:12px;
border:1px solid #ddd;
}
.profile-box label{
color:#444;
font-weight:600;
margin-bottom:8px;
}
.profile-box .form-control:focus{
border-color:#09203f;
box-shadow:0 0 0 .2rem rgba(9,32,63,.1);
}
.save-profile-btn{
background:#09203f;
color:white;
border:none;
padding:14px 40px;
border-radius:14px;
font-size:16px;
transition:.3s;
}
.save-profile-btn:hover{
transform:translateY(-3px);
background:#123b6d;
}
-1
View File
@@ -15,7 +15,6 @@ $(document).ready(function () {
$.ajax({
url: '/users/cities/' + provinceId,
type: 'GET',
success:function (cities) {
+63 -2
View File
@@ -1,3 +1,64 @@
<div>
<!-- Waste no more time arguing what a good man should be, be one. - Marcus Aurelius -->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="{{ asset('assets/css/account-sidebar.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/profile.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/account.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/profile1.css') }}">
</head>
<body>
<div class="account-sidebar">
<div class="account-user">
<div class="avatar">
<i class="fa fa-user"></i>
</div>
<h4>
{{Auth::user()->first_name}}
{{Auth::user()->last_name}}
</h4>
<span>
{{Auth::user()->email}}
</span>
</div>
<ul>
<li>
<a href="{{route('users.profile.edit')}}">
<i class="fa fa-user"></i>
پروفایل من
</a>
</li>
<li>
<a href="{{route('users.favorite.index')}}">
<i class="fa fa-heart"></i>
علاقه‌مندی‌ها
</a>
</li>
<li>
<a href="{{route('users.comments.index')}}">
<i class="fa fa-comments"></i>
نظرات من
</a>
</li>
</ul>
</div>
</body>
</html>
@@ -3,197 +3,126 @@
@section('content')
<div class="theme-page-section theme-page-section-lg">
<div class="container">
<div class="row">
{{-- Sidebar --}}
<div class="col-md-3">
<div class="theme-account-sidebar">
<div class="theme-account-sidebar-header">
<div class="theme-account-sidebar-user">
<div class="theme-account-sidebar-user-icon">
<i class="fa fa-user-circle-o"></i>
</div>
<div class="theme-account-sidebar-user-name">
{{getUserFullName()}}
</div>
<div class="theme-account-sidebar-user-email">
{{ auth()->user()->email }}
</div>
</div>
</div>
<ul class="theme-account-sidebar-menu">
<li>
<a href="{{ route('users.profile.edit') }}">
<i class="fa fa-user"></i>
پروفایل من
</a>
</li>
<li>
<a href="{{ route('users.favorite.index') }}">
<i class="fa fa-heart"></i>
علاقه‌مندی‌ها
</a>
</li>
<li class="active">
<a href="{{ route('users.comments.index') }}">
<i class="fa fa-comments"></i>
نظرات من
</a>
</li>
<li>
<form
action="{{ route('auth.logout.index') }}"
method="POST"
>
@csrf
<button type="submit">
<i class="fa fa-sign-out"></i>
خروج
</button>
</form>
</li>
</ul>
</div>
@include('account.layout.app')
</div>
{{-- Content --}}
<div class="col-md-9">
<div class="theme-account">
<div class="theme-account-header">
<div class="account-content">
<h1 class="theme-account-title">
نظرات من
</h1>
<p class="theme-account-subtitle">
فهرست نظراتی که ثبت کرده‌اید
</p>
<h2 class="account-title">
نظرات من 💬
</h2>
</div>
@if($comments->count())
<div class="theme-account-box">
<div class="comments-list">
@foreach($comments as $comment)
<div class="theme-account-box-row">
<div class="row">
<div class="comment-card">
<div class="col-md-8">
@if($comment->tour)
<h4>
{{ $comment->tour->title }}
</h4>
@endif
<div class="comment-header">
<p>
{{ $comment->body }}
</p>
<div>
<h4>
{{ $comment->tour->title ?? 'مورد حذف شده' }}
</h4>
<span>
{{ $comment->created_at->format('Y/m/d') }}
</span>
</div>
<div class="col-md-4 text-left">
@if(isset($comment->status))
<div class="comment-status">
@if($comment->status == 1)
<span class="label label-success">
تأیید شده
</span>
@elseif($comment->status == 0)
<span class="label label-warning">
در انتظار تأیید
</span>
@else
<span class="label label-danger">
رد شده
</span>
@endif
@if($comment->status == 1)
<span class="approved">
تایید شده
</span>
@else
<span class="pending">
در انتظار تایید
</span>
@endif
<div class="text-muted">
{{ $comment->created_at?->format('Y/m/d') }}
</div>
</div>
</div>
<div class="comment-body">
{{ $comment->body }}
</div>
</div>
@if(!$loop->last)
<hr>
@endif
@endforeach
</div>
<div class="text-center">
{{ $comments->links() }}
</div>
@else
<div class="theme-account-box text-center">
<div class="theme-account-box-icon">
<i class="fa fa-comments-o"></i>
</div>
<div class="empty-favorite">
<h3>
هنوز نظری ثبت نکرده‌اید
</h3>
<i class="fa fa-comments"></i>
<p>
نظرات شما درباره تورها در این قسمت نمایش داده می‌شود.
هنوز نظری ثبت نکرده‌اید.
</p>
<a
href="{{ route('index') }}"
class="btn btn-primary"
>
مشاهده تورها
</a>
</div>
@endif
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -3,166 +3,128 @@
@section('content')
<div class="theme-page-section theme-page-section-lg">
<div class="container">
<div class="row">
{{-- Sidebar --}}
<div class="col-md-3">
<div class="theme-account-sidebar">
<div class="theme-account-sidebar-header">
<div class="theme-account-sidebar-user">
<div class="theme-account-sidebar-user-icon">
<i class="fa fa-user-circle-o"></i>
</div>
@include('account.layout.app')
<div class="theme-account-sidebar-user-name">
{{getUserFullName()}}
</div>
<div class="theme-account-sidebar-user-email">
{{ auth()->user()->email }}
</div>
</div>
</div>
<ul class="theme-account-sidebar-menu">
<li>
<a href="{{ route('users.profile.edit') }}">
<i class="fa fa-user"></i>
پروفایل من
</a>
</li>
<li class="active">
<a href="{{ route('users.favorite.index') }}">
<i class="fa fa-heart"></i>
علاقه‌مندی‌ها
</a>
</li>
<li>
<form
action="{{ route('auth.logout.index') }}"
method="POST"
>
@csrf
<button type="submit">
<i class="fa fa-sign-out"></i>
خروج
</button>
</form>
</li>
</ul>
</div>
</div>
{{-- Content --}}
<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>
<div class="account-content">
{{-- Success Message --}}
@if(session('success'))
<div class="alert alert-success">
{{ session('success') }}
</div>
@endif
<h2 class="account-title">
علاقه‌مندی‌های من ❤️
</h2>
{{-- Favorites --}}
@if($favorites->count())
<div class="row" data-gutter="20">
<div class="favorite-list">
@foreach($favorites as $favorite)
@if($favorite->favoritable)
@if($favorite->favoritable_type == 'App\Models\Tour')
<div class="favorite-card">
<div class="card mb-3 p-3">
<div class="favorite-info">
@if($favorite->favoritable_type == 'App\Models\Tour')
<h3>
{{ $favorite->favoritable->title }}
</h3>
{{ $favorite->favoritable?->title ?? 'مورد حذف شده' }} </h3>
<img width="200"
src="{{ asset($favorite->favoritable->image) }}">
</div>
<p>
تور
</p>
@elseif($favorite->favoritable_type == 'App\Models\Flight')
@elseif($favorite->favoritable_type == 'App\Models\Flight')
<div class="card mb-3 p-3">
<h3>
{{ $favorite->favoritable->airline }}
{{ $favorite->favoritable->name }}
</h3>
<img width="200"
src="{{ asset($favorite->favoritable->image) }}">
<p>
پرواز
</p>
</div>
@endif
@endif
</div>
<form action="{{route('users.favorite.destroy',$favorite)}}" method="POST">
@csrf
@method('DELETE')
<button class="remove-favorite">
<i class="fa fa-trash"></i>
حذف
</button>
</form>
</div>
@endif
@endforeach
</div>
@else
<div class="theme-account-box">
<div class="empty-favorite">
<div class="theme-account-box-icon">
<i class="fa fa-heart-o"></i>
</div>
<h3>
لیست علاقه‌مندی‌های شما خالی است
</h3>
<i class="fa fa-heart"></i>
<p>
هنوز هیچ توری را به علاقه‌مندی‌های خود اضافه نکرده‌اید.
هنوز چیزی به علاقه‌مندی‌ها اضافه نکرده‌اید.
</p>
<a
href="{{ route('index') }}"
class="btn btn-primary"
>
مشاهده تورها
</a>
</div>
@endif
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -10,75 +10,11 @@
{{-- Sidebar --}}
<div class="col-md-3">
<div class="theme-account-sidebar">
<div class="col-md-3">
<div class="theme-account-sidebar-header">
<div class="theme-account-sidebar-user">
<div class="theme-account-sidebar-user-icon">
@if($user->profile_image)
<img
src="{{ asset('uploads/users/' . $user->profile_image) }}"
alt="{{ $user->first_name }}"
style="width:70px;height:70px;border-radius:50%;object-fit:cover;"
>
@else
<i class="fa fa-user-circle-o"></i>
@endif
</div>
<div class="theme-account-sidebar-user-name">
{{getUserFullName()}}
</div>
<div class="theme-account-sidebar-user-email">
{{ $user->email }}
</div>
</div>
</div>
<ul class="theme-account-sidebar-menu">
<li class="active">
<a href="{{ route('users.profile.edit') }}">
<i class="fa fa-user"></i>
ویرایش پروفایل
</a>
</li>
<li>
<a href="{{ route('users.favorite.index') }}">
<i class="fa fa-heart"></i>
علاقه‌مندی‌ها
</a>
</li>
<li>
<a href="{{ route('users.comments.index') }}">
<i class="fa fa-comments"></i>
نظرات من
</a>
</li>
<li>
<form
action="{{ route('auth.logout.index') }}"
method="POST"
>
@csrf
<button type="submit">
<i class="fa fa-sign-out"></i>
خروج
</button>
</form>
</li>
</ul>
@include('account.layout.app')
</div>
</div>
+1 -7
View File
@@ -254,13 +254,7 @@
</a>
</li>
<li>
<a href="#">
هتل‌ها
</a>
</li>
<li>
<li>
<a href="#">
درباره ما
</a>
+3 -38
View File
@@ -14,7 +14,7 @@
</h1>
<p>
مبدا، مقصد و تاریخ سفر خود را انتخاب کنید.
مبدا، مقصد سفر خود را انتخاب کنید.
</p>
</div>
@@ -67,7 +67,7 @@
<select name="origin">
<option value="">مبدا</option>
@foreach($flights as $flight)
@foreach($flights ?? [] as $flight)
<option value="{{ $flight->origin }}">
{{ $flight->origin }}
</option>
@@ -79,7 +79,7 @@
<select name="destination">
<option value="">مقصد</option>
@foreach($flights as $flight)
@foreach($flights ?? [] as $flight)
<option value="{{ $flight->destination }}">
{{ $flight->destination }}
</option>
@@ -323,38 +323,3 @@
}
</style>
<script>
$('#origin_province').on('change', function(){
let provinceId = $(this).val();
$.ajax({
url: '/users/cities/' + provinceId,
type:'GET',
success:function(data){
$('#origin_city').html('');
$.each(data,function(key,value){
$('#origin_city').append(
`<option value="${value.id}">
${value.name}
</option>`
);
});
}
});
});
</script>
+1 -1
View File
@@ -6,7 +6,7 @@ use App\Http\Controllers\DashboardController;
use App\Http\Controllers\FavoriteController;
use App\Http\Controllers\FlightController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\TourController;
use Illuminate\Support\Facades\Route;