feat:change tour managinf for admin side
This commit is contained in:
@@ -24,8 +24,16 @@ class TourController extends Controller
|
|||||||
{
|
{
|
||||||
abort_if($tour->status !== TourStatus::ENABLE, 404);
|
abort_if($tour->status !== TourStatus::ENABLE, 404);
|
||||||
|
|
||||||
$tour->increment('views');
|
$viewedTours = session()->get('viewed_tours', []);
|
||||||
|
|
||||||
|
if (!in_array($tour->id, $viewedTours)) {
|
||||||
|
|
||||||
|
$tour->increment('views');
|
||||||
|
|
||||||
|
$viewedTours[] = $tour->id;
|
||||||
|
|
||||||
|
session()->put('viewed_tours', $viewedTours);
|
||||||
|
}
|
||||||
$tour->load([
|
$tour->load([
|
||||||
'file',
|
'file',
|
||||||
'tourDates',
|
'tourDates',
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ use Illuminate\Contracts\Database\Query\Builder;
|
|||||||
use Illuminate\Database\Eloquent\Attributes\Scope;
|
use Illuminate\Database\Eloquent\Attributes\Scope;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use App\Traits\LogsActivity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Tour
|
* Class Tour
|
||||||
@@ -36,7 +37,9 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
* @package App\Models
|
* @package App\Models
|
||||||
*/
|
*/
|
||||||
class Tour extends Model
|
class Tour extends Model
|
||||||
|
|
||||||
{
|
{
|
||||||
|
use LogsActivity;
|
||||||
protected $table = 'tours';
|
protected $table = 'tours';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,57 @@
|
|||||||
<div class="user-profile-sidebar">
|
<div class="user-profile-sidebar">
|
||||||
<div class="user-profile-sidebar-top">
|
<div class="user-profile-sidebar-top">
|
||||||
<div class="user-profile-img">
|
<div class="user-profile-img">
|
||||||
|
@if(auth()->user()->file)
|
||||||
<button type="button" class="profile-img-btn"><i class="far fa-camera"></i></button>
|
<img
|
||||||
<input type="file" class="profile-img-file">
|
src="{{ asset('storage/' . auth()->user()->file->path) }}"
|
||||||
|
alt="{{ getUserFullName() }}"
|
||||||
|
>
|
||||||
|
@else
|
||||||
|
<img
|
||||||
|
src="{{ asset('assets/img/user/default.jpg') }}"
|
||||||
|
alt="profile"
|
||||||
|
>
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<h4>{{ getUserFullName()}}</h4>
|
<h4>{{ getUserFullName() }}</h4>
|
||||||
</div>
|
</div>
|
||||||
<ul class="user-profile-sidebar-list">
|
<ul class="user-profile-sidebar-list">
|
||||||
<li><a href="{{route('account.profile')}}"><i class="far fa-user"></i> پروفایل من</a></li>
|
<li>
|
||||||
<li><a href="{{route('account.booking') }}"><i class="far fa-shopping-bag"></i> رزرو من</a></li>
|
<a href="{{ route('account.profile') }}">
|
||||||
<li><a href="{{route('account.comments')}}"><i class="far fa-clipboard-list"></i> نظرات من</a></li>
|
<i class="far fa-user"></i>
|
||||||
<li><a href="{{route('account.wishlist')}}"><i class="far fa-heart"></i> علاقه مندی های من</a></li>
|
پروفایل من
|
||||||
<li><a href="{{route('account.edit-profile.index')}}"><i class="far fa-cog"></i> تنظیمات</a></li>
|
</a>
|
||||||
<li><a href="{{route('auth.logout.index')}}"><i class="far fa-sign-out"></i> خروج</a></li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ route('account.booking') }}">
|
||||||
|
<i class="far fa-shopping-bag"></i>
|
||||||
|
رزرو من
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{route('account.comments') }}">
|
||||||
|
<i class="far fa-clipboard-list"></i>
|
||||||
|
نظرات من
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ route('account.wishlist') }}">
|
||||||
|
<i class="far fa-heart"></i>
|
||||||
|
علاقه مندی های من
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ route('account.edit-profile.index') }}">
|
||||||
|
<i class="far fa-cog"></i>
|
||||||
|
تنظیمات
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ route('auth.logout.index') }}">
|
||||||
|
<i class="far fa-sign-out"></i>
|
||||||
|
خروج
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -146,30 +146,6 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="col-md-6 col-lg-3">
|
|
||||||
|
|
||||||
<div class="listing-feature">
|
|
||||||
|
|
||||||
<div class="listing-feature-icon">
|
|
||||||
<i class="far fa-users"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="listing-feature-content">
|
|
||||||
|
|
||||||
<h6>ظرفیت پرواز</h6>
|
|
||||||
|
|
||||||
<span>
|
|
||||||
{{ number_format($flight->capacity) }} صندلی
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-md-6 col-lg-3">
|
<div class="col-md-6 col-lg-3">
|
||||||
|
|
||||||
<div class="listing-feature">
|
<div class="listing-feature">
|
||||||
|
|||||||
@@ -15,28 +15,38 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- ==================== TOUR ==================== --}}
|
||||||
@if($type === 'tour')
|
@if($type === 'tour')
|
||||||
|
|
||||||
<div class="listing-item p-3 mt-3">
|
<div class="listing-item p-3 mt-3">
|
||||||
|
|
||||||
<div class="listing-feature mb-3">
|
<div class="listing-feature mb-3">
|
||||||
<div class="listing-feature-icon">
|
<div class="listing-feature-icon">
|
||||||
<i class="far fa-clock"></i>
|
<i class="far fa-clock"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="listing-feature-content">
|
<div class="listing-feature-content">
|
||||||
<h6>مدت تور</h6>
|
<h6>مدت تور</h6>
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
{{ $item->duration }} روز
|
{{ $item->duration }} روز
|
||||||
و
|
و
|
||||||
{{ max($item->duration - 1, 0) }} شب
|
{{ max($item->duration - 1, 0) }} شب
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="listing-feature mb-3">
|
<div class="listing-feature mb-3">
|
||||||
<div class="listing-feature-icon">
|
<div class="listing-feature-icon">
|
||||||
<i class="far fa-location-dot"></i>
|
<i class="far fa-location-dot"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="listing-feature-content">
|
<div class="listing-feature-content">
|
||||||
<h6>مسیر تور</h6>
|
<h6>مسیر تور</h6>
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
{{ $item->origin }}
|
{{ $item->origin }}
|
||||||
|
|
||||||
@@ -46,6 +56,8 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="listing-feature mb-3">
|
<div class="listing-feature mb-3">
|
||||||
<div class="listing-feature-icon">
|
<div class="listing-feature-icon">
|
||||||
<i class="far fa-eye"></i>
|
<i class="far fa-eye"></i>
|
||||||
@@ -60,10 +72,13 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="listing-feature">
|
<div class="listing-feature">
|
||||||
<div class="listing-feature-icon">
|
<div class="listing-feature-icon">
|
||||||
<i class="far fa-calendar-plus"></i>
|
<i class="far fa-calendar-plus"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="listing-feature-content">
|
<div class="listing-feature-content">
|
||||||
<h6>تاریخ ثبت تور</h6>
|
<h6>تاریخ ثبت تور</h6>
|
||||||
|
|
||||||
@@ -71,25 +86,57 @@
|
|||||||
{{ $item->created_at->toJalali()->format('Y/m/d') }}
|
{{ $item->created_at->toJalali()->format('Y/m/d') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="listing-side-btn mt-3">
|
<div class="listing-side-btn mt-3">
|
||||||
<a href="{{route('account.booking')}}" class="theme-btn">
|
|
||||||
|
{{-- رزرو تور --}}
|
||||||
|
<a href="{{ route('account.booking') }}"
|
||||||
|
class="theme-btn">
|
||||||
|
|
||||||
<span class="far fa-shopping-bag"></span>
|
<span class="far fa-shopping-bag"></span>
|
||||||
اکنون رزرو کن
|
اکنون رزرو کن
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
<a href="#" class="border-btn">
|
|
||||||
<i class="far fa-heart"></i>
|
|
||||||
افزودن به علاقهمندیها
|
{{-- علاقه مندی تور --}}
|
||||||
</a>
|
<form
|
||||||
|
action="{{ route('account.favorites.toggle', [
|
||||||
|
'type' => 'tour',
|
||||||
|
'id' => $item->id
|
||||||
|
]) }}"
|
||||||
|
method="POST"
|
||||||
|
>
|
||||||
|
|
||||||
|
@csrf
|
||||||
|
|
||||||
|
<button type="submit" class="border-btn">
|
||||||
|
|
||||||
|
<i class="far fa-heart"></i>
|
||||||
|
افزودن به علاقهمندیها
|
||||||
|
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{-- ==================== FLIGHT ==================== --}}
|
||||||
@if($type === 'flight')
|
@if($type === 'flight')
|
||||||
|
|
||||||
<form action="{{ route('account.booking.store') }}" method="POST">
|
{{-- فرم رزرو پرواز --}}
|
||||||
|
<form
|
||||||
|
action="{{ route('account.booking.store') }}"
|
||||||
|
method="POST"
|
||||||
|
>
|
||||||
|
|
||||||
@csrf
|
@csrf
|
||||||
|
|
||||||
@@ -154,23 +201,18 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- دکمه رزرو --}}
|
||||||
<div class="listing-side-btn">
|
<div class="listing-side-btn">
|
||||||
|
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
class="theme-btn"
|
class="theme-btn"
|
||||||
>
|
>
|
||||||
|
|
||||||
<span class="far fa-shopping-bag"></span>
|
<span class="far fa-shopping-bag"></span>
|
||||||
اکنون رزرو کن
|
اکنون رزرو کن
|
||||||
</button>
|
|
||||||
|
|
||||||
<a
|
</button>
|
||||||
href="#"
|
|
||||||
class="border-btn"
|
|
||||||
>
|
|
||||||
<i class="far fa-heart"></i>
|
|
||||||
افزودن به علاقهمندیها
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -180,16 +222,47 @@
|
|||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- علاقه مندی پرواز --}}
|
||||||
|
<div class="listing-side-btn mt-3">
|
||||||
|
|
||||||
|
<form
|
||||||
|
action="{{ route('account.favorites.toggle', [
|
||||||
|
'type' => 'flight',
|
||||||
|
'id' => $item->id
|
||||||
|
]) }}"
|
||||||
|
method="POST"
|
||||||
|
>
|
||||||
|
|
||||||
|
@csrf
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
class="border-btn"
|
||||||
|
>
|
||||||
|
|
||||||
|
<i class="far fa-heart"></i>
|
||||||
|
افزودن به علاقهمندیها
|
||||||
|
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
|
||||||
<div class="listing-side-share">
|
<div class="listing-side-share">
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
|
|
||||||
<i class="far fa-eye"></i>
|
<i class="far fa-eye"></i>
|
||||||
|
|
||||||
{{ number_format($item->views) }}
|
{{ number_format($item->views) }}
|
||||||
|
|
||||||
مشاهده
|
مشاهده
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user