feat: implement site visit in controller and add visit table
This commit is contained in:
@@ -1,45 +1,140 @@
|
||||
<style>
|
||||
.flight-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flight-col {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flight-item {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.flight-img {
|
||||
height: 200px;
|
||||
min-height: 200px;
|
||||
flex-shrink: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.flight-img img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.flight-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.flight-title {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.flight-title-info {
|
||||
min-height: 55px;
|
||||
}
|
||||
|
||||
.flight-title-info h4 {
|
||||
min-height: 48px;
|
||||
}
|
||||
|
||||
.flight-date {
|
||||
min-height: 25px;
|
||||
}
|
||||
|
||||
.flight-bottom {
|
||||
margin-top: auto;
|
||||
}
|
||||
</style>
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="flight-item">
|
||||
|
||||
<div class="flight-img">
|
||||
@if(getFileUrl($flight->file_id))
|
||||
<img
|
||||
src="{{ getFileUrl($flight->file_id) }}"
|
||||
alt="{{ $flight->title }}"
|
||||
style="width: 100%; height: 200px; object-fit: cover;"
|
||||
>
|
||||
|
||||
@if($flight?->file_id)
|
||||
<img
|
||||
src="{{ getFileUrl($flight->file_id) }}"
|
||||
alt="{{ $flight->title }}"
|
||||
>
|
||||
@else
|
||||
<img src="{{ asset('assets/img/flight/01.jpg') }}" alt
|
||||
style="width: 100%; height: 200px; object-fit: cover;">
|
||||
<img
|
||||
src="{{ asset('assets/img/flight/01.jpg') }}"
|
||||
alt="{{ $flight->title }}"
|
||||
>
|
||||
@endif
|
||||
|
||||
<a href="{{ route('account.wishlist.toggle', [
|
||||
'type' => 'flight',
|
||||
'id' => $flight->id
|
||||
]) }}" class="add-wishlist">
|
||||
<a
|
||||
href="{{ route('account.wishlist.toggle', [
|
||||
'type' => 'flight',
|
||||
'id' => $flight->id
|
||||
]) }}"
|
||||
class="add-wishlist"
|
||||
>
|
||||
<i class="far fa-heart"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flight-content">
|
||||
|
||||
<div class="flight-title">
|
||||
|
||||
<div class="flight-title-info">
|
||||
<img src="{{ asset('assets/img/flight/airline-1.png') }}" alt>
|
||||
<h4><a href="#">{{ $flight->departureAirport->city->name }}<i
|
||||
class="far fa-exchange"></i> {{ $flight->arrivalAirport->city->name }} </a></h4>
|
||||
|
||||
<img
|
||||
src="{{ asset('assets/img/flight/airline-1.png') }}"
|
||||
alt
|
||||
>
|
||||
|
||||
<h4>
|
||||
<a href="#">
|
||||
{{ $flight->departureAirport?->city?->name }}
|
||||
|
||||
<i class="far fa-exchange"></i>
|
||||
|
||||
{{ $flight->arrivalAirport?->city?->name }}
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
</div>
|
||||
<p class="flight-date"><i
|
||||
class="far fa-calendar-days"></i>{{ $flight->departure_time->toJalali()->format('Y/m/d H:i') }}
|
||||
|
||||
<p class="flight-date">
|
||||
<i class="far fa-calendar-days"></i>
|
||||
{{ $flight->departure_time->toJalali()->format('Y/m/d H:i') }}
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flight-bottom">
|
||||
|
||||
<div class="flight-price">
|
||||
از <span> {{ number_format($flight->price) }} تومان </span>
|
||||
از
|
||||
<span>
|
||||
{{ number_format($flight->price) }} تومان
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="flight-text-btn">
|
||||
<a href="{{ route('flights.show', $flight->id) }}">نمایش جزئیات <i
|
||||
class="fas fa-arrow-left"></i></a>
|
||||
<a href="{{ route('flights.show', $flight->id) }}">
|
||||
نمایش جزئیات
|
||||
<i class="fas fa-arrow-left"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -1,18 +1,69 @@
|
||||
<style>
|
||||
.tour-item {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.tour-img {
|
||||
height: 260px;
|
||||
flex-shrink: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.tour-img img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.tour-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.tour-title {
|
||||
min-height: 50px;
|
||||
}
|
||||
|
||||
.tour-content > p {
|
||||
min-height: 48px;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.tour-duration {
|
||||
min-height: 25px;
|
||||
}
|
||||
|
||||
.tour-bottom {
|
||||
margin-top: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="col-md-6 col-lg-6">
|
||||
<div class="tour-item">
|
||||
|
||||
<div class="tour-img">
|
||||
<img
|
||||
src="{{ $tour->file
|
||||
? asset('storage/' . $tour->file->path)
|
||||
: asset('assets/img/tour/01.jpg') }}"
|
||||
alt="{{ $tour->title }}"
|
||||
>
|
||||
@if(getFileUrl($tour?->file?->id))
|
||||
<img
|
||||
src="{{ getFileUrl($tour?->file?->id) }}"
|
||||
alt="{{ $tour->title }}"
|
||||
style=""
|
||||
>
|
||||
@else
|
||||
<img src="{{ asset('assets/img/tour/02.jpg') }}" alt
|
||||
style="">
|
||||
@endif
|
||||
|
||||
<a href="{{ route('account.wishlist.toggle', [
|
||||
'type' => 'tour',
|
||||
'id' => $tour->id
|
||||
]) }}" class="add-wishlist">
|
||||
'type' => 'tour',
|
||||
'id' => $tour->id
|
||||
]) }}" class="add-wishlist">
|
||||
<i class="far fa-heart"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user