git add .
git commit "Implement authentication flow and initialize home page hero section"
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\City;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class CityController extends Controller
|
||||||
|
{
|
||||||
|
//
|
||||||
|
public function getCities($province)
|
||||||
|
{
|
||||||
|
return City::where('province_id', $province)
|
||||||
|
->orderBy('name')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\Comment;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class CommentController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$comments=Comment::query()
|
||||||
|
->where('user_id',auth()->id())
|
||||||
|
->with('tour')
|
||||||
|
->latest()
|
||||||
|
->paginate(4);
|
||||||
|
|
||||||
|
return view('account.users.comments.index',compact('comments'));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,6 +12,6 @@ class DashboardController extends Controller
|
|||||||
{
|
{
|
||||||
$user=Auth::User();
|
$user=Auth::User();
|
||||||
|
|
||||||
return view('users.dashboard',compact('user'));
|
return view('account.users.dashboard',compact('user'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,21 +2,49 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\Favorite;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class FavoriteController extends Controller
|
class FavoriteController extends Controller
|
||||||
{
|
{
|
||||||
//
|
public function index()
|
||||||
public function create()
|
|
||||||
{
|
{
|
||||||
|
$favorites=Favorite::with('tour')
|
||||||
|
->where('user_id',auth()->id())
|
||||||
|
->latest()
|
||||||
|
->get();
|
||||||
|
return view('account.users.favorite.index',compact('favorites'));
|
||||||
|
|
||||||
}
|
}
|
||||||
public function store()
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'tour_id'=>[
|
||||||
|
'required',
|
||||||
|
'exists:tours,id'
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
Favorite::firstOrCreate([
|
||||||
|
'user_id' => auth()->id(),
|
||||||
|
'tour_id' => $request->tour_id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return back()->with(
|
||||||
|
'success',
|
||||||
|
'تور به علاقهمندیها اضافه شد.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function destroy(Favorite $favorite)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
$favorite->delete();
|
||||||
public function destroy()
|
|
||||||
{
|
return back()->with(
|
||||||
|
'success',
|
||||||
|
'تور از علاقهمندیها حذف شد.'
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Http\Requests\ProfileUpdateRequest;
|
use App\Http\Requests\ProfileUpdateRequest;
|
||||||
|
use App\Models\Province;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
@@ -14,7 +15,9 @@ class ProfileController extends Controller
|
|||||||
{
|
{
|
||||||
$withoutHero=true;
|
$withoutHero=true;
|
||||||
$user=Auth::User();
|
$user=Auth::User();
|
||||||
return view('users.profile.edit',compact('user','withoutHero'));
|
$provinces=Province::orderBy('name')->get();
|
||||||
|
|
||||||
|
return view('account.users.profile.edit',compact('user','withoutHero','provinces'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(ProfileUpdateRequest $request)
|
public function update(ProfileUpdateRequest $request)
|
||||||
@@ -22,9 +25,9 @@ class ProfileController extends Controller
|
|||||||
$user=$request->user();
|
$user=$request->user();
|
||||||
$inputs=$request->validated();
|
$inputs=$request->validated();
|
||||||
|
|
||||||
if (!empty($inputs['new_password'])){
|
if ($request->filled('new_password')){
|
||||||
$user->password=Hash::make($inputs['new_password']);
|
$inputs['password']=Hash::make($request->new_password);
|
||||||
}
|
}
|
||||||
|
|
||||||
unset(
|
unset(
|
||||||
$inputs['current_password'],
|
$inputs['current_password'],
|
||||||
@@ -46,6 +49,7 @@ class ProfileController extends Controller
|
|||||||
|
|
||||||
$inputs['profile_image'] = $imageName;
|
$inputs['profile_image'] = $imageName;
|
||||||
}
|
}
|
||||||
|
|
||||||
$user->update($inputs);
|
$user->update($inputs);
|
||||||
|
|
||||||
return back()->with([
|
return back()->with([
|
||||||
|
|||||||
@@ -42,8 +42,7 @@ class ProfileUpdateRequest extends FormRequest
|
|||||||
|
|
||||||
'national_code' => [
|
'national_code' => [
|
||||||
'required',
|
'required',
|
||||||
'ir_national_id',
|
Rule::unique('users', 'national_code')
|
||||||
Rule::unique('users', 'national_code')
|
|
||||||
->ignore($user->id),
|
->ignore($user->id),
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (!function_exists('getUserFullName')) {
|
||||||
|
function getUserFullName(?\App\Models\User $user = null): string
|
||||||
|
{
|
||||||
|
if (!$user) {
|
||||||
|
$user = auth()->user();
|
||||||
|
}
|
||||||
|
return $user->first_name . ' ' . $user->last_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-1
@@ -26,7 +26,10 @@
|
|||||||
"App\\": "app/",
|
"App\\": "app/",
|
||||||
"Database\\Factories\\": "database/factories/",
|
"Database\\Factories\\": "database/factories/",
|
||||||
"Database\\Seeders\\": "database/seeders/"
|
"Database\\Seeders\\": "database/seeders/"
|
||||||
}
|
},
|
||||||
|
"files": [
|
||||||
|
"app/helpers/helpers.php"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<div>
|
||||||
|
<!-- Waste no more time arguing what a good man should be, be one. - Marcus Aurelius -->
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,199 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@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>
|
||||||
|
|
||||||
|
</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>
|
||||||
|
|
||||||
|
|
||||||
|
@if($comments->count())
|
||||||
|
|
||||||
|
<div class="theme-account-box">
|
||||||
|
|
||||||
|
@foreach($comments as $comment)
|
||||||
|
|
||||||
|
<div class="theme-account-box-row">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-8">
|
||||||
|
|
||||||
|
@if($comment->tour)
|
||||||
|
<h4>
|
||||||
|
{{ $comment->tour->title }}
|
||||||
|
</h4>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{{ $comment->body }}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4 text-left">
|
||||||
|
|
||||||
|
@if(isset($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
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<div class="text-muted">
|
||||||
|
{{ $comment->created_at?->format('Y/m/d') }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</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>
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
هنوز نظری ثبت نکردهاید
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
نظرات شما درباره تورها در این قسمت نمایش داده میشود.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="{{ route('index') }}"
|
||||||
|
class="btn btn-primary"
|
||||||
|
>
|
||||||
|
مشاهده تورها
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
+1
-7
@@ -31,13 +31,7 @@
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#">
|
<a href="{{route('users.favorite.index')}}">
|
||||||
تغییر رمز عبور
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
علاقهمندیها
|
علاقهمندیها
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -0,0 +1,202 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@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 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>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Success Message --}}
|
||||||
|
@if(session('success'))
|
||||||
|
<div class="alert alert-success">
|
||||||
|
{{ session('success') }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Favorites --}}
|
||||||
|
@if($favorites->count())
|
||||||
|
|
||||||
|
<div class="row" data-gutter="20">
|
||||||
|
|
||||||
|
@foreach($favorites as $favorite)
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="theme-search-results-item">
|
||||||
|
|
||||||
|
<div class="theme-search-results-item-img-wrap">
|
||||||
|
|
||||||
|
@if($favorite->tour->image)
|
||||||
|
<img
|
||||||
|
class="theme-search-results-item-img"
|
||||||
|
src="{{ asset('uploads/tours/' . $favorite->tour->image) }}"
|
||||||
|
alt="{{ $favorite->tour->title }}"
|
||||||
|
>
|
||||||
|
@else
|
||||||
|
<img
|
||||||
|
class="theme-search-results-item-img"
|
||||||
|
src="{{ asset('img/placeholder.jpg') }}"
|
||||||
|
alt="{{ $favorite->tour->title }}"
|
||||||
|
>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="theme-search-results-item-title">
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
{{ $favorite->tour->title }}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="theme-search-results-item-actions">
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="#"
|
||||||
|
class="btn btn-primary"
|
||||||
|
>
|
||||||
|
مشاهده تور
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<form
|
||||||
|
action="{{ route('users.favorite.destroy', $favorite) }}"
|
||||||
|
method="POST"
|
||||||
|
style="display:inline-block;"
|
||||||
|
>
|
||||||
|
@csrf
|
||||||
|
@method('DELETE')
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
class="btn btn-danger"
|
||||||
|
>
|
||||||
|
<i class="fa fa-heart-o"></i>
|
||||||
|
حذف
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endforeach
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@else
|
||||||
|
|
||||||
|
<div class="theme-account-box">
|
||||||
|
|
||||||
|
<div class="theme-account-box-icon">
|
||||||
|
<i class="fa fa-heart-o"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
لیست علاقهمندیهای شما خالی است
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
هنوز هیچ توری را به علاقهمندیهای خود اضافه نکردهاید.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="{{ route('index') }}"
|
||||||
|
class="btn btn-primary"
|
||||||
|
>
|
||||||
|
مشاهده تورها
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
@@ -0,0 +1,761 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@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">
|
||||||
|
@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>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Profile --}}
|
||||||
|
<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'))
|
||||||
|
<div class="alert alert-success">
|
||||||
|
{{ session('success') }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
@if($errors->any())
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
لطفاً خطاهای فرم را بررسی کنید.
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
<form
|
||||||
|
action="{{ route('users.profile.update') }}"
|
||||||
|
method="POST"
|
||||||
|
enctype="multipart/form-data"
|
||||||
|
>
|
||||||
|
|
||||||
|
@csrf
|
||||||
|
@method('PUT')
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Personal Information --}}
|
||||||
|
<div class="theme-account-box">
|
||||||
|
|
||||||
|
<div class="theme-account-box-header">
|
||||||
|
<h3>
|
||||||
|
اطلاعات شخصی
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="theme-account-box-content">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="first_name">
|
||||||
|
نام
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="first_name"
|
||||||
|
name="first_name"
|
||||||
|
value="{{ old('first_name', $user->first_name) }}"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('first_name')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="last_name">
|
||||||
|
نام خانوادگی
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="last_name"
|
||||||
|
name="last_name"
|
||||||
|
value="{{ old('last_name', $user->last_name) }}"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('last_name')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="national_code">
|
||||||
|
کد ملی
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="national_code"
|
||||||
|
name="national_code"
|
||||||
|
value="{{ old('national_code', $user->national_code) }}"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('national_code')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="mobile">
|
||||||
|
موبایل
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="mobile"
|
||||||
|
name="mobile"
|
||||||
|
value="{{ old('mobile', $user->mobile) }}"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('mobile')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="email">
|
||||||
|
ایمیل
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="email"
|
||||||
|
id="email"
|
||||||
|
name="email"
|
||||||
|
value="{{ old('email', $user->email) }}"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('email')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="username">
|
||||||
|
نام کاربری
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="username"
|
||||||
|
name="username"
|
||||||
|
value="{{ old('username', $user->username) }}"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('username')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Gender & Marital Status --}}
|
||||||
|
<div class="theme-account-box">
|
||||||
|
|
||||||
|
<div class="theme-account-box-header">
|
||||||
|
<h3>
|
||||||
|
اطلاعات تکمیلی
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="theme-account-box-content">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="gender">
|
||||||
|
جنسیت
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<select
|
||||||
|
id="gender"
|
||||||
|
name="gender"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
<option value="">
|
||||||
|
انتخاب جنسیت
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<option
|
||||||
|
value="0"
|
||||||
|
@selected(old('gender', $user->gender) == 0)
|
||||||
|
>
|
||||||
|
مرد
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<option
|
||||||
|
value="1"
|
||||||
|
@selected(old('gender', $user->gender) == 1)
|
||||||
|
>
|
||||||
|
زن
|
||||||
|
</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
@error('gender')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="marital_status">
|
||||||
|
وضعیت تأهل
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<select
|
||||||
|
id="marital_status"
|
||||||
|
name="marital_status"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
<option value="">
|
||||||
|
انتخاب وضعیت تأهل
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<option
|
||||||
|
value="0"
|
||||||
|
@selected(old('marital_status', $user->marital_status) == 0)
|
||||||
|
>
|
||||||
|
مجرد
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<option
|
||||||
|
value="1"
|
||||||
|
@selected(old('marital_status', $user->marital_status) == 1)
|
||||||
|
>
|
||||||
|
متأهل
|
||||||
|
</option>
|
||||||
|
|
||||||
|
<option
|
||||||
|
value="2"
|
||||||
|
@selected(old('marital_status', $user->marital_status) == 2)
|
||||||
|
>
|
||||||
|
متارکه
|
||||||
|
</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
@error('marital_status')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="spouse_name">
|
||||||
|
نام و نام خانوادگی همسر
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="spouse_name"
|
||||||
|
name="spouse_name"
|
||||||
|
value="{{ old('spouse_name', $user->spouse_name) }}"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('spouse_name')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Location --}}
|
||||||
|
<div class="theme-account-box">
|
||||||
|
|
||||||
|
<div class="theme-account-box-header">
|
||||||
|
<h3>
|
||||||
|
محل سکونت
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="theme-account-box-content">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="province_id">
|
||||||
|
استان
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<select
|
||||||
|
id="province_id"
|
||||||
|
name="province_id"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
<option value="">انتخاب استان</option>
|
||||||
|
|
||||||
|
@foreach($provinces as $province)
|
||||||
|
<option
|
||||||
|
value="{{ $province->id }}"
|
||||||
|
@selected(old('province_id', $user->province_id) == $province->id)
|
||||||
|
>
|
||||||
|
{{ $province->name }}
|
||||||
|
</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
@error('province_id')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="city_id">
|
||||||
|
شهر
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<select
|
||||||
|
id="city_id"
|
||||||
|
name="city_id"
|
||||||
|
class="form-control"
|
||||||
|
disabled
|
||||||
|
>
|
||||||
|
<option value="">ابتدا استان را انتخاب کنید</option>
|
||||||
|
</select>
|
||||||
|
@error('city_id')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Profile Image --}}
|
||||||
|
<div class="theme-account-box">
|
||||||
|
|
||||||
|
<div class="theme-account-box-header">
|
||||||
|
<h3>
|
||||||
|
تصویر پروفایل
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="theme-account-box-content">
|
||||||
|
|
||||||
|
@if($user->profile_image)
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
|
||||||
|
<img
|
||||||
|
src="{{ asset('uploads/users/' . $user->profile_image) }}"
|
||||||
|
alt="تصویر پروفایل"
|
||||||
|
style="width:100px;height:100px;object-fit:cover;border-radius:50%;"
|
||||||
|
>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="profile_image">
|
||||||
|
انتخاب تصویر جدید
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
id="profile_image"
|
||||||
|
name="profile_image"
|
||||||
|
class="form-control"
|
||||||
|
accept=".jpg,.jpeg,.png,.webp"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('profile_image')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Password --}}
|
||||||
|
<div class="theme-account-box">
|
||||||
|
|
||||||
|
<div class="theme-account-box-header">
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
تغییر رمز عبور
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
اگر قصد تغییر رمز عبور ندارید، این قسمت را خالی بگذارید.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="theme-account-box-content">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="current_password">
|
||||||
|
رمز عبور فعلی
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
id="current_password"
|
||||||
|
name="current_password"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('current_password')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="new_password">
|
||||||
|
رمز عبور جدید
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
id="new_password"
|
||||||
|
name="new_password"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
@error('new_password')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
|
||||||
|
<label for="new_password_confirmation">
|
||||||
|
تکرار رمز عبور جدید
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
id="new_password_confirmation"
|
||||||
|
name="new_password_confirmation"
|
||||||
|
class="form-control"
|
||||||
|
>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- Submit --}}
|
||||||
|
<div class="text-left">
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
class="btn btn-primary btn-lg"
|
||||||
|
>
|
||||||
|
ذخیره تغییرات
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
|
||||||
|
@push('scripts')
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
|
||||||
|
$('#province_id').on('change', function () {
|
||||||
|
|
||||||
|
let provinceId = $(this).val();
|
||||||
|
let citySelect = $('#city_id');
|
||||||
|
|
||||||
|
citySelect.empty();
|
||||||
|
|
||||||
|
if (!provinceId) {
|
||||||
|
citySelect
|
||||||
|
.prop('disabled', true)
|
||||||
|
.append('<option value="">ابتدا استان را انتخاب کنید</option>');
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
citySelect
|
||||||
|
.prop('disabled', true)
|
||||||
|
.append('<option value="">در حال دریافت شهرها...</option>');
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('users.cities.by.province', ':province') }}"
|
||||||
|
.replace(':province', provinceId),
|
||||||
|
|
||||||
|
type: 'GET',
|
||||||
|
|
||||||
|
success: function (cities) {
|
||||||
|
|
||||||
|
citySelect.empty();
|
||||||
|
|
||||||
|
citySelect.append(
|
||||||
|
'<option value="">انتخاب شهر</option>'
|
||||||
|
);
|
||||||
|
|
||||||
|
$.each(cities, function (index, city) {
|
||||||
|
|
||||||
|
citySelect.append(
|
||||||
|
$('<option>', {
|
||||||
|
value: city.id,
|
||||||
|
text: city.name
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
citySelect.prop('disabled', false);
|
||||||
|
},
|
||||||
|
|
||||||
|
error: function () {
|
||||||
|
|
||||||
|
citySelect.empty();
|
||||||
|
|
||||||
|
citySelect.append(
|
||||||
|
'<option value="">خطا در دریافت شهرها</option>'
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
<!DOCTYPE HTML>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<!-- index.html 07:26:20 -->
|
|
||||||
<head>
|
|
||||||
<title>قالب رزرواسیون</title>
|
|
||||||
<meta charset="UTF-8"/>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
||||||
<link rel="stylesheet" href="{{asset('assets/css/font-awesome.css')}}"/>
|
|
||||||
<link rel="stylesheet" href="{{asset('assets/css/lineicons.css')}}"/>
|
|
||||||
<link rel="stylesheet" href="{{asset('assets/css/weather-icons.css')}}"/>
|
|
||||||
<link rel="stylesheet" href="{{asset('assets/css/bootstrap.css')}}"/>
|
|
||||||
<link rel="stylesheet" href="{{asset('assets/css/styles.css')}}"/>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
@include('layouts.header')
|
|
||||||
@include('layouts.hero')
|
|
||||||
@yield('content')
|
|
||||||
@include('layouts.footer')
|
|
||||||
<script src="{{asset('assets/js/moment.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/bootstrap.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/owl-carousel.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/blur-area.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/icheck.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/gmap.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/magnific-popup.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/ion-range-slider.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/sticky-kit.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/smooth-scroll.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/fotorama.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/bs-datepicker.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/typeahead.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/quantity-selector.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/countdown.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/window-scroll-action.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/fitvid.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/youtube-bg.js')}}"></script>
|
|
||||||
<script src="{{asset('assets/js/custom.js')}}"></script>
|
|
||||||
<script async="" defer="" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYeBBmgAkyAN_QKjAVOiP_kWZ_eQdadeI&callback=initMap&libraries=places"></script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
<!-- index.html 07:28:39 -->
|
|
||||||
</html>
|
|
||||||
@@ -1055,13 +1055,13 @@
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#">
|
<a href="{{route('users.favorite.index')}}">
|
||||||
علاقه مندی ها
|
علاقه مندی ها
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#">
|
<a href="{{route('users.comments.index')}}">
|
||||||
نظرات قبلی
|
نظرات قبلی
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
<div>
|
|
||||||
<!-- Well begun is half done. - Aristotle -->
|
|
||||||
</div>
|
|
||||||
@@ -1,231 +0,0 @@
|
|||||||
@extends('layouts.app')
|
|
||||||
|
|
||||||
@section('content')
|
|
||||||
|
|
||||||
<div class="theme-page-section _pt-100">
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
|
|
||||||
<div class="theme-login theme-login-white">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="theme-login-header">
|
|
||||||
|
|
||||||
<h1 class="theme-login-title">
|
|
||||||
ویرایش پروفایل
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<p class="theme-login-subtitle">
|
|
||||||
اطلاعات حساب کاربری خود را ویرایش کنید
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="theme-login-box">
|
|
||||||
|
|
||||||
<div class="theme-login-box-inner">
|
|
||||||
|
|
||||||
|
|
||||||
<form
|
|
||||||
action="{{ route('users.profile.update') }}"
|
|
||||||
method="POST"
|
|
||||||
enctype="multipart/form-data"
|
|
||||||
class="theme-login-form"
|
|
||||||
>
|
|
||||||
|
|
||||||
@csrf
|
|
||||||
@method('PUT')
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
|
|
||||||
<label>
|
|
||||||
نام
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
name="first_name"
|
|
||||||
value="{{ old('first_name', $user->first_name) }}"
|
|
||||||
class="form-control"
|
|
||||||
>
|
|
||||||
|
|
||||||
@error('first_name')
|
|
||||||
<span class="text-danger">
|
|
||||||
{{ $message }}
|
|
||||||
</span>
|
|
||||||
@enderror
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
|
|
||||||
<label>
|
|
||||||
نام خانوادگی
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
name="last_name"
|
|
||||||
value="{{ old('last_name', $user->last_name) }}"
|
|
||||||
class="form-control"
|
|
||||||
>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
|
|
||||||
<label>
|
|
||||||
شماره موبایل
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
name="mobile"
|
|
||||||
value="{{ old('mobile', $user->mobile) }}"
|
|
||||||
class="form-control"
|
|
||||||
>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
|
|
||||||
<label>
|
|
||||||
ایمیل
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="email"
|
|
||||||
name="email"
|
|
||||||
value="{{ old('email', $user->email) }}"
|
|
||||||
class="form-control"
|
|
||||||
>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
|
|
||||||
<label
|
|
||||||
for="profile_image"
|
|
||||||
class="block text-sm/6 font-medium text-gray-500 dark:text-gray-300"
|
|
||||||
>
|
|
||||||
تصویر پروفایل
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<div class="mt-3">
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="file"
|
|
||||||
id="profile_image"
|
|
||||||
name="profile_image"
|
|
||||||
accept=".jpg,.jpeg,.png,.webp"
|
|
||||||
class="block w-full p-3 text-base outline-none text-gray-800 dark:text-gray-100 dark:bg-gray-900 bg-slate-100 border border-transparent rounded-md"
|
|
||||||
>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@error('profile_image')
|
|
||||||
<span class="text-red-500 text-sm">
|
|
||||||
{{ $message }}
|
|
||||||
</span>
|
|
||||||
@enderror
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
<h4>
|
|
||||||
تغییر رمز عبور
|
|
||||||
</h4>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
|
|
||||||
<label>
|
|
||||||
رمز عبور فعلی
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
name="current_password"
|
|
||||||
class="form-control"
|
|
||||||
>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
|
|
||||||
<label>
|
|
||||||
رمز عبور جدید
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
name="new_password"
|
|
||||||
class="form-control"
|
|
||||||
>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
|
|
||||||
<label>
|
|
||||||
تکرار رمز جدید
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
name="new_password_confirmation"
|
|
||||||
class="form-control"
|
|
||||||
>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button
|
|
||||||
type="submit"
|
|
||||||
class="submit-btn"
|
|
||||||
>
|
|
||||||
ذخیره تغییرات
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
</form>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@endsection
|
|
||||||
+10
-2
@@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use App\Http\Controllers\CityController;
|
||||||
|
use App\Http\Controllers\CommentController;
|
||||||
use App\Http\Controllers\DashboardController;
|
use App\Http\Controllers\DashboardController;
|
||||||
use App\Http\Controllers\FavoriteController;
|
use App\Http\Controllers\FavoriteController;
|
||||||
use App\Http\Controllers\HomeController;
|
use App\Http\Controllers\HomeController;
|
||||||
@@ -16,9 +18,15 @@ Route::prefix('users')->name('users.')->middleware('auth:web')->group(function (
|
|||||||
Route::get('/profile/edit',[ProfileController::class,'edite'])->name('profile.edit');
|
Route::get('/profile/edit',[ProfileController::class,'edite'])->name('profile.edit');
|
||||||
Route::put('/profile/update',[ProfileController::class,'update'])->name('profile.update');
|
Route::put('/profile/update',[ProfileController::class,'update'])->name('profile.update');
|
||||||
|
|
||||||
Route::get('/favorite',[FavoriteController::class,'create'])->name('favorite.create');
|
Route::get('/favorite',[FavoriteController::class,'index'])->name('favorite.index');
|
||||||
Route::post('favorite',[FavoriteController::class,'store'])->name('favorite.store');
|
|
||||||
|
Route::post('favorite',[FavoriteController::class,'store'])->name('favorite.store');
|
||||||
|
|
||||||
Route::delete('/favorite/{favorite}',[FavoriteController::class,'destroy'])->name('favorite.destroy');
|
Route::delete('/favorite/{favorite}',[FavoriteController::class,'destroy'])->name('favorite.destroy');
|
||||||
|
|
||||||
|
Route::get('/comments',[CommentController::class,'index'])->name('comments.index');
|
||||||
|
|
||||||
|
Route::get('/cities/{province}', [CityController::class, 'getCities'])
|
||||||
|
->name('cities.by.province');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user