pipicar/modules/main/views/main.blade.php

242 lines
13 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<div class="container text-center my-3 main-page">
<div class="main-page-header">
<p class="top-title">Доступные автомобили</p>
<p class="title">Выберите лучший автомобиль</p>
</div>
<div class="container my-4">
<div class="row">
<div class="col-12 col-md-3 card-catalog-left-container">
<div class="text-end">
<button class="btn btn-outline" id="toggleFilterBtn">
<i class="bi bi-filter-right" style="vertical-align: -.1em;"></i>@lang('Фильтр')
</button>
</div>
<div class="card card-catalog-left-filter collapsible collapsed" id="filterCard">
<div class="card-body">
{{-- Дата начала --}}
<form method="GET" id="filter">
<div class="form-group mb-3 pb-4 d-flex flex-column justify-content-around align-content-center">
<label class="form-label d-block">Даты аренды</label>
<div class="d-flex flex-row justify-content-around align-content-center">
<input type="text"
class="form-control"
name="started_at"
id="started_at"
autocomplete="off"
inputmode="numeric"
pattern="\d{2}\.\d{2}\.\d{4}"
placeholder="дд.мм.гггг"
value="{{ request('started_at') }}"
style="max-width: 120px">
<span class="separator"></span>
<input type="text"
class="form-control"
name="ended_at"
id="ended_at"
autocomplete="off"
inputmode="numeric"
pattern="\d{2}\.\d{2}\.\d{4}"
placeholder="дд.мм.гггг"
value="{{ request('ended_at') }}"
style="max-width: 120px">
</div>
</div>
{{-- Класс авто --}}
<div class="mb-3 pb-4">
<label class="form-label d-block">Класс авто</label>
<div class="btn-group" role="group" aria-label="Класс">
<input type="checkbox" class="btn-check" name="class_filters[]" value="Эконом" id="class_option1" {{ in_array('Эконом', (array) request('class_filters')) ? 'checked' : '' }}>
<label class="btn btn-outline-primary" for="class_option1">Эконом</label>
<input type="checkbox" class="btn-check" name="class_filters[]" value="Средний" id="class_option2" {{ in_array('Средний', (array) request('class_filters')) ? 'checked' : '' }}>
<label class="btn btn-outline-primary" for="class_option2">Средний</label>
<input type="checkbox" class="btn-check" name="class_filters[]" value="Бизнес" id="class_option3" {{ in_array('Бизнес', (array) request('class_filters')) ? 'checked' : '' }}>
<label class="btn btn-outline-primary" for="class_option3">Бизнес</label>
</div>
</div>
{{-- Тип кузова --}}
<div class="mb-3 pb-4">
<label class="form-label d-block">Тип кузова</label>
<div class="btn-group" role="group" aria-label="Кузов">
<input type="checkbox" class="btn-check" name="bodywork_filters[]" value="Седан" id="bodywork_option1" {{ in_array('Седан', (array) request('bodywork_filters')) ? 'checked' : '' }}>
<label class="btn btn-outline-primary" for="bodywork_option1">Седан</label>
<input type="checkbox" class="btn-check" name="bodywork_filters[]" value="Кроссовер" id="bodywork_option2" {{ in_array('Кроссовер', (array) request('bodywork_filters')) ? 'checked' : '' }}>
<label class="btn btn-outline-primary" for="bodywork_option2">Кроссовер</label>
<input type="checkbox" class="btn-check" name="bodywork_filters[]" value="Внедорожник" id="bodywork_option3" {{ in_array('Внедорожник', (array) request('bodywork_filters')) ? 'checked' : '' }}>
<label class="btn btn-outline-primary" for="bodywork_option3">Внедорожник</label>
</div>
</div>
{{-- Кнопка --}}
<div class="filter-buttons d-flex" style="gap: 5px;">
<button type="submit" class="btn btn-danger w-100" id="filter_reset" onclick="resetForm()">
@lang('Сбросить')
</button>
<button type="submit" class="btn btn-success w-100">
@lang('Искать')
</button>
</div>
</form>
</div>
</div>
<div class="card card-catalog-left mt-4">
<div class="card-body">
<p class="title">Все предложения включают:</p>
<ul>
<li><i class="material-symbols-outlined">done</i>
<span>&nbsp;Бесплатное перебронирование и отмена</span></li>
<li><i class="material-symbols-outlined">done</i>
<span>&nbsp;Лимит пробега по городу 200 км</span></li>
<li><i class="material-symbols-outlined">done</i> <span>&nbsp;Страхование гражданской ответственности</span></li>
<li><i class="material-symbols-outlined">done</i> <span>&nbsp;Эконом класс</span></li>
<li><i class="material-symbols-outlined">done</i> <span>&nbsp;Депозит</span></li>
<li><i class="material-symbols-outlined">done</i>
<span>&nbsp;Межгород по дополнительным тарифам</span></li>
</ul>
</div>
</div>
<div class="card card-catalog-left2 mt-4">
<div class="card-body">
<p class="title">Другие условия:</p>
<p class="cr-item">Минимальный возраст водителя - 21 год</p>
<p class="cr-item">Минимальный срок владения водительскими правами - 2 года</p>
<p class="title m-0">Прочие условия:</p>
<a href="https://pcar.kz/#faq" target="_blank" class="btn-link">Условия аренды автомобиля</a>
</div>
</div>
</div>
<div class="col-12 col-md-9 mb-4 d-flex">
<div class="row custom-row w-100">
@php $carsValues = array_values($cars->toArray()); @endphp
@foreach($carsValues as $car)
<div class="col-12 col-md-6 mb-4">
<div class="car-card flex-grow-1">
<img class="img-fluid" src="{{ $car['photo'] ?? asset('img/default.png') }}" alt="Car Image">
<div class="title">{{ $car['brand'] . ' ' . $car['mark'] . ' - ' . $car['year'] }}</div>
<div class="card-car-chars">
<div class="add-li"><i class="material-symbols-outlined">ac_unit</i><p>&nbsp;Кондиционер</p></div>
<div class="add-li"><i class="material-symbols-outlined">auto_transmission</i><p>&nbsp;{{ $car['fuel_type'] }}</p></div>
<div class="add-li"><i class="material-symbols-outlined">groups</i><p>&nbsp;{{ $car['people'] }} мест</p></div>
</div>
<div class="car-card-footer">
<div class="cost">
<small>Базовая ставка</small>
<p class="m-0">@isset($car['tariffs'][0]['price']){{ $car['tariffs'][0]['price'] }} @endisset</p>
</div>
<a href="#" class="btn btn-primary">Арендовать</a>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
<script>
function debounce(func, wait) {
let timeout;
return function (...args) {
const context = this;
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(context, args), wait);
};
}
const datepickerConfig = {
buttons: ['today', 'clear'],
autoClose: true
};
const startedAtPicker = new AirDatepicker('#started_at', datepickerConfig);
const endedAtPicker = new AirDatepicker('#ended_at', datepickerConfig);
document.addEventListener('DOMContentLoaded', function () {
const toggleBtn = document.getElementById('toggleFilterBtn');
const filterCard = document.getElementById('filterCard');
// Инициализация состояния по localStorage
let isExpanded = localStorage.getItem('filterOpened') === 'true';
if (isExpanded) {
filterCard.classList.add('expanded');
filterCard.style.transition = 'max-height 1.2s ease, opacity 1.2s ease';
}
toggleBtn.addEventListener('click', function (e) {
e.preventDefault();
if (!filterCard.classList.contains('expanded')) {
filterCard.style.transition = 'max-height 1.2s ease, opacity 1.2s ease';
filterCard.classList.add('expanded');
isExpanded = true;
} else {
filterCard.style.transition = 'max-height 0.4s ease, opacity 0.4s ease';
filterCard.classList.remove('expanded');
isExpanded = false;
}
localStorage.setItem('filterOpened', isExpanded);
});
});
document.querySelectorAll('input[name="class_filters[]"]').forEach(checkbox => {
checkbox.addEventListener('click', function () {
if (this.checked) {
const wasChecked = this.dataset.checked === "true";
document.querySelectorAll('input[name="class_filters[]"]').forEach(cb => {
cb.checked = false;
cb.dataset.checked = "false";
});
if (!wasChecked) {
this.checked = true;
this.dataset.checked = "true";
}
} else {
this.dataset.checked = "false";
}
});
});
document.querySelectorAll('input[name="bodywork_filters[]"]').forEach(checkbox => {
checkbox.addEventListener('click', function () {
if (this.checked) {
const wasChecked = this.dataset.checked === "true";
document.querySelectorAll('input[name="bodywork_filters[]"]').forEach(cb => {
cb.checked = false;
cb.dataset.checked = "false";
});
if (!wasChecked) {
this.checked = true;
this.dataset.checked = "true";
}
} else {
this.dataset.checked = "false";
}
});
});
function resetForm() {
const form = document.getElementById('filter');
form.querySelectorAll('input').forEach(input => {
if (input.type === 'checkbox' || input.type === 'radio') {
input.checked = false;
} else {
input.value = '';
}
});
window.location.href = window.location.origin + window.location.pathname;
}
</script>