git commit "Complete today's development"
This commit is contained in:
@@ -10,8 +10,12 @@ class CityController extends Controller
|
|||||||
//
|
//
|
||||||
public function getCities($province)
|
public function getCities($province)
|
||||||
{
|
{
|
||||||
return City::where('province_id', $province)
|
|
||||||
|
$cities = City::where('province_id',$province)
|
||||||
->orderBy('name')
|
->orderBy('name')
|
||||||
->get();
|
->get();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
return response()->json($cities);
|
||||||
|
|
||||||
|
}}
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Requests\FlightSearchRequest;
|
||||||
|
use App\Models\Flight;
|
||||||
|
|
||||||
|
class FlightController extends Controller
|
||||||
|
{
|
||||||
|
public function search(FlightSearchRequest $request)
|
||||||
|
{
|
||||||
|
$filters = $request->validated();
|
||||||
|
|
||||||
|
$flights = Flight::query()
|
||||||
|
->applySearch($filters)
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return view('flights.search', compact('flights'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function archive()
|
||||||
|
{
|
||||||
|
$flights = Flight::query()
|
||||||
|
->latest()
|
||||||
|
->paginate(12);
|
||||||
|
|
||||||
|
return view('flights.archive', compact('flights'));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,13 +2,17 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use App\Models\Flight;
|
||||||
|
|
||||||
class HomeController extends Controller
|
class HomeController extends Controller
|
||||||
{
|
{
|
||||||
//
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
return view('layouts.app');
|
$latestFlights = Flight::query()
|
||||||
|
->latest()
|
||||||
|
->take(6)
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return view('home.index', compact('latestFlights'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Validation\ValidationRule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
class FlightSearchRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*/
|
||||||
|
public function authorize(): bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array<string, ValidationRule|array<mixed>|string>
|
||||||
|
*/
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'origin' =>
|
||||||
|
[
|
||||||
|
'required',
|
||||||
|
],
|
||||||
|
'destination' =>
|
||||||
|
[
|
||||||
|
'required',
|
||||||
|
],
|
||||||
|
'departure_date' =>
|
||||||
|
[
|
||||||
|
'required',
|
||||||
|
'date',
|
||||||
|
],
|
||||||
|
'passengers' =>
|
||||||
|
[ 'required',
|
||||||
|
'integer',
|
||||||
|
'min:1',
|
||||||
|
],
|
||||||
|
|
||||||
|
]; }
|
||||||
|
}
|
||||||
@@ -41,4 +41,8 @@ class City extends Model
|
|||||||
{
|
{
|
||||||
return $this->hasMany(User::class);
|
return $this->hasMany(User::class);
|
||||||
}
|
}
|
||||||
|
public function province()
|
||||||
|
{
|
||||||
|
return $this->hasMany(Province::class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Database\Eloquent\Attributes\Scope;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,4 +58,22 @@ class Flight extends Model
|
|||||||
'price',
|
'price',
|
||||||
'status'
|
'status'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
#[Scope]
|
||||||
|
public function applySearch(Builder $query, array $filters): void
|
||||||
|
{
|
||||||
|
$query
|
||||||
|
->when($filters['origin'] ?? null, function ($query, $origin) {
|
||||||
|
$query->where('origin', $origin);
|
||||||
|
})
|
||||||
|
->when($filters['destination'] ?? null, function ($query, $destination) {
|
||||||
|
$query->where('destination', $destination);
|
||||||
|
})
|
||||||
|
->when($filters['departure_date'] ?? null, function ($query, $date) {
|
||||||
|
$query->whereDate('departure_date', $date);
|
||||||
|
})
|
||||||
|
->when($filters['passengers'] ?? null, function ($query, $passengers) {
|
||||||
|
$query->where('capacity', '>=', $passengers);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -32,5 +32,9 @@ class Province extends Model
|
|||||||
{
|
{
|
||||||
return $this->hasMany(User::class);
|
return $this->hasMany(User::class);
|
||||||
}
|
}
|
||||||
|
public function cities()
|
||||||
|
{
|
||||||
|
return $this->hasMany(City::class);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use App\Models\Province;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
class AppServiceProvider extends ServiceProvider
|
class AppServiceProvider extends ServiceProvider
|
||||||
@@ -19,6 +20,13 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot(): void
|
public function boot(): void
|
||||||
{
|
{
|
||||||
//
|
\Illuminate\Support\Facades\View::composer('layouts.hero', function ($view) {
|
||||||
|
|
||||||
|
$provinces = Province::orderBy('name')->get();
|
||||||
|
|
||||||
|
$view->with('provinces', $provinces);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\View\Components\Home;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Contracts\View\View;
|
||||||
|
use Illuminate\View\Component;
|
||||||
|
|
||||||
|
class LatestFlights extends Component
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new component instance.
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the view / contents that represent the component.
|
||||||
|
*/
|
||||||
|
public function render(): View|Closure|string
|
||||||
|
{
|
||||||
|
return view('components.home.latest-flights');
|
||||||
|
}
|
||||||
|
}
|
||||||
+105
-353
@@ -1,361 +1,113 @@
|
|||||||
'use strict';
|
$(document).ready(function () {
|
||||||
|
|
||||||
var mobileViewport = 992;
|
|
||||||
var isSafari = navigator.userAgent.indexOf("Safari") > -1;
|
|
||||||
var isChrome = navigator.userAgent.indexOf('Chrome') > -1;
|
|
||||||
if((isSafari) && (isChrome)) {
|
|
||||||
isSafari = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
$('#origin_province').on('change', function () {
|
||||||
OwlCarousel();
|
|
||||||
|
let provinceId = $(this).val();
|
||||||
|
|
||||||
|
$('#origin_city').html(
|
||||||
|
'<option value="">در حال دریافت...</option>'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
if(provinceId){
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
|
||||||
|
url: '/users/cities/' + provinceId,
|
||||||
|
|
||||||
|
type: 'GET',
|
||||||
|
|
||||||
|
success:function (cities) {
|
||||||
|
|
||||||
|
|
||||||
|
$('#origin_city').empty();
|
||||||
|
|
||||||
|
$('#origin_city').append(
|
||||||
|
'<option value="">انتخاب شهر</option>'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
$.each(cities,function(index,city){
|
||||||
|
|
||||||
|
$('#origin_city').append(
|
||||||
|
`<option value="${city.id}">
|
||||||
|
${city.name}
|
||||||
|
</option>`
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
$('.blur-area').blurArea();
|
|
||||||
$('.ws-action').windowScrollAction();
|
|
||||||
checkboxes();
|
|
||||||
afternavHeight();
|
|
||||||
activeBookmark();
|
|
||||||
magnificLightbox();
|
|
||||||
priceSlider();
|
|
||||||
BSTabsActions();
|
|
||||||
heroSearchSections();
|
|
||||||
$('.quantity-selector').quantitySelector();
|
|
||||||
autocomplete();
|
|
||||||
searchResultsCollapse();
|
|
||||||
comingSoonCountdown();
|
|
||||||
smoothScroll();
|
|
||||||
|
|
||||||
if($(window).width() > mobileViewport) {
|
|
||||||
YouTubeVideo();
|
|
||||||
stickySidebars();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($(window).width() < mobileViewport) {
|
});
|
||||||
mobileFilters();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
googleMaps();
|
|
||||||
|
|
||||||
|
|
||||||
function smoothScroll() {
|
|
||||||
var scroll = new SmoothScroll('a[data-scroll]');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function YouTubeVideo() {
|
|
||||||
var $video = $('#youtube-video');
|
|
||||||
if($video.length) {
|
|
||||||
|
|
||||||
$video.YTPlayer({
|
|
||||||
fitToBackground: true,
|
|
||||||
videoId: $video.data('video-id'),
|
|
||||||
events: {
|
|
||||||
onReady: function() {
|
|
||||||
$video.data('ytPlayer').player.mute();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$(document).on('scroll', function(){
|
|
||||||
videoScroll();
|
|
||||||
});
|
|
||||||
|
|
||||||
function videoScroll() {
|
|
||||||
var fraction = 0.75,
|
|
||||||
player = $video.data('ytPlayer').player,
|
|
||||||
videoHeight = $video.height(),
|
|
||||||
videoOffsetTop = $video.offset().top,
|
|
||||||
windowScrollY = window.scrollY;
|
|
||||||
|
|
||||||
if(windowScrollY > (videoHeight + videoOffsetTop) *fraction) {
|
|
||||||
player.pauseVideo();
|
|
||||||
} else {
|
|
||||||
player.playVideo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function OwlCarousel() {
|
|
||||||
$('.owl-carousel').each( function() {
|
|
||||||
var $carousel = $(this);
|
|
||||||
$carousel.owlCarousel({
|
|
||||||
// dots : false,
|
|
||||||
// items : $carousel.data("items"),
|
|
||||||
slideBy : $carousel.data("slideby"),
|
|
||||||
center : $carousel.data("center"),
|
|
||||||
loop : $carousel.data("loop"),
|
|
||||||
margin : $carousel.data("margin"),
|
|
||||||
|
|
||||||
autoplay : $carousel.data("autoplay"),
|
|
||||||
autoplayTimeout : $carousel.data("autoplay-timeout"),
|
|
||||||
navText : [ '<span class="fa fa-angle-left"><span>', '<span class="fa fa-angle-right"></span>' ],
|
|
||||||
responsive: {
|
|
||||||
0 : {
|
|
||||||
items: 1,
|
|
||||||
dots: true,
|
|
||||||
nav: false
|
|
||||||
},
|
|
||||||
992 : {
|
|
||||||
items: $carousel.data("items"),
|
|
||||||
dots: false,
|
|
||||||
nav : $carousel.data("nav")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function stickySidebars() {
|
|
||||||
$('.sticky-col').stick_in_parent({
|
|
||||||
parent: $('#sticky-parent')
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.sticky-cols').stick_in_parent({
|
|
||||||
parent: $('.sticky-parent')
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function mobileFilters() {
|
|
||||||
if($('#mobileFilters').length) {
|
|
||||||
$(document).on('scroll', function(){
|
|
||||||
filtersScroll();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function filtersScroll() {
|
|
||||||
|
|
||||||
var filters = $('#mobileFilters');
|
|
||||||
var footer = $('#mainFooter');
|
|
||||||
|
|
||||||
if(filters.offset().top + filters.height() > footer.offset().top - 10 || !$(document).scrollTop()) {
|
|
||||||
filters.removeClass('active');
|
|
||||||
} else {
|
|
||||||
filters.addClass('active');
|
|
||||||
}
|
|
||||||
|
|
||||||
if($(document).scrollTop + window.innerHeight > footer.offset().top) {
|
|
||||||
filters.addClass('active');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkboxes() {
|
|
||||||
$('.icheck, .iradio').iCheck({
|
|
||||||
checkboxClass: 'icheck',
|
|
||||||
radioClass: 'iradio'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function googleMaps() {
|
|
||||||
if($('.google-map').length) {
|
|
||||||
window.initMap = function() {
|
|
||||||
$('.google-map').gmap();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
window.initMap = function() {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function afternavHeight() {
|
|
||||||
$('.afternav-height').each(function(){
|
|
||||||
var $mainNav = $('#main-nav'),
|
|
||||||
mainNavHeight = $mainNav.height(),
|
|
||||||
height = $(window).height() - mainNavHeight;
|
|
||||||
|
|
||||||
$(this).css('height', height);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function activeBookmark() {
|
|
||||||
$('.theme-search-results-item-bookmark').each(function(index, el){
|
|
||||||
$(el).on('click', function(e){
|
|
||||||
e.preventDefault();
|
|
||||||
$(this).toggleClass('active');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function magnificLightbox() {
|
|
||||||
$('.magnific-gallery').each(function(index, el){
|
|
||||||
$(el).magnificPopup({
|
|
||||||
delegate: 'a',
|
|
||||||
type: 'image',
|
|
||||||
gallery: {
|
|
||||||
enabled: true,
|
|
||||||
navigateByImgClick: true,
|
|
||||||
preload: [0,1]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.magnific-gallery-link').each(function(index , value){
|
|
||||||
var gallery = $(this);
|
|
||||||
var galleryImages = $(this).data('items').split(',');
|
|
||||||
var items = [];
|
|
||||||
for(var i=0;i<galleryImages.length; i++){
|
|
||||||
items.push({
|
|
||||||
src:galleryImages[i],
|
|
||||||
title:''
|
|
||||||
});
|
|
||||||
}
|
|
||||||
gallery.magnificPopup({
|
|
||||||
mainClass: 'mfp-fade',
|
|
||||||
items:items,
|
|
||||||
gallery:{
|
|
||||||
enabled:true,
|
|
||||||
tPrev: $(this).data('prev-text'),
|
|
||||||
tNext: $(this).data('next-text')
|
|
||||||
},
|
|
||||||
type: 'image'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.magnific-inline').magnificPopup({
|
|
||||||
type: 'inline',
|
|
||||||
fixedContentPos: true
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.magnific-iframe').magnificPopup({
|
|
||||||
type: 'iframe'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function priceSlider() {
|
|
||||||
$("#price-slider").ionRangeSlider({
|
|
||||||
type: "double",
|
|
||||||
prefix: " ت "
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#price-slider-mob").ionRangeSlider({
|
|
||||||
type: "double",
|
|
||||||
prefix: " ت "
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function BSTabsActions() {
|
|
||||||
$('#sticky-tab').on('shown.bs.tab', function (e) {
|
|
||||||
$('.sticky-tab-col').stick_in_parent({
|
|
||||||
parent: $('#sticky-tab-parent')
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$('#slideTabs a').click(function (e) {
|
|
||||||
e.preventDefault();
|
|
||||||
$(this).tab('show');
|
|
||||||
var control = $(this).attr('aria-controls')
|
|
||||||
var active = $('#slideTabsSlides').find('.active')[0];
|
|
||||||
var target = $('#slideTabsSlides').find("[data-tab='" + control + "']")[0];
|
|
||||||
if(active !== target) {
|
|
||||||
$(active).removeClass('active');
|
|
||||||
$(target).addClass('active');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function heroSearchSections() {
|
|
||||||
$('.theme-hero-search-section').each(function(){
|
|
||||||
var label,
|
|
||||||
input;
|
|
||||||
|
|
||||||
label = $(this).find('.theme-hero-search-section-label');
|
|
||||||
input = $(this).find('.theme-hero-search-section-input');
|
|
||||||
|
|
||||||
if(input.val()) {
|
|
||||||
label.addClass('active');
|
|
||||||
}
|
|
||||||
|
|
||||||
input.focus(function(){
|
|
||||||
label.addClass('active');
|
|
||||||
});
|
|
||||||
|
|
||||||
input.blur(function(){
|
|
||||||
if(!input.val()) {
|
|
||||||
label.removeClass('active');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function autocomplete() {
|
|
||||||
$('.typeahead').typeahead({
|
|
||||||
minLength: 3,
|
|
||||||
showHintOnFocus: true,
|
|
||||||
source: function(q, cb) {
|
|
||||||
return $.ajax({
|
|
||||||
dataType: 'jsonp',
|
|
||||||
type: 'get',
|
|
||||||
url: 'http://gd.geobytes.com/AutoCompleteCity?callback=?&q=' + q,
|
|
||||||
chache: false,
|
|
||||||
success: function(data) {
|
|
||||||
var res = [];
|
|
||||||
$.each(data, function(index, val){
|
|
||||||
if(val !== "%s") {
|
|
||||||
res.push({
|
|
||||||
id: index,
|
|
||||||
name: val
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
cb(res);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function searchResultsCollapse() {
|
|
||||||
|
|
||||||
$('.theme-search-results-item-collapse').on('shown.bs.collapse', function(){
|
|
||||||
$(this).parents('.theme-search-results-item').addClass('active');
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.theme-search-results-item-collapse').on('hidden.bs.collapse', function(){
|
|
||||||
$(this).parents('.theme-search-results-item').removeClass('active');
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function comingSoonCountdown() {
|
|
||||||
|
|
||||||
$('#commingSoonCountdown').countdown('1400/10/10', function(e){
|
|
||||||
$(this).html(e.strftime(''
|
|
||||||
+ '<div><p>%D</p><span>روز</span></div>'
|
|
||||||
+ '<div><p>%H</p><span>ساعت</span></div>'
|
|
||||||
+ '<div><p>%M</p><span>دقیه</span></div>'
|
|
||||||
+ '<div><p>%S</p><span>ثانیه</span></div>'
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$('.mobile-picker').each(function(i, item){
|
|
||||||
if(!isSafari) {
|
|
||||||
$(item).attr('type', 'text');
|
|
||||||
$(item).val($(item).attr('value'));
|
|
||||||
$(item).on('focus', function(){
|
|
||||||
$(item).attr('type', 'date');
|
|
||||||
});
|
|
||||||
$(item).on('blur', function(){
|
|
||||||
$(item).attr('type', 'text');
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$('#destination_province').on('change', function () {
|
||||||
|
|
||||||
|
|
||||||
|
let provinceId = $(this).val();
|
||||||
|
|
||||||
|
|
||||||
|
$('#destination_city').html(
|
||||||
|
'<option value="">در حال دریافت...</option>'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
if(provinceId){
|
||||||
|
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
|
||||||
|
url:'/users/cities/' + provinceId,
|
||||||
|
|
||||||
|
type:'GET',
|
||||||
|
|
||||||
|
success:function(cities){
|
||||||
|
|
||||||
|
|
||||||
|
$('#destination_city').empty();
|
||||||
|
|
||||||
|
|
||||||
|
$('#destination_city').append(
|
||||||
|
'<option value="">انتخاب شهر</option>'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
$.each(cities,function(index,city){
|
||||||
|
|
||||||
|
|
||||||
|
$('#destination_city').append(
|
||||||
|
|
||||||
|
`<option value="${city.id}">
|
||||||
|
${city.name}
|
||||||
|
</option>`
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,130 @@
|
|||||||
|
@foreach($flights as $flight)
|
||||||
|
|
||||||
|
<!-- FLIGHT ITEM -->
|
||||||
|
<div class="swiper-slide flight-card group">
|
||||||
|
|
||||||
|
<!-- flight header -->
|
||||||
|
<div class="flight-card_header">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span class="flight-airline">
|
||||||
|
{{ $flight->airline }}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="flight-number">
|
||||||
|
{{ $flight->flight_number }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if($flight->flight_class)
|
||||||
|
<span class="flight-class">
|
||||||
|
{{ $flight->flight_class }}
|
||||||
|
</span>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- flight route -->
|
||||||
|
<div class="flight-card_route">
|
||||||
|
|
||||||
|
<div class="flight-airport">
|
||||||
|
|
||||||
|
<span>
|
||||||
|
مبدا
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $flight->origin }}
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flight-route-line">
|
||||||
|
✈
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flight-airport">
|
||||||
|
|
||||||
|
<span>
|
||||||
|
مقصد
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $flight->destination }}
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- flight details -->
|
||||||
|
<div class="flight-card_details">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span>
|
||||||
|
تاریخ پرواز
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $flight->departure_date?->format('Y/m/d') }}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span>
|
||||||
|
ساعت حرکت
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $flight->departure_time?->format('H:i') }}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span>
|
||||||
|
ساعت رسیدن
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $flight->arrival_time?->format('H:i') }}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- flight footer -->
|
||||||
|
<div class="flight-card_footer">
|
||||||
|
|
||||||
|
<div class="flight-price">
|
||||||
|
|
||||||
|
<span>
|
||||||
|
قیمت
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ number_format($flight->price) }}
|
||||||
|
|
||||||
|
<small>
|
||||||
|
تومان
|
||||||
|
</small>
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="#" class="flight-detail-button">
|
||||||
|
جزئیات
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endforeach
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
@foreach($tours as $tour)
|
||||||
|
|
||||||
|
<!-- TOUR ITEM -->
|
||||||
|
<div class="swiper-slide tour-card group">
|
||||||
|
|
||||||
|
<!-- tour image -->
|
||||||
|
<a href="#">
|
||||||
|
|
||||||
|
<img
|
||||||
|
class="tour-card_img"
|
||||||
|
src="{{ $tour->image ?? asset('assets/img/placeholder.jpg') }}"
|
||||||
|
alt="{{ $tour->title }}"
|
||||||
|
>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- tour content -->
|
||||||
|
<div class="tour-card_content">
|
||||||
|
|
||||||
|
<!-- title -->
|
||||||
|
<a href="#" class="tour-card_title">
|
||||||
|
{{ $tour->title }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- destination -->
|
||||||
|
<div class="tour-card_destination">
|
||||||
|
|
||||||
|
<span>
|
||||||
|
📍
|
||||||
|
</span>
|
||||||
|
|
||||||
|
{{ $tour->destination }}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- details -->
|
||||||
|
<div class="tour-card_details">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span>مدت تور</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $tour->duration }} روز
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span>ظرفیت</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $tour->capacity }} نفر
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- price -->
|
||||||
|
<div class="tour-card_price">
|
||||||
|
|
||||||
|
<span>
|
||||||
|
شروع قیمت از
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ number_format($tour->price) }}
|
||||||
|
<small>تومان</small>
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endforeach
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<h2>آرشیو پروازها</h2>
|
||||||
|
|
||||||
|
@foreach($flights as $flight)
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ $flight->airline }}
|
||||||
|
-
|
||||||
|
{{ $flight->flight_number }}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
{{ $flight->origin }}
|
||||||
|
→
|
||||||
|
{{ $flight->destination }}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
{{ $flight->departure_date }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
@endforeach
|
||||||
|
|
||||||
|
{{ $flights->links() }}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<div class="theme-page-section _pt-100 _pb-100">
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<div class="theme-search-results">
|
||||||
|
|
||||||
|
<div class="theme-search-results-header">
|
||||||
|
<h2>نتایج جستجوی پرواز</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{{ $flights->count() }} پرواز پیدا شد
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@forelse($flights as $flight)
|
||||||
|
|
||||||
|
<div class="theme-search-results-item">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
{{-- ایرلاین --}}
|
||||||
|
<div class="col-md-2">
|
||||||
|
<strong>
|
||||||
|
{{ $flight->airline }}
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ $flight->flight_number }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- مبدا --}}
|
||||||
|
<div class="col-md-2 text-center">
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $flight->origin }}
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ $flight->departure_time }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- مسیر --}}
|
||||||
|
<div class="col-md-2 text-center">
|
||||||
|
|
||||||
|
<span>
|
||||||
|
→
|
||||||
|
</span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- مقصد --}}
|
||||||
|
<div class="col-md-2 text-center">
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ $flight->destination }}
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ $flight->arrival_time }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- کلاس --}}
|
||||||
|
<div class="col-md-2 text-center">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
کلاس:
|
||||||
|
{{ $flight->flight_class }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
ظرفیت:
|
||||||
|
{{ $flight->capacity }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- قیمت --}}
|
||||||
|
<div class="col-md-2 text-center">
|
||||||
|
|
||||||
|
<strong>
|
||||||
|
{{ number_format($flight->price) }}
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
تومان
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button class="btn btn-primary">
|
||||||
|
انتخاب پرواز
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@empty
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
پروازی پیدا نشد
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
لطفاً مبدا، مقصد یا تاریخ دیگری را امتحان کنید.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endforelse
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|
||||||
@@ -1 +1,8 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
@include('components.flight')
|
||||||
|
@include('components.tour')
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|||||||
@@ -1,462 +1,456 @@
|
|||||||
<div class="theme-hero-area theme-hero-area-primary">
|
<section class="flight-hero">
|
||||||
<div class="theme-hero-area-bg-wrap">
|
|
||||||
<div class="theme-hero-area-bg ws-action" style="background-image:url(img/o14abktz5iy_1500x800.jpg);" data-parallax="true"></div>
|
|
||||||
<div class="theme-hero-area-mask theme-hero-area-mask-half"></div>
|
|
||||||
<div class="theme-hero-area-inner-shadow theme-hero-area-inner-shadow-light"></div>
|
|
||||||
</div>
|
|
||||||
<div class="theme-hero-area-body">
|
|
||||||
<div class="_pt-250 _pb-200 _pv-mob-50">
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="theme-search-area-tabs">
|
|
||||||
<div class="theme-search-area-tabs-header _c-w _ta-mob-c">
|
<div class="flight-hero-content">
|
||||||
<h1 class="theme-search-area-tabs-title">سفر خود را شروع کنید</h1>
|
|
||||||
<p class="theme-search-area-tabs-subtitle">صدها وب سایت مسافرتی را همزمان با هم مقایسه کنید</p>
|
<span class="flight-badge">
|
||||||
|
✈️ سفر بعدی شما از اینجا شروع میشود
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<h1>
|
||||||
|
پرواز خود را
|
||||||
|
<span>پیدا کنید</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
مبدا، مقصد و تاریخ سفر خود را انتخاب کنید.
|
||||||
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tabbable">
|
|
||||||
<ul class="nav nav-tabs nav-line nav-white nav-lg nav-mob-inline" role="tablist">
|
|
||||||
<li class="active" role="presentation">
|
<div class="flight-search-card">
|
||||||
<a aria-controls="SearchAreaTabs-1" role="tab" data-toggle="tab" href="#SearchAreaTabs-1">هتل</a>
|
|
||||||
</li>
|
<div class="flight-search-header">
|
||||||
<li role="presentation">
|
|
||||||
<a aria-controls="SearchAreaTabs-2" role="tab" data-toggle="tab" href="#SearchAreaTabs-2">خانه ها</a>
|
<div>
|
||||||
</li>
|
<h3>
|
||||||
<li role="presentation">
|
جستجوی پرواز
|
||||||
<a aria-controls="SearchAreaTabs-3" role="tab" data-toggle="tab" href="#SearchAreaTabs-3">پروازها</a>
|
</h3>
|
||||||
</li>
|
|
||||||
<li role="presentation">
|
<span>
|
||||||
<a aria-controls="SearchAreaTabs-4" role="tab" data-toggle="tab" href="#SearchAreaTabs-4">ماشین </a>
|
اطلاعات سفر خود را وارد کنید
|
||||||
</li>
|
</span>
|
||||||
<li role="presentation">
|
|
||||||
<a aria-controls="SearchAreaTabs-5" role="tab" data-toggle="tab" href="#SearchAreaTabs-5">تجربیات </a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="tab-content _pt-20">
|
|
||||||
<div class="tab-pane active" id="SearchAreaTabs-1" role="tab-panel">
|
|
||||||
<div class="theme-search-area theme-search-area-stacked">
|
|
||||||
<div class="theme-search-area-form">
|
|
||||||
<div class="row" data-gutter="none">
|
|
||||||
<div class="col-md-3 ">
|
|
||||||
<div class="theme-search-area-section first theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-location-pin"></i>
|
|
||||||
<input class="theme-search-area-section-input typeahead" type="text" placeholder="موقعیت هتل" data-provide="typeahead">
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
<div class="flight-type">
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="row" data-gutter="none">
|
<label>
|
||||||
<div class="col-md-6 ">
|
<input
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
type="radio"
|
||||||
<div class="theme-search-area-section-inner">
|
name="trip_type"
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
value="one_way"
|
||||||
<input class="theme-search-area-section-input datePickerStart _mob-h " value="تاریخ رفت" type="text" placeholder="تاریخ رفت" data-jdp>
|
checked
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ" type="text" data-jdp>
|
>
|
||||||
</div>
|
|
||||||
</div>
|
یک طرفه
|
||||||
</div>
|
|
||||||
<div class="col-md-6 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
|
||||||
<input class="theme-search-area-section-input datePickerEnd _mob-h" type="text" placeholder="تاریخ برگشت" data-jdp>
|
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ برگشت" type="text" data-jdp>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="row" data-gutter="none">
|
|
||||||
<div class="col-md-6 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr quantity-selector" data-increment="اتاق ها">
|
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-tag"></i>
|
|
||||||
<input class="theme-search-area-section-input" value="1 اتاق" type="text">
|
|
||||||
<div class="quantity-selector-box" id="HotelSearchRooms">
|
|
||||||
<div class="quantity-selector-inner">
|
|
||||||
<p class="quantity-selector-title">اتاق ها</p>
|
|
||||||
<ul class="quantity-selector-controls">
|
|
||||||
<li class="quantity-selector-decrement">
|
|
||||||
<a href="#">-</a>
|
|
||||||
</li>
|
|
||||||
<li class="quantity-selector-current">1</li>
|
|
||||||
<li class="quantity-selector-increment">
|
|
||||||
<a href="#">+</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr quantity-selector" data-increment="مهمان">
|
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-people"></i>
|
|
||||||
<input class="theme-search-area-section-input" value="2 مهمان" type="text">
|
|
||||||
<div class="quantity-selector-box" id="HotelSearch مهمان">
|
|
||||||
<div class="quantity-selector-inner">
|
|
||||||
<p class="quantity-selector-title">مهمان</p>
|
|
||||||
<ul class="quantity-selector-controls">
|
|
||||||
<li class="quantity-selector-decrement">
|
|
||||||
<a href="#">-</a>
|
|
||||||
</li>
|
|
||||||
<li class="quantity-selector-current">1</li>
|
|
||||||
<li class="quantity-selector-increment">
|
|
||||||
<a href="#">+</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-1 ">
|
|
||||||
<button class="theme-search-area-submit _mt-0 theme-search-area-submit-no-border theme-search-area-submit-curved">جستجو</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="theme-search-area-options _mob-h theme-search-area-options-white theme-search-area-options-dot-primary-inverse clearfix">
|
|
||||||
<div class="btn-group theme-search-area-options-list" data-toggle="buttons">
|
|
||||||
<label class="btn btn-primary active">
|
|
||||||
<input type="radio" name="hotel-options" id="hotel-option-1" checked=""> هرجایی
|
|
||||||
</label>
|
</label>
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="hotel-options" id="hotel-option-2">کسب و کار
|
<label>
|
||||||
|
<input
|
||||||
|
type="radio"
|
||||||
|
name="trip_type"
|
||||||
|
value="round_trip"
|
||||||
|
>
|
||||||
|
|
||||||
|
رفت و برگشت
|
||||||
</label>
|
</label>
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="hotel-options" id="hotel-option-3">خانواده
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<form action="{{ route('flights.search') }}" method="GET">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flight-fields">
|
||||||
|
|
||||||
|
|
||||||
|
{{-- مبدا --}}
|
||||||
|
<div class="flight-field">
|
||||||
|
|
||||||
|
<label for="origin">
|
||||||
|
مبدا
|
||||||
</label>
|
</label>
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="hotel-options" id="hotel-option-4">لوکس
|
<select id="origin_province">
|
||||||
|
<option value="">استان مبدا</option>
|
||||||
|
|
||||||
|
@foreach($provinces as $province)
|
||||||
|
<option value="{{ $province->id }}">
|
||||||
|
{{ $province->name }}
|
||||||
|
</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select name="origin" id="origin_city">
|
||||||
|
<option value="">شهر مبدا</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- مقصد --}}
|
||||||
|
<div class="flight-field">
|
||||||
|
|
||||||
|
<label for="destination">
|
||||||
|
مقصد
|
||||||
</label>
|
</label>
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="hotel-options" id="hotel-option-5">بودجه
|
<select id="destination_province">
|
||||||
|
<option value="">استان مقصد</option>
|
||||||
|
|
||||||
|
@foreach($provinces as $province)
|
||||||
|
<option value="{{ $province->id }}">
|
||||||
|
{{ $province->name }}
|
||||||
|
</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select name="destination" id="destination_city">
|
||||||
|
<option value="">شهر مقصد</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- تاریخ رفت --}}
|
||||||
|
<div class="flight-field">
|
||||||
|
|
||||||
|
<label for="departure_date">
|
||||||
|
تاریخ رفت
|
||||||
</label>
|
</label>
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="hotel-options" id="hotel-option-6">رومانتیک
|
<input
|
||||||
|
type="date"
|
||||||
|
name="departure_date"
|
||||||
|
id="departure_date"
|
||||||
|
>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- تاریخ برگشت --}}
|
||||||
|
<div class="flight-field">
|
||||||
|
|
||||||
|
<label for="return_date">
|
||||||
|
تاریخ برگشت
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="date"
|
||||||
|
name="return_date"
|
||||||
|
id="return_date"
|
||||||
|
>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
{{-- تعداد مسافر --}}
|
||||||
<div class="tab-pane" id="SearchAreaTabs-2" role="tab-panel">
|
<div class="flight-field">
|
||||||
<div class="theme-search-area theme-search-area-stacked">
|
|
||||||
<div class="theme-search-area-form">
|
<label for="passengers">
|
||||||
<div class="row" data-gutter="none">
|
تعداد مسافر
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="theme-search-area-section first theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-location-pin"></i>
|
|
||||||
<input class="theme-search-area-section-input typeahead" type="text" placeholder="موقعیت آپارتمان" data-provide="typeahead">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-7 ">
|
|
||||||
<div class="row" data-gutter="none">
|
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
|
||||||
<input class="theme-search-area-section-input datePickerStart _mob-h" value="تاریخ رفت" id="datepicker-Depart" type="text" placeholder="تاریخ رفت" data-jdp>
|
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ" type="text" data-jdp>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
|
||||||
<input class="theme-search-area-section-input datePickerEnd _mob-h" type="text" placeholder="تاریخ برگشت" data-jdp>
|
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ برگشت" type="text" data-jdp>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr quantity-selector" data-increment="مهمان">
|
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-people"></i>
|
|
||||||
<input class="theme-search-area-section-input" value="2 مهمان" type="text">
|
|
||||||
<div class="quantity-selector-box" id="RoomSearch مهمان">
|
|
||||||
<div class="quantity-selector-inner">
|
|
||||||
<p class="quantity-selector-title">مهمان</p>
|
|
||||||
<ul class="quantity-selector-controls">
|
|
||||||
<li class="quantity-selector-decrement">
|
|
||||||
<a href="#">-</a>
|
|
||||||
</li>
|
|
||||||
<li class="quantity-selector-current">1</li>
|
|
||||||
<li class="quantity-selector-increment">
|
|
||||||
<a href="#">+</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-1 ">
|
|
||||||
<button class="theme-search-area-submit _mt-0 theme-search-area-submit-no-border theme-search-area-submit-curved">جستجو</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="theme-search-area-options _mob-h theme-search-area-options-white theme-search-area-options-dot-primary-inverse clearfix">
|
|
||||||
<div class="btn-group theme-search-area-options-list" data-toggle="buttons">
|
|
||||||
<label class="btn btn-primary active">
|
|
||||||
<input type="radio" name="room-options" id="room-option-1" checked=""> هرجایی
|
|
||||||
</label>
|
</label>
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="room-options" id="room-option-2">کل خانه
|
<select
|
||||||
</label>
|
name="passengers"
|
||||||
<label class="btn btn-primary">
|
id="passengers"
|
||||||
<input type="radio" name="room-options" id="room-option-3">اتاق خصوصی
|
>
|
||||||
</label>
|
|
||||||
<label class="btn btn-primary">
|
@for($i = 1; $i <= 9; $i++)
|
||||||
<input type="radio" name="room-options" id="room-option-4">فضای به اشتراک گذاشته شده
|
|
||||||
</label>
|
<option value="{{ $i }}">
|
||||||
</div>
|
{{ $i }} مسافر
|
||||||
</div>
|
</option>
|
||||||
</div>
|
|
||||||
</div>
|
@endfor
|
||||||
<div class="tab-pane" id="SearchAreaTabs-3" role="tab-panel">
|
|
||||||
<div class="theme-search-area theme-search-area-stacked">
|
</select>
|
||||||
<div class="theme-search-area-form">
|
|
||||||
<div class="row" data-gutter="none">
|
</div>
|
||||||
<div class="col-md-5 ">
|
|
||||||
<div class="row" data-gutter="none">
|
|
||||||
<div class="col-md-6 ">
|
{{-- جستجو --}}
|
||||||
<div class="theme-search-area-section first theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
<div class="flight-button-wrapper">
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-location-pin"></i>
|
<button
|
||||||
<input class="theme-search-area-section-input typeahead" type="text" placeholder="مبدا" data-provide="typeahead">
|
type="submit"
|
||||||
</div>
|
class="flight-search-button"
|
||||||
</div>
|
>
|
||||||
</div>
|
🔍
|
||||||
<div class="col-md-6 ">
|
جستجوی پرواز
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
</button>
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-location-pin"></i>
|
</div>
|
||||||
<input class="theme-search-area-section-input typeahead" type="text" placeholder="مقصد" data-provide="typeahead">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</form>
|
||||||
</div>
|
|
||||||
<div class="col-md-6 ">
|
</div>
|
||||||
<div class="row" data-gutter="none">
|
|
||||||
<div class="col-md-4 ">
|
</div>
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
|
||||||
<div class="theme-search-area-section-inner">
|
</section>
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
|
||||||
<input class="theme-search-area-section-input datePickerStart _mob-h" value="تاریخ رفت" id="datepicker-tour-Depart" type="text" placeholder="تاریخ رفت" data-jdp>
|
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ" type="text" data-jdp>
|
<style>
|
||||||
</div>
|
|
||||||
</div>
|
.flight-hero {
|
||||||
</div>
|
padding: 80px 0 100px;
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
background:
|
||||||
<div class="theme-search-area-section-inner">
|
linear-gradient(
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
135deg,
|
||||||
<input class="theme-search-area-section-input datePickerEnd _mob-h" type="text" placeholder="تاریخ برگشت" id="datepicker-tour-Return">
|
#09203f,
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ برگشت" type="text" data-jdp>
|
#176b87
|
||||||
</div>
|
);
|
||||||
</div>
|
|
||||||
</div>
|
color: #fff;
|
||||||
<div class="col-md-4 ">
|
}
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr quantity-selector" data-increment="مسافر">
|
|
||||||
<div class="theme-search-area-section-inner">
|
.flight-hero-content {
|
||||||
<i class="theme-search-area-section-icon lin lin-people"></i>
|
text-align: center;
|
||||||
<input class="theme-search-area-section-input" value="1 مسافر" type="text">
|
margin-bottom: 40px;
|
||||||
<div class="quantity-selector-box" id="FlySearchPassengers">
|
}
|
||||||
<div class="quantity-selector-inner">
|
|
||||||
<p class="quantity-selector-title">مسافران</p>
|
.flight-badge {
|
||||||
<ul class="quantity-selector-controls">
|
display: inline-block;
|
||||||
<li class="quantity-selector-decrement">
|
|
||||||
<a href="#">-</a>
|
padding: 8px 18px;
|
||||||
</li>
|
|
||||||
<li class="quantity-selector-current">1</li>
|
margin-bottom: 18px;
|
||||||
<li class="quantity-selector-increment">
|
|
||||||
<a href="#">+</a>
|
border-radius: 30px;
|
||||||
</li>
|
|
||||||
</ul>
|
background: rgba(255,255,255,.12);
|
||||||
</div>
|
|
||||||
</div>
|
font-size: 14px;
|
||||||
</div>
|
}
|
||||||
</div>
|
|
||||||
</div>
|
.flight-hero h1 {
|
||||||
</div>
|
margin: 0;
|
||||||
</div>
|
|
||||||
<div class="col-md-1 ">
|
font-size: 48px;
|
||||||
<button class="theme-search-area-submit _mt-0 theme-search-area-submit-no-border theme-search-area-submit-curved">جستجو</button>
|
|
||||||
</div>
|
font-weight: 800;
|
||||||
</div>
|
}
|
||||||
</div>
|
|
||||||
<div class="theme-search-area-options theme-search-area-options-white theme-search-area-options-dot-primary-inverse clearfix">
|
.flight-hero h1 span {
|
||||||
<div class="btn-group theme-search-area-options-list" data-toggle="buttons">
|
color: #ffc107;
|
||||||
<label class="btn btn-primary active">
|
}
|
||||||
<input type="radio" name="flight-options" id="flight-option-1" checked="">رفت و برگشت
|
|
||||||
</label>
|
.flight-hero p {
|
||||||
<label class="btn btn-primary">
|
margin-top: 15px;
|
||||||
<input type="radio" name="flight-options" id="flight-option-2">یک طرفه
|
|
||||||
</label>
|
font-size: 17px;
|
||||||
</div>
|
|
||||||
</div>
|
opacity: .85;
|
||||||
</div>
|
}
|
||||||
</div>
|
|
||||||
<div class="tab-pane" id="SearchAreaTabs-4" role="tab-panel">
|
|
||||||
<div class="theme-search-area theme-search-area-stacked">
|
.flight-search-card {
|
||||||
<div class="theme-search-area-form">
|
|
||||||
<div class="row" data-gutter="none">
|
max-width: 1100px;
|
||||||
<div class="col-md-7 ">
|
|
||||||
<div class="row" data-gutter="none">
|
margin: auto;
|
||||||
<div class="col-md-6 ">
|
|
||||||
<div class="theme-search-area-section first theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
padding: 30px;
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-location-pin"></i>
|
background: #fff;
|
||||||
<input class="theme-search-area-section-input typeahead" type="text" placeholder="مبدا" data-provide="typeahead">
|
|
||||||
</div>
|
border-radius: 18px;
|
||||||
</div>
|
|
||||||
</div>
|
color: #263238;
|
||||||
<div class="col-md-6 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
box-shadow:
|
||||||
<div class="theme-search-area-section-inner">
|
0 20px 60px rgba(0,0,0,.25);
|
||||||
<i class="theme-search-area-section-icon lin lin-location-pin"></i>
|
|
||||||
<input class="theme-search-area-section-input typeahead" type="text" placeholder="مقصد" data-provide="typeahead">
|
}
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
.flight-search-header {
|
||||||
</div>
|
|
||||||
</div>
|
display: flex;
|
||||||
<div class="col-md-2 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
justify-content: space-between;
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
align-items: center;
|
||||||
<input class="theme-search-area-section-input datePickerStart _mob-h" value="تاریخ رفت" id="data-car" type="text" placeholder="تاریخ رفت" data-jdp>
|
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ" type="text" data-jdp>
|
margin-bottom: 25px;
|
||||||
</div>
|
|
||||||
</div>
|
}
|
||||||
</div>
|
|
||||||
<div class="col-md-2 ">
|
.flight-search-header h3 {
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
margin: 0 0 5px;
|
||||||
<div class="theme-search-area-section-inner">
|
}
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
|
||||||
<input class="theme-search-area-section-input datePickerEnd _mob-h" type="text" placeholder="تاریخ برگشت" data-jdp>
|
.flight-search-header span {
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ برگشت" type="text" data-jdp>
|
color: #78909c;
|
||||||
</div>
|
|
||||||
</div>
|
font-size: 13px;
|
||||||
</div>
|
}
|
||||||
<div class="col-md-1 ">
|
|
||||||
<button class="theme-search-area-submit _mt-0 theme-search-area-submit-no-border theme-search-area-submit-curved">جستجو</button>
|
|
||||||
</div>
|
.flight-type {
|
||||||
</div>
|
|
||||||
</div>
|
display: flex;
|
||||||
<div class="theme-search-area-options _mob-h theme-search-area-options-white theme-search-area-options-dot-primary-inverse clearfix">
|
|
||||||
<div class="btn-group theme-search-area-options-list" data-toggle="buttons">
|
gap: 20px;
|
||||||
<label class="btn btn-primary active">
|
|
||||||
<input type="radio" name="car-options" id="car-option-1" checked=""> هرجایی
|
font-size: 14px;
|
||||||
</label>
|
}
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="car-options" id="car-option-2">کوپه
|
|
||||||
</label>
|
.flight-fields {
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="car-options" id="car-option-3">هاچ بک
|
display: grid;
|
||||||
</label>
|
|
||||||
<label class="btn btn-primary">
|
grid-template-columns:
|
||||||
<input type="radio" name="car-options" id="car-option-4">ماشین شاسی بلند
|
repeat(3, 1fr);
|
||||||
</label>
|
|
||||||
<label class="btn btn-primary">
|
gap: 18px;
|
||||||
<input type="radio" name="car-options" id="car-option-5"> سواری
|
|
||||||
</label>
|
}
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="car-options" id="car-option-6"> خارجی
|
|
||||||
</label>
|
.flight-field label {
|
||||||
</div>
|
|
||||||
</div>
|
display: block;
|
||||||
</div>
|
|
||||||
</div>
|
margin-bottom: 8px;
|
||||||
<div class="tab-pane" id="SearchAreaTabs-5" role="tab-panel">
|
|
||||||
<div class="theme-search-area theme-search-area-stacked">
|
font-size: 13px;
|
||||||
<div class="theme-search-area-form">
|
|
||||||
<div class="row" data-gutter="none">
|
font-weight: 600;
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="theme-search-area-section first theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
}
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-location-pin"></i>
|
|
||||||
<input class="theme-search-area-section-input typeahead" type="text" placeholder="مقصد" data-provide="typeahead">
|
.flight-field select,
|
||||||
</div>
|
.flight-field input {
|
||||||
</div>
|
|
||||||
</div>
|
width: 100%;
|
||||||
<div class="col-md-7 ">
|
|
||||||
<div class="row" data-gutter="none">
|
height: 50px;
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
padding: 0 12px;
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
border: 1px solid #e0e6ed;
|
||||||
<input class="theme-search-area-section-input datePickerStart _mob-h" value="تاریخ رفت" id="date-exp" type="text" placeholder="تاریخ رفت" data-jdp>
|
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ" type="text" data-jdp>
|
border-radius: 9px;
|
||||||
</div>
|
|
||||||
</div>
|
background: #f8fafc;
|
||||||
</div>
|
|
||||||
<div class="col-md-4 ">
|
outline: none;
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr">
|
|
||||||
<div class="theme-search-area-section-inner">
|
}
|
||||||
<i class="theme-search-area-section-icon lin lin-calendar"></i>
|
|
||||||
<input class="theme-search-area-section-input datePickerEnd _mob-h" type="text" placeholder="تاریخ برگشت" id="exo-date-back">
|
|
||||||
<input class="theme-search-area-section-input _desk-h mobile-picker" value="تاریخ برگشت" type="text" data-jdp>
|
.flight-field select:focus,
|
||||||
</div>
|
.flight-field input:focus {
|
||||||
</div>
|
|
||||||
</div>
|
border-color: #1976d2;
|
||||||
<div class="col-md-4 ">
|
|
||||||
<div class="theme-search-area-section theme-search-area-section-curved theme-search-area-section-bg-white theme-search-area-section-no-border theme-search-area-section-mr quantity-selector" data-increment="مهمان">
|
background: #fff;
|
||||||
<div class="theme-search-area-section-inner">
|
|
||||||
<i class="theme-search-area-section-icon lin lin-people"></i>
|
}
|
||||||
<input class="theme-search-area-section-input" value="2 مهمان" type="text">
|
|
||||||
<div class="quantity-selector-box" id="ExpSearch مهمان">
|
|
||||||
<div class="quantity-selector-inner">
|
.flight-button-wrapper {
|
||||||
<p class="quantity-selector-title">مهمان</p>
|
|
||||||
<ul class="quantity-selector-controls">
|
display: flex;
|
||||||
<li class="quantity-selector-decrement">
|
|
||||||
<a href="#">-</a>
|
align-items: end;
|
||||||
</li>
|
|
||||||
<li class="quantity-selector-current">1</li>
|
}
|
||||||
<li class="quantity-selector-increment">
|
|
||||||
<a href="#">+</a>
|
|
||||||
</li>
|
.flight-search-button {
|
||||||
</ul>
|
|
||||||
</div>
|
width: 100%;
|
||||||
</div>
|
|
||||||
</div>
|
height: 50px;
|
||||||
</div>
|
|
||||||
</div>
|
border: none;
|
||||||
</div>
|
|
||||||
</div>
|
border-radius: 9px;
|
||||||
<div class="col-md-1 ">
|
|
||||||
<button class="theme-search-area-submit _mt-0 theme-search-area-submit-no-border theme-search-area-submit-curved">جستجو</button>
|
background: #1976d2;
|
||||||
</div>
|
|
||||||
</div>
|
color: #fff;
|
||||||
</div>
|
|
||||||
<div class="theme-search-area-options _mob-h theme-search-area-options-white theme-search-area-options-dot-primary-inverse clearfix">
|
font-weight: 700;
|
||||||
<div class="btn-group theme-search-area-options-list" data-toggle="buttons">
|
|
||||||
<label class="btn btn-primary active">
|
cursor: pointer;
|
||||||
<input type="radio" name="exp-options" id="exp-option-1" checked=""> هرجایی
|
|
||||||
</label>
|
}
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="exp-options" id="exp-option-2">تجربیات
|
|
||||||
</label>
|
.flight-search-button:hover {
|
||||||
<label class="btn btn-primary">
|
|
||||||
<input type="radio" name="exp-options" id="exp-option-3">غوطه ور شدن
|
background: #125ca8;
|
||||||
</label>
|
|
||||||
</div>
|
}
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
@media (max-width: 768px) {
|
||||||
</div>
|
|
||||||
</div>
|
.flight-hero {
|
||||||
</div>
|
padding: 60px 15px 70px;
|
||||||
</div>
|
}
|
||||||
</div>
|
|
||||||
</div>
|
.flight-hero h1 {
|
||||||
</div>
|
font-size: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flight-search-header {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flight-fields {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$('#origin_province').on('change', function(){
|
||||||
|
|
||||||
|
let provinceId = $(this).val();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
|
||||||
|
url: '/users/cities/' + provinceId,
|
||||||
|
|
||||||
|
type:'GET',
|
||||||
|
|
||||||
|
success:function(data){
|
||||||
|
|
||||||
|
$('#origin_city').html('');
|
||||||
|
|
||||||
|
$.each(data,function(key,value){
|
||||||
|
|
||||||
|
$('#origin_city').append(
|
||||||
|
`<option value="${value.id}">
|
||||||
|
${value.name}
|
||||||
|
</option>`
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ use App\Http\Controllers\CityController;
|
|||||||
use App\Http\Controllers\CommentController;
|
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\FlightController;
|
||||||
use App\Http\Controllers\HomeController;
|
use App\Http\Controllers\HomeController;
|
||||||
use App\Http\Controllers\ProfileController;
|
use App\Http\Controllers\ProfileController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
@@ -12,6 +13,12 @@ use Illuminate\Support\Facades\Route;
|
|||||||
Route::get('/', [HomeController::class,'index'])
|
Route::get('/', [HomeController::class,'index'])
|
||||||
->name('index');
|
->name('index');
|
||||||
|
|
||||||
|
Route::get('/flights/search', [FlightController::class, 'search'])
|
||||||
|
->name('flights.search');
|
||||||
|
|
||||||
|
Route::get('/flights/archive', [FlightController::class, 'archive'])
|
||||||
|
->name('flights.archive');
|
||||||
|
|
||||||
Route::prefix('users')->name('users.')->middleware('auth:web')->group(function (){
|
Route::prefix('users')->name('users.')->middleware('auth:web')->group(function (){
|
||||||
Route::get('/',[DashboardController::class,'index'])->name('dashboard');
|
Route::get('/',[DashboardController::class,'index'])->name('dashboard');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user