128 lines
4.6 KiB
JavaScript
128 lines
4.6 KiB
JavaScript
var listener = 0
|
|
var cur_el_ins = null
|
|
|
|
function focus_el_ins (el) {
|
|
if (el.value.length > 0) {
|
|
cur_el_ins = el
|
|
}
|
|
}
|
|
|
|
|
|
function searchTown(el){
|
|
|
|
// document.getElementById('id_from_address_point_txt').style.background = 'white url("/static/img/svg/loader.svg") no-repeat calc(100% - 15px) center';
|
|
// document.getElementById('id_to_address_point_txt').style.background = 'white url("/static/img/svg/loader.svg") no-repeat calc(100% - 15px) center';
|
|
|
|
if(el.value.length >= 3){
|
|
let timer = null
|
|
if (timer) {
|
|
clearTimeout(timer);
|
|
}
|
|
let element = el
|
|
timer = setTimeout(function(){
|
|
|
|
timer = null;
|
|
// let form = el.form;
|
|
let type_transport = 'road';
|
|
let search_str = el.value;
|
|
let get_address_point = new Object({type_transport, search_str});
|
|
get_address_point['ctrl_name'] = "govno"
|
|
get_address_point['for_filter'] = true
|
|
|
|
$.ajax({
|
|
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
|
|
url: '/ru/reference_data/get_address_point/',
|
|
type: "POST",
|
|
// async: true,
|
|
cache: false,
|
|
processData: false,
|
|
contentType: false,
|
|
// enctype: 'json',
|
|
data: JSON.stringify(get_address_point),
|
|
success: function(data){
|
|
// document.getElementById('id_from_address_point_txt').style.background = 'white url("/static/img/png/icon-arrow.svg") no-repeat calc(100% - 15px) center';
|
|
// document.getElementById('id_to_address_point_txt').style.background = 'white url("/static/img/png/icon-arrow.svg") no-repeat calc(100% - 15px) center';
|
|
|
|
|
|
getNewMessageSession()
|
|
let insert_place_1 = element.nextSibling
|
|
let insert_place_2 = insert_place_1.nextSibling
|
|
let insert_place = insert_place_2.nextSibling
|
|
if (data.res_search_list !== null || data.res_search_list !== ""){
|
|
insert_place.innerHTML = data.res_search_list
|
|
insert_place.nextSibling.classList.add("show")
|
|
} else {
|
|
if (insert_place.classList.contains("show")){
|
|
insert_place.classList.remove("show")
|
|
}
|
|
}
|
|
listener = 0
|
|
// return insertSearchList(data, el.name + '_list');
|
|
|
|
},
|
|
error: function (data){
|
|
|
|
console.log('Error')
|
|
listener = 1
|
|
|
|
}
|
|
});
|
|
}, 1500);
|
|
}
|
|
|
|
}
|
|
|
|
function show_list_w_places (el){
|
|
let value = el.value
|
|
if (value.length > 0){
|
|
if (listener === 0){
|
|
let listener_ev = document.querySelector("body")
|
|
listener_ev.setAttribute('onclick',"listen_body(event)")
|
|
}
|
|
}
|
|
}
|
|
|
|
function listen_body (event){
|
|
let input_1 = document.querySelector("#inp_form_find_route_w_abbreviation_1")
|
|
let input_2 = document.querySelector("#inp_form_find_route_w_abbreviation_2")
|
|
let place_1 = document.querySelectorAll(".insert-airports-place")[0]
|
|
let place_2 = document.querySelectorAll(".insert-airports-place")[1]
|
|
let list_els = [input_1,input_2,place_1,place_2]
|
|
let i = 0
|
|
let true_ev = false
|
|
list_els.map(function (){
|
|
if (event.target.id === list_els[i].id){
|
|
console.log("true")
|
|
true_ev = true
|
|
if (cur_el_ins !== event.target){
|
|
let cur_el_insert_1 = event.target.nextSibling
|
|
let cur_el_insert_2 = cur_el_insert_1.nextSibling
|
|
let cur_el_insert_3 = cur_el_insert_2.nextSibling
|
|
let cur_el_insert = cur_el_insert_3.nextSibling
|
|
if (cur_el_insert.classList.contains("show")) {
|
|
cur_el_insert.classList.remove("show")
|
|
}
|
|
}
|
|
}
|
|
i++
|
|
})
|
|
|
|
if (true_ev === false) {
|
|
if (input_1.focus() === true){
|
|
if (place_1.classList.contains("show")){
|
|
place_1.remove("show")
|
|
listener++
|
|
}
|
|
} else if (input_2.focus === true){
|
|
if (place_2.classList.contains("show")){
|
|
place_2.remove("show")
|
|
listener++
|
|
}
|
|
} else {
|
|
console.log("error")
|
|
}
|
|
}
|
|
|
|
}
|
|
|