From 6302570d75e62b146b1e1dd6ba15acfa107d105b Mon Sep 17 00:00:00 2001 From: hatame Date: Sun, 16 Aug 2026 14:51:49 +0330 Subject: [PATCH] git add . git commit "Implement authentication flow and initialize home page hero section" --- app/Http/Controllers/CityController.php | 17 + app/Http/Controllers/CommentController.php | 21 + app/Http/Controllers/DashboardController.php | 2 +- app/Http/Controllers/FavoriteController.php | 40 +- app/Http/Controllers/ProfileController.php | 12 +- app/Http/Requests/ProfileUpdateRequest.php | 3 +- app/helpers/helpers.php | 11 + composer.json | 5 +- resources/views/account/layout/app.blade.php | 3 + .../account/users/comments/index.blade.php | 199 +++++ .../{ => account}/users/dashboard.blade.php | 8 +- .../account/users/favorite/index.blade.php | 202 +++++ .../account/users/profile/edit.blade.php | 761 ++++++++++++++++++ resources/views/home/index.blade.php | 1 + resources/views/index.blade.php | 44 - resources/views/layouts/header.blade.php | 4 +- .../views/users/favorite/index.blade.php | 3 - resources/views/users/profile/edit.blade.php | 231 ------ routes/web.php | 12 +- 19 files changed, 1276 insertions(+), 303 deletions(-) create mode 100644 app/Http/Controllers/CityController.php create mode 100644 app/Http/Controllers/CommentController.php create mode 100644 app/helpers/helpers.php create mode 100644 resources/views/account/layout/app.blade.php create mode 100644 resources/views/account/users/comments/index.blade.php rename resources/views/{ => account}/users/dashboard.blade.php (91%) create mode 100644 resources/views/account/users/favorite/index.blade.php create mode 100644 resources/views/account/users/profile/edit.blade.php create mode 100644 resources/views/home/index.blade.php delete mode 100644 resources/views/index.blade.php delete mode 100644 resources/views/users/favorite/index.blade.php delete mode 100644 resources/views/users/profile/edit.blade.php diff --git a/app/Http/Controllers/CityController.php b/app/Http/Controllers/CityController.php new file mode 100644 index 0000000..d896f3c --- /dev/null +++ b/app/Http/Controllers/CityController.php @@ -0,0 +1,17 @@ +orderBy('name') + ->get(); + } +} diff --git a/app/Http/Controllers/CommentController.php b/app/Http/Controllers/CommentController.php new file mode 100644 index 0000000..8919584 --- /dev/null +++ b/app/Http/Controllers/CommentController.php @@ -0,0 +1,21 @@ +where('user_id',auth()->id()) + ->with('tour') + ->latest() + ->paginate(4); + + return view('account.users.comments.index',compact('comments')); + + } +} diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index cefe72d..2c0daf5 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -12,6 +12,6 @@ class DashboardController extends Controller { $user=Auth::User(); - return view('users.dashboard',compact('user')); + return view('account.users.dashboard',compact('user')); } } diff --git a/app/Http/Controllers/FavoriteController.php b/app/Http/Controllers/FavoriteController.php index 77802fd..57dfc14 100644 --- a/app/Http/Controllers/FavoriteController.php +++ b/app/Http/Controllers/FavoriteController.php @@ -2,21 +2,49 @@ namespace App\Http\Controllers; +use App\Models\Favorite; use Illuminate\Http\Request; class FavoriteController extends Controller { - // - public function create() + public function index() { + $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) { - } - public function destroy() - { + $favorite->delete(); + + return back()->with( + 'success', + 'تور از علاقه‌مندی‌ها حذف شد.' + ); } } diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index d448428..fcc2500 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Http\Requests\ProfileUpdateRequest; +use App\Models\Province; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; @@ -14,7 +15,9 @@ class ProfileController extends Controller { $withoutHero=true; $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) @@ -22,9 +25,9 @@ class ProfileController extends Controller $user=$request->user(); $inputs=$request->validated(); - if (!empty($inputs['new_password'])){ - $user->password=Hash::make($inputs['new_password']); - } + if ($request->filled('new_password')){ + $inputs['password']=Hash::make($request->new_password); + } unset( $inputs['current_password'], @@ -46,6 +49,7 @@ class ProfileController extends Controller $inputs['profile_image'] = $imageName; } + $user->update($inputs); return back()->with([ diff --git a/app/Http/Requests/ProfileUpdateRequest.php b/app/Http/Requests/ProfileUpdateRequest.php index 9fffb51..7320e12 100644 --- a/app/Http/Requests/ProfileUpdateRequest.php +++ b/app/Http/Requests/ProfileUpdateRequest.php @@ -42,8 +42,7 @@ class ProfileUpdateRequest extends FormRequest 'national_code' => [ 'required', - 'ir_national_id', - Rule::unique('users', 'national_code') + Rule::unique('users', 'national_code') ->ignore($user->id), ], diff --git a/app/helpers/helpers.php b/app/helpers/helpers.php new file mode 100644 index 0000000..e0c6802 --- /dev/null +++ b/app/helpers/helpers.php @@ -0,0 +1,11 @@ +user(); + } + return $user->first_name . ' ' . $user->last_name; + } +} diff --git a/composer.json b/composer.json index ca94a6e..91c2788 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,10 @@ "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" - } + }, + "files": [ + "app/helpers/helpers.php" + ] }, "autoload-dev": { "psr-4": { diff --git a/resources/views/account/layout/app.blade.php b/resources/views/account/layout/app.blade.php new file mode 100644 index 0000000..3b64911 --- /dev/null +++ b/resources/views/account/layout/app.blade.php @@ -0,0 +1,3 @@ +
+ +
diff --git a/resources/views/account/users/comments/index.blade.php b/resources/views/account/users/comments/index.blade.php new file mode 100644 index 0000000..b2b128f --- /dev/null +++ b/resources/views/account/users/comments/index.blade.php @@ -0,0 +1,199 @@ +@extends('layouts.app') + +@section('content') + +
+
+ +
+ + {{-- Sidebar --}} +
+ + + +
+ + + {{-- Content --}} +
+ + + +
+ +
+ +
+
+ +@endsection diff --git a/resources/views/users/dashboard.blade.php b/resources/views/account/users/dashboard.blade.php similarity index 91% rename from resources/views/users/dashboard.blade.php rename to resources/views/account/users/dashboard.blade.php index 8970743..576028b 100644 --- a/resources/views/users/dashboard.blade.php +++ b/resources/views/account/users/dashboard.blade.php @@ -31,13 +31,7 @@
  • - - تغییر رمز عبور - -
  • - -
  • - + علاقه‌مندی‌ها
  • diff --git a/resources/views/account/users/favorite/index.blade.php b/resources/views/account/users/favorite/index.blade.php new file mode 100644 index 0000000..f7907f4 --- /dev/null +++ b/resources/views/account/users/favorite/index.blade.php @@ -0,0 +1,202 @@ +@extends('layouts.app') + +@section('content') + +
    +
    + +
    + + {{-- Sidebar --}} +
    + +
    + + + {{-- Content --}} +
    + + + +
    + +
    + +
    +
    + +@endsection diff --git a/resources/views/account/users/profile/edit.blade.php b/resources/views/account/users/profile/edit.blade.php new file mode 100644 index 0000000..3eae939 --- /dev/null +++ b/resources/views/account/users/profile/edit.blade.php @@ -0,0 +1,761 @@ +@extends('layouts.app') + +@section('content') + +
    +
    + +
    + + {{-- Sidebar --}} +
    + + + +
    + + + {{-- Profile --}} +
    + + + +
    + +
    + +
    +
    + +@endsection + + +@push('scripts') + +@endpush diff --git a/resources/views/home/index.blade.php b/resources/views/home/index.blade.php new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/resources/views/home/index.blade.php @@ -0,0 +1 @@ + diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php deleted file mode 100644 index cd284c6..0000000 --- a/resources/views/index.blade.php +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - قالب رزرواسیون - - - - - - - - - - -@include('layouts.header') -@include('layouts.hero') -@yield('content') - @include('layouts.footer') - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/views/layouts/header.blade.php b/resources/views/layouts/header.blade.php index 585d65a..13025ea 100644 --- a/resources/views/layouts/header.blade.php +++ b/resources/views/layouts/header.blade.php @@ -1055,13 +1055,13 @@
  • - + علاقه مندی ها
  • - + نظرات قبلی
  • diff --git a/resources/views/users/favorite/index.blade.php b/resources/views/users/favorite/index.blade.php deleted file mode 100644 index c510322..0000000 --- a/resources/views/users/favorite/index.blade.php +++ /dev/null @@ -1,3 +0,0 @@ -
    - -
    diff --git a/resources/views/users/profile/edit.blade.php b/resources/views/users/profile/edit.blade.php deleted file mode 100644 index c9dad40..0000000 --- a/resources/views/users/profile/edit.blade.php +++ /dev/null @@ -1,231 +0,0 @@ -@extends('layouts.app') - -@section('content') - -
    - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - -@endsection diff --git a/routes/web.php b/routes/web.php index 324af6a..a9a4faf 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,7 @@ name('users.')->middleware('auth:web')->group(function ( Route::get('/profile/edit',[ProfileController::class,'edite'])->name('profile.edit'); Route::put('/profile/update',[ProfileController::class,'update'])->name('profile.update'); - Route::get('/favorite',[FavoriteController::class,'create'])->name('favorite.create'); - Route::post('favorite',[FavoriteController::class,'store'])->name('favorite.store'); + Route::get('/favorite',[FavoriteController::class,'index'])->name('favorite.index'); + + Route::post('favorite',[FavoriteController::class,'store'])->name('favorite.store'); 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'); + });