function chooseCheckbox(el) { if (!el) return; let $parent = el.closest('.field_container'); let $checkbox = $parent.querySelector('.checkbox') $checkbox.classList.toggle("checked"); } function getFormData(form) { if (!form) return; let formData = new FormData(); let default_element_types = ['input', 'textarea', 'date']; let form_elements = getFormElements(form); if (!form_elements) return; for (let el of form_elements) { let $parent = el.closest('.field_container'); let field_type = '' if ($parent) field_type = $parent.dataset.type; let name = $parent ? $parent.dataset.name : ''; if (!name) name = el.name if (!name) name = el.dataset.name; let value = el.querySelector('input')? el.querySelector('input').value : '' if (!value && el.querySelector('textarea')) value = el.querySelector('textarea').value; if (field_type) { if (default_element_types.indexOf(field_type) > -1) { formData.append(name, value); } else if ($parent && !($parent.dataset.type in default_element_types)) { formData = addCustomDataToFormData($parent, formData) } } else { formData.append(name, value); } } return formData; } function getFormElements(form) { let form_elements = form.querySelectorAll('.field_container'); return form_elements; } function addCustomDataToFormData(el, formData) { let name = el.dataset.name; switch (el.dataset.type) { case 'checkbox': let $checkbox = el.querySelector('.checkbox'); let c_value = $checkbox.classList.contains('checked'); formData.append(name, c_value); break; case 'radio': let $radio = el.querySelector('.radio.checked'); if (!$radio){ formData.append(name, ''); break; } let r_value = $radio.closest(".cw_w_radio_inputs_radio_input").dataset.name; formData.append(name, r_value); break; case 'location': let $location = el.querySelector('input'); let l_value = $location.dataset.id; formData.append(name, l_value); break; } return formData; } function getCargoTypesWTypeTransport (data) { let type_transport = data.type_transport; let owner_type = data.owner_type; let success_callback = data.success_callback; let error_callback = data.error_callback; if (!owner_type) return; let request_data = { type_transport: type_transport, owner_type: owner_type, } let formData = dataToFormData(request_data); let request = new api({ url: '/routes/get_cargo_type_by_transport_type/', data: formData, data_type: 'formData', success: success_callback, error: error_callback, }) request.ajaxRequest() } function getFormOwnerType(el){ let form = el.closest('form'); let owner_type = form.dataset.owner_type; return owner_type; } function dataToFormData(data) { let formData = new FormData(); for (let key of Object.keys(data)) { formData.append(key, data[key]); } return formData; } function selectInputWContainer (el, callback) { if (!el) return; let $field = el.closest('.field_container'); if (!$field) return; let $input = $field.querySelector('input'); $input.focus() if (callback) callback(el); }