0.0.133 search routes

This commit is contained in:
SBD
2025-01-25 00:50:06 +03:00
parent b5155e7ce2
commit 56bcd5bee9
5 changed files with 29 additions and 7 deletions

View File

@@ -1,7 +1,9 @@
function searchRoutes (form) {
event.preventDefault()
let $filter_form = $('.b_filter_routes form')[0];
let formData = getFormData(form);
formData = getFormData($filter_form, formData);
formData.append('owner_type', 'mover');
let request = new api({

View File

@@ -8,9 +8,8 @@ function chooseCheckbox(el) {
$checkbox.classList.toggle("checked");
}
function getFormData(form) {
function getFormData(form, formData=new FormData()) {
if (!form) return;
let formData = new FormData();
let default_element_types = ['input', 'textarea', 'date'];
let form_elements = getFormElements(form);
@@ -52,8 +51,24 @@ function addCustomDataToFormData(el, formData) {
case 'checkbox':
let $checkbox = el.querySelector('.checkbox');
let c_value = $checkbox.classList.contains('checked');
if ($checkbox.dataset.value) c_value = $checkbox.dataset.value;
formData.append(name, c_value);
if ($checkbox.classList.contains('checked')){
if (formData.get(name) || formData.get(name) === false){
let previos_val = formData.get(name);
formData.delete(name);
formData.set(name, previos_val + "," + c_value);
break;
}
}
if (typeof c_value === 'string'){
if ($checkbox.classList.contains('checked')){
formData.append(name, c_value);
break;
}
} else {
formData.append(name, c_value);
}
break;
case 'radio':
@@ -75,6 +90,11 @@ function addCustomDataToFormData(el, formData) {
formData.append(name, l_value);
break;
case 'select':
let $select = el.querySelector('select');
if (!$select) return;
formData.append(name, $select.value);
}
return formData;
}

View File

@@ -7,12 +7,12 @@
<form name="filter_routes">
<div class="label" style="margin-bottom: 16px;">{% trans "Способ перевозки" %}</div>
<div class="field_container line" data-type="checkbox" data-name="type_transport">
<div class="checkbox{% if route_form.initial.type_transport %} checked{% endif %}" onclick="chooseCheckbox(this)"></div>
<div class="checkbox{% if route_form.initial.type_transport %} checked{% endif %}" data-value="road" onclick="chooseCheckbox(this)"></div>
<div class="checkbox_label" onclick="chooseCheckbox(this)">{% trans "Автоперевозка" %}</div>
{% if route_form.errors.type_transport %}<div class="error_container">{{ route_form.errors.type_transport.0 }}</div>{% endif %}
</div>
<div class="field_container line" data-type="checkbox" data-name="type_transport">
<div class="checkbox{% if route_form.initial.type_transport %} checked{% endif %}" onclick="chooseCheckbox(this)"></div>
<div class="checkbox{% if route_form.initial.type_transport %} checked{% endif %}" data-value="avia" onclick="chooseCheckbox(this)"></div>
<div class="checkbox_label" onclick="chooseCheckbox(this)">{% trans "Авиатранспорт" %}</div>
{% if route_form.errors.type_transport %}<div class="error_container">{{ route_form.errors.type_transport.0 }}</div>{% endif %}
</div>

View File

@@ -27,7 +27,7 @@
</div>
<div class="route_card_info_data mobile">
<img class="route_card_text_img" src="{% static "v2/icons/widgets/w_route_card/route_card_avatar_spline.svg" %}">
<img class="route_card_owner_avatar" src="{{ route.owner.user_profile.avatar.url }}">
<img class="route_card_owner_avatar" src="{% if route.owner.user_profile.avatar %}{{ route.owner.user_profile.avatar.url }}{% endif %}">
<div class="route_card_owner_info">
<div class="route_card_info_left_part">
<div class="card_owner_type {{ route.owner_type }}">{% if route.owner_type == 'customer' %}{% trans "Нужен перевозчик" %}{% else %}{% trans "Могу перевезти" %}{% endif %}</div>

View File

@@ -35,7 +35,7 @@
</div>
<div class="route_card_info_data mobile">
<img class="route_card_text_img" src="{% static "v2/icons/widgets/w_route_card/route_card_avatar_spline.svg" %}">
<img class="route_card_owner_avatar" src="{{ route.owner.user_profile.avatar.url }}">
<img class="route_card_owner_avatar" src="{% if route.owner.user_profile.avatar %}{{ route.owner.user_profile.avatar.url }}{% endif %}">
<div class="route_card_owner_info">
<div class="route_card_info_left_part">
<div class="card_owner_type {{ route.owner_type }}">{% if route.owner_type == 'customer' %}{% trans "Нужен перевозчик" %}{% else %}{% trans "Могу перевезти" %}{% endif %}</div>