fix:change wishlist
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Account;
|
|||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\Favorite;
|
use App\Models\Favorite;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class WishlistController extends Controller
|
class WishlistController extends Controller
|
||||||
@@ -23,4 +24,6 @@ class WishlistController extends Controller
|
|||||||
|
|
||||||
return view('account.wishlist', compact('favorites'));
|
return view('account.wishlist', compact('favorites'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,14 +23,14 @@
|
|||||||
@endif
|
@endif
|
||||||
|
|
||||||
<form action="{{ route('account.edit-profile.post') }}"
|
<form action="{{ route('account.edit-profile.post') }}"
|
||||||
method="POST">
|
method="POST"
|
||||||
|
enctype="multipart/form-data">
|
||||||
|
|
||||||
@csrf
|
@csrf
|
||||||
@method('PUT')
|
@method('PUT')
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
{{-- نام --}}
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>نام</label>
|
<label>نام</label>
|
||||||
@@ -50,9 +50,6 @@
|
|||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{-- نام خانوادگی --}}
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>نام خانوادگی</label>
|
<label>نام خانوادگی</label>
|
||||||
@@ -73,8 +70,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{-- ایمیل --}}
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>ایمیل</label>
|
<label>ایمیل</label>
|
||||||
@@ -95,8 +90,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{-- موبایل --}}
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>موبایل</label>
|
<label>موبایل</label>
|
||||||
@@ -117,44 +110,50 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{-- استان و شهر فعلاً همان قبلی --}}
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>استان</label>
|
<label>استان</label>
|
||||||
|
|
||||||
<input
|
<select
|
||||||
type="text"
|
name="province_id"
|
||||||
name="user_province"
|
id="province_id"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
value="{{ old('user_province', $user->user_province) }}"
|
|
||||||
placeholder="استان"
|
|
||||||
>
|
>
|
||||||
</div>
|
<option value="">استان خود را انتخاب کنید</option>
|
||||||
</div>
|
</select>
|
||||||
|
|
||||||
|
@error('province_id')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>شهر</label>
|
<label>شهر</label>
|
||||||
|
|
||||||
<input
|
<select
|
||||||
type="text"
|
name="city_id"
|
||||||
name="user_city"
|
id="city_id"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
value="{{ old('user_city', $user->user_city) }}"
|
|
||||||
placeholder="شهر"
|
|
||||||
>
|
>
|
||||||
|
<option value="">ابتدا استان را انتخاب کنید</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
@error('city_id')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{-- تغییر رمز --}}
|
|
||||||
<h4 class="user-profile-card-title mt-4">
|
<h4 class="user-profile-card-title mt-4">
|
||||||
عوض کردن رمز عبور
|
عوض کردن رمز عبور و پروفایل
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
|
|
||||||
@@ -175,7 +174,6 @@
|
|||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>رمز عبور جدید</label>
|
<label>رمز عبور جدید</label>
|
||||||
|
|
||||||
@@ -185,7 +183,6 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="رمز عبور جدید"
|
placeholder="رمز عبور جدید"
|
||||||
>
|
>
|
||||||
|
|
||||||
@error('new_password')
|
@error('new_password')
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
{{ $message }}
|
{{ $message }}
|
||||||
@@ -193,7 +190,6 @@
|
|||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>تکرار رمز عبور جدید</label>
|
<label>تکرار رمز عبور جدید</label>
|
||||||
|
|
||||||
@@ -204,13 +200,27 @@
|
|||||||
placeholder="تکرار رمز عبور جدید"
|
placeholder="تکرار رمز عبور جدید"
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>عکس پروفایل</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
name="image"
|
||||||
|
class="form-control"
|
||||||
|
accept="image/*"
|
||||||
|
>
|
||||||
|
@error('image')
|
||||||
|
<span class="text-danger">
|
||||||
|
{{ $message }}</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<button type="submit" class="theme-btn mt-4">
|
<button type="submit" class="theme-btn mt-4">
|
||||||
آپدیت مشخصات پروفایل
|
آپدیت مشخصات پروفایل
|
||||||
<i class="far fa-user"></i>
|
<i class="far fa-user"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -221,3 +231,90 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
|
@push('scripts')
|
||||||
|
<script>
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
|
||||||
|
const provinceSelect = document.getElementById('province_id');
|
||||||
|
const citySelect = document.getElementById('city_id');
|
||||||
|
|
||||||
|
const selectedProvinceId = "{{ old('province_id', $user->province_id) }}";
|
||||||
|
const selectedCityId = "{{ old('city_id', $user->city_id) }}";
|
||||||
|
|
||||||
|
fetch('{{ asset('assets/data/iran-cities.json') }}')
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => {
|
||||||
|
|
||||||
|
const provinces = [];
|
||||||
|
|
||||||
|
data.forEach(item => {
|
||||||
|
|
||||||
|
const exists = provinces.some(
|
||||||
|
province => province.id === item.provinceId
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!exists) {
|
||||||
|
provinces.push({
|
||||||
|
id: item.provinceId,
|
||||||
|
name: item.provinceName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// نمایش استانها
|
||||||
|
provinces.forEach(province => {
|
||||||
|
|
||||||
|
provinceSelect.innerHTML += `
|
||||||
|
<option value="${province.id}"
|
||||||
|
${String(province.id) === String(selectedProvinceId) ? 'selected' : ''}>
|
||||||
|
${province.name}
|
||||||
|
</option>
|
||||||
|
`;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// تابع نمایش شهرها
|
||||||
|
function loadCities(provinceId, selectedCity = null) {
|
||||||
|
|
||||||
|
citySelect.innerHTML = `
|
||||||
|
<option value="">شهر خود را انتخاب کنید</option>
|
||||||
|
`;
|
||||||
|
|
||||||
|
if (!provinceId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cities = data.filter(
|
||||||
|
item => String(item.provinceId) === String(provinceId)
|
||||||
|
);
|
||||||
|
|
||||||
|
cities.forEach(city => {
|
||||||
|
|
||||||
|
citySelect.innerHTML += `
|
||||||
|
<option value="${city.cityId}"
|
||||||
|
${String(city.cityId) === String(selectedCity) ? 'selected' : ''}>
|
||||||
|
${city.cityName}
|
||||||
|
</option>
|
||||||
|
`;
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedProvinceId) {
|
||||||
|
loadCities(selectedProvinceId, selectedCityId);
|
||||||
|
}
|
||||||
|
|
||||||
|
provinceSelect.addEventListener('change', function () {
|
||||||
|
|
||||||
|
loadCities(this.value);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('Error loading cities:', error);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
<div class="row mt-30">
|
<div class="row mt-30">
|
||||||
|
|
||||||
@forelse($favorites as $favorite)
|
@forelse($favorites as $favorite)
|
||||||
|
|
||||||
|
{{-- ==================== FLIGHT ==================== --}}
|
||||||
@if($favorite->flight)
|
@if($favorite->flight)
|
||||||
|
|
||||||
@php
|
@php
|
||||||
@@ -29,10 +31,17 @@
|
|||||||
|
|
||||||
<div class="flight-img">
|
<div class="flight-img">
|
||||||
|
|
||||||
|
@if($flight->file)
|
||||||
|
<img
|
||||||
|
src="{{ asset('storage/' . $flight->file->path) }}"
|
||||||
|
alt="{{ $flight->title }}"
|
||||||
|
>
|
||||||
|
@else
|
||||||
<img
|
<img
|
||||||
src="{{ asset('assets/img/flight/01.jpg') }}"
|
src="{{ asset('assets/img/flight/01.jpg') }}"
|
||||||
alt=""
|
alt="{{ $flight->title }}"
|
||||||
>
|
>
|
||||||
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -108,6 +117,8 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- ==================== TOUR ==================== --}}
|
||||||
@elseif($favorite->tour)
|
@elseif($favorite->tour)
|
||||||
|
|
||||||
@php
|
@php
|
||||||
@@ -120,10 +131,17 @@
|
|||||||
|
|
||||||
<div class="flight-img">
|
<div class="flight-img">
|
||||||
|
|
||||||
|
@if($tour->file)
|
||||||
|
<img
|
||||||
|
src="{{ asset('storage/' . $tour->file->path) }}"
|
||||||
|
alt="{{ $tour->title }}"
|
||||||
|
>
|
||||||
|
@else
|
||||||
<img
|
<img
|
||||||
src="{{ asset('assets/img/flight/01.jpg') }}"
|
src="{{ asset('assets/img/flight/01.jpg') }}"
|
||||||
alt=""
|
alt="{{ $tour->title }}"
|
||||||
>
|
>
|
||||||
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -186,14 +204,12 @@
|
|||||||
از
|
از
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
|
|
||||||
{{ number_format($tour->price) }}
|
{{ number_format($tour->price) }}
|
||||||
|
|
||||||
تومان
|
تومان
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flight-text-btn">
|
<div class="flight-text-btn">
|
||||||
|
|
||||||
<a href="{{ route('tours.show', $tour->id) }}">
|
<a href="{{ route('tours.show', $tour->id) }}">
|
||||||
|
|||||||
Reference in New Issue
Block a user