Files
account_store/static/js/user_profile.js

866 lines
24 KiB
JavaScript

// function writeMessage(el){
// $.ajax({
// headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
// url: '/user_account/chats/',
// type: "POST",
// // async: true,
// cache: false,
// processData: false,
// contentType: false,
// // enctype: 'json',
// // data: formData,
// success: function(data){
//
// // location.href = '/profile'
// document.querySelector(".info_profile").innerHTML = data.html;
//
// let list_div = document.querySelectorAll('.menu_profile div');
// list_div.forEach(el=>{ el.classList.remove('selected'); });
// el.classList.add('selected')
// let body = document.querySelector("body")
// body.style.overflow = "hidden"
// //updating the url without reloading
// window.history.pushState(null, null, '/ru/profile/page/chat/')
// middleWareJS()
//
// },
// error: function (data, exception){
// console.log(400)
//
// }
// });
// }
//
//
// function technicalSupport(el){
// $.ajax({
// headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
// url: '/user_account/support_tickets/',
// type: "POST",
// // async: true,
// cache: false,
// processData: false,
// contentType: false,
// // enctype: 'json',
// // data: formData,
// success: function(data){
//
//
// // location.href = '/profile'
// document.querySelector(".info_profile").innerHTML = data.html;
//
// let list_div = document.querySelectorAll('.menu_profile div');
// list_div.forEach(el=>{ el.classList.remove('selected'); });
// el.classList.add('selected')
//
// //updating the url without reloading
// window.history.pushState(null, null, '/ru/profile/page/support/')
// middleWareJS()
//
// },
// error: function (data, exception){
// console.log(400)
//
// }
// });
// }
// function mySubscription(el){
// // boris changed
// $.ajax({
// headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
// url: '/subscribes/show_cur_subscribe/',
// type: "POST",
// // async: true,
// cache: false,
// processData: false,
// contentType: false,
// // enctype: 'json',
// // data: formData,
// success: function(data){
//
// document.querySelector(".info_profile").innerHTML = data.html;
//
// // location.href = '/profile'
// // document.querySelector(".info_profile").innerHTML = data.html;
//
// let list_div = document.querySelectorAll('.menu_profile div');
// list_div.forEach(el=>{ el.classList.remove('selected'); });
// el.classList.add('selected')
//
// //updating the url without reloading
// window.history.pushState(null, null, '/ru/profile/page/my_subscribe/')
// middleWareJS()
//
// },
// error: function (data, exception){
// console.log(400)
//
// }
// });
// }
// function myProfile(el){
// $.ajax({
// headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
// url: '/user_account/change_profile/',
// type: "POST",
// // async: true,
// cache: false,
// processData: false,
// contentType: false,
// // enctype: 'json',
// // data: formData,
// success: function(data){
//
//
// // location.href = '/profile'
// document.querySelector(".info_profile").innerHTML = data.html;
//
// let list_div = document.querySelectorAll('.menu_profile div');
// list_div.forEach(el=>{ el.classList.remove('selected'); });
// el.classList.add('selected')
//
// //updating the url without reloading
// window.history.pushState(null, null, '/ru/profile/page/change_profile/')
// middleWareJS()
//
// },
// error: function (data, exception){
// console.log(400)
//
// }
// });
// }
// function selectMenuItem() {
// let list_div = document.querySelectorAll('.menu_profile div');
//
// list_div.forEach(item =>{
// item.addEventListener('click', (e) =>{
// list_div.forEach(el=>{ el.classList.remove('selected'); });
// item.classList.add('selected')
// })
// })
//
//
// }
function removeRoute(el) {
let data = el.currentTarget.closest('.carrier-card');
let remove_item = data.dataset.numberOfRoute
let remove_data = {}
let name_route = 'route_id'
remove_data[name_route] = remove_item
// console.log(remove_item)
$.ajax({
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
url: '/routes/del_route/',
type: "POST",
// async: true,
cache: false,
processData: false,
contentType: false,
// enctype: 'json',
data: JSON.stringify(remove_data) ,
success: function(data){
// location.href = '/profile'
document.querySelector(".info_profile").innerHTML = data.html;
// let list_div = document.querySelectorAll('.menu_profile div');
// list_div.forEach(el=>{ el.classList.remove('selected'); });
// el.classList.add('selected')
//updating the url without reloading
window.history.pushState(null, null, '/ru/profile/page/change_profile/')
middleWareJS()
},
error: function (data, exception){
console.log(400)
}
});
}
function cancelRemove() {
let parent_cancel_button = document.querySelector('.button_remove_route')
let cancel_button = document.querySelector('.cancel_remove')
parent_cancel_button.removeChild(cancel_button)
let remove_button = document.querySelector('.confirm_remove');
remove_button.classList.remove('confirm_remove');
remove_button.innerText = 'Удалить';
remove_button.setAttribute("id", "remove_route");
remove_button.removeEventListener('click', removeRoute);
}
function confirmRemove(el) {
el.setAttribute("id", "select-remove");
let btn = document.querySelector("#select-remove");
if (!btn.classList.contains('confirm_remove')) {
btn.classList.add('confirm_remove');
btn.innerText = 'Подтвердить удаление';
btn.addEventListener('click', removeRoute, { once: true });
let cancel_button = document.createElement('button');
cancel_button.className = "cancel_remove";
cancel_button.innerText = "Отменить удаление";
cancel_button.addEventListener('click', cancelRemove)
let place = btn.closest(".button_remove_route");
place.insertBefore(cancel_button, btn.nextSibling);
btn.removeAttribute( "select-remove");
}
}
function loader_place_ins_boris (el,type=null){
if (el){
let loader_place = document.querySelector(".abbreviation_airport_in_search")
let cur_loader_place = el.nextElementSibling
if (type){
cur_loader_place.innerHTML = ""
} else {
if (loader_place){
if (cur_loader_place.innerHTML === '<img src="/static/img/svg/loader.svg" style="height: 30px;padding-top: 17px;padding-left: 15px;">'){
cur_loader_place.innerHTML = ""
} else {
cur_loader_place.innerHTML = "<img src='/static/img/svg/loader.svg' style='height: 30px;padding-top: 17px;padding-left: 15px;'>"
}
}
}
changeWidthEL(el)
}
}
function searchTown(el){
if (el.value.length > 0){
el.style.background = 'white url("/static/img/svg/loader.svg") no-repeat calc(100% - 15px) center';
}else {
el.style.background = 'white url("/static/img/png/icon-arrow.svg") no-repeat calc(100% - 15px) center';
}
if(el.value.length>=3){
let timer = null
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function(){
loader_place_ins_boris(el)
timer = null;
let form = el.form;
let type_transport_el = form['type_transport'];
let type_transport = ""
if(type_transport_el){
type_transport = type_transport_el.value
}
let search_str = el.value;
let get_address_point = new Object({type_transport, search_str});
get_address_point['ctrl_name'] = el.name;
$.ajax({
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
url: '/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){
el.style.background = 'white url("/static/img/png/icon-arrow.svg") no-repeat calc(100% - 15px) center';
loader_place_ins_boris(el,"el")
return insertSearchList(data, el.name + '_list');
middleWareJS()
},
error: function (data){
console.log('Error')
}
});
}, 1500);
}
}
function selectItemAddrPoint(id, name, ctrl_name,){
let input_list = document.getElementsByName(ctrl_name + '_list')[0];
let tap_txt_cont = document.querySelector("#id_" + ctrl_name);
tap_txt_cont.value = name;
let tap_cont = document.querySelector("#id_" + ctrl_name.slice(0, -4));
tap_cont.value = id;
input_list.classList.remove('show');
}
function insertSearchList(data, ctrl_name) {
let input_list = document.getElementsByName(ctrl_name)[0];
let divs = data.res_search_list;
if (divs.length > 0) {
input_list.classList.add("show");
input_list.innerHTML = divs;
} else {
input_list.classList.remove("show");
}
}
function showSearchList(el) {
if(el.classList.contains('from_address_point_txt')){
let input_list = document.querySelectorAll('.input_list')
let value = input_list[0].classList.contains('show')
if(value === false && input_list[0].childElementCount > 0){
input_list[0].classList.add("show");
}
}else if (el.classList.contains('to_address_point_txt')) {
let input_list = document.querySelectorAll('.input_list')
let value = input_list[1].classList.contains('show')
if(value === false && input_list[1].childElementCount > 0){
input_list[1].classList.add("show");
}
}
}
function onblurInputField(event,el){
// if(el.classList.contains("from_country_container")){
let search_list = document.getElementsByName(el.name + '_list')[0];
let parent_event = $(event.explicitOriginalTarget).parents('.input_list' );
if(!parent_event || parent_event[0] !== search_list){
search_list.classList.remove('show')
}
// }
}
// function hideErrorMsg(el) {
// let hide_element = document.querySelector()
// if(el.value !== 0){
// hide_element.classList.add('hide')
// }
//
// }
function sliderInit() {
let $range = $("#id_weight"),
$input = $(".js-input"),
instance,
min = 0,
max = 1000,
start_value = document.querySelector(".range-slider").value;
$range.ionRangeSlider({
skin: "round",
type: "single",
min: min,
max: max,
from: start_value,
step: 1,
grid: true,
grid_num: 5,
onStart: function(data) {
if(data.from > 0){
$input.prop("value", data.from);
}
},
onChange: function(data) {
$input.prop("value", data.from);
}
});
instance = $range.data("ionRangeSlider");
$input.on("change keyup", function() {
let val = $(this).prop("value");
// validate
if (val < min) {
val = min;
} else if (val > max) {
val = max;
}
instance.update({
from: val
});
});
}
function sendRoute(el, routeID = null){
event.preventDefault()
el.disabled = true
let list_of_elements_form = document.querySelectorAll(".el_form_b_new_route");
let checked_cargo_type = document.querySelectorAll('.cargo_check');
let obj_w_el_form = {}
for (let n = 0;n < checked_cargo_type.length; n++){
let checked_cargo = checked_cargo_type[n]
if(checked_cargo.checked === true){
let name_cargo = checked_cargo.name
let value_cargo = checked_cargo_type[n].value
obj_w_el_form[name_cargo] = value_cargo
}
}
for (let i = 0; i < list_of_elements_form.length ;i++) {
// let id_el = list_of_elements_form[i].id
// if (id_el){
// if (id_el === "")
// }
let name_attr = list_of_elements_form[i].attributes["name"]
if (name_attr) {
let name_el = name_attr.value
let value_el = list_of_elements_form[i].value
obj_w_el_form[name_el] = value_el
}
}
let selected_owner_type = document.querySelectorAll("#customer, #mover")
selected_owner_type.forEach(function(item) {
if (item.classList.contains('selected')) {
let { id, innerText } = item
obj_w_el_form['owner_type'] = id
}
});
if (selected_owner_type[0].classList.contains('selected')){
}else{}
let url = '/routes/create_or_change_route/'
if (routeID !== null){
url = '/routes/change_route/' + routeID + '/'
}
$.ajax({
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
url: url,
type: "POST",
// async: true,
cache: false,
processData: false,
contentType: false,
// enctype: 'json',
data: JSON.stringify(obj_w_el_form),
success: function(data){
// location.href = '/profile'
document.querySelector(".info_profile").innerHTML = data.html
let el_route = document.querySelector(`[data-number-of-route="${routeID}"]`);
el_route.scrollIntoView(true);
// document.querySelector(".tab_user_messanger.select").scrollIntoView({behavior: "smooth",block:'nearest',inline:'nearest'});
let list_div = document.querySelectorAll('.menu_profile div');
let my_routes = document.getElementById("my_routes_id")
list_div.forEach(el=>{ el.classList.remove('selected'); });
my_routes.classList.add('selected')
middleWareJS()
},
error: function (data, exception){
document.querySelector(".info_profile").innerHTML = data.responseJSON.html;
// $(el).attr('disabled', 'false')
document.getElementById('id_type_transport').scrollIntoView({behavior: "smooth",block:'nearest',inline:'nearest'});
sliderInit();
}
});
}
function validate(el) {
if (el.checked) {
console.log('cheked', el.id);
} else {
console.log("You didn't check it! Let me check it for you.", el.id);
}
}
//cleaning route inputs after selection changes
function OnSelectionChange(el) {
event.preventDefault()
let form = el.form;
let formData = new FormData(form);
// let data = {};
// data['csrfmiddlewaretoken'] = $('input[name="csrfmiddlewaretoken"]')[0].value;
// data['type_transport'] = $('select[name="type_transport"]')[0].value;
$.ajax({
headers: {"X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val()},
url: '/user_account/new_route_view/',
type: "POST",
// async: true,
cache: false,
processData: false,
contentType: false,
// enctype: 'json',
// data: JSON.stringify(data),
data: formData,
success: function (data) {
console.log('data.html');
// location.href = '/profile'
document.querySelector(".info_profile").innerHTML = data.html
//
// let checkbox_width = document.querySelector('.checkbox_cargo_type');
// if(checkbox_width.childElementCount === 4){
// checkbox_width.classList.add('width')
// }
sliderInit();
init_arrival_DT()
init_departure_DT()
}
});
}
// function createRoute(el, owner_type){
// let obj = {
// 'owner_type': owner_type
// }
//
// $.ajax({
// headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
// url: '/user_account/new_route_view/',
// type: "POST",
// // async: true,
// cache: false,
// processData: false,
// contentType: false,
// // enctype: 'json',
// data: JSON.stringify(obj),
// success: function(data){
//
//
// // location.href = '/profile'
// document.querySelector(".info_profile").innerHTML = data.html
//
// let list_div = document.querySelectorAll('.menu_profile div');
// list_div.forEach(el=>{ el.classList.remove('selected'); });
// el.classList.add('selected')
//
// //updating the url without reloading
// if(el.id == 'customer'){
// window.history.pushState(null, null, '/ru/profile/page/create_route_for_customer/')
// } else {
// window.history.pushState(null, null, '/ru/profile/page/create_route_for_mover/')
// }
// middleWareJS()
//
//
//
// //get dynamic value
// // let fromCountry = document.getElementById('id_from_country');
// // let toCounytry = document.getElementById('id_to_country')
// //
// // toCounytry.oninput = function (){
// // console.log(toCounytry.value)
// // }
// // fromCountry.oninput = function (){
// // console.log(fromCountry.value)
// //
// // };
//
//
// },
// error: function (data, exception){
// console.log(101)
//
// }
// });
// }
// function getRoute(el){
// $.ajax({
// headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
// url: '/routes/get_routes/',
// type: "POST",
// // async: true,
// cache: false,
// processData: false,
// contentType: false,
// // enctype: 'json',
// // data: formData,
// success: function(data){
//
//
// // location.href = '/profile'
// document.querySelector(".info_profile").innerHTML = data.html;
//
// let list_div = document.querySelectorAll('.menu_profile div');
// list_div.forEach(el=>{ el.classList.remove('selected'); });
// el.classList.add('selected')
//
// window.history.pushState(null, null, '/ru/profile/page/my_routes/')
//
// middleWareJS()
//
// },
// error: function (data, exception){
// console.log(101)
//
// }
// });
// }
function editRoute(id) {
let route_obj = {
'route_id': id
}
$.ajax({
headers: {"X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val()},
url: '/routes/edit_route/',
type: "POST",
// async: true,
cache: false,
processData: false,
contentType: false,
// enctype: 'json',
data: JSON.stringify(route_obj),
success: function (data) {
// location.href = '/profile'
document.querySelector(".info_profile").innerHTML = data.html;
if(data.html){
let changeTextButton = document.getElementById('registration')
changeTextButton.innerText = 'Сохранить изменения'
}
init_departure_DT()
init_arrival_DT()
sliderInit();
},
error: function (data, exception) {
console.log(101)
}
});
}
function showMenu(el, event) {
let menu = document.querySelector('.dropdown-content');
if(menu.classList.contains('show')){
menu.classList.remove('show')
} else {
menu.classList.add('show')
}
}
function showLang(el) {
let lang = document.querySelector('.dropdown-content-lang');
if(lang.classList.contains('show')){
lang.classList.remove('show')
} else {
lang.classList.add('show')
}
}
// function hideMenu(event) {
// let menu = document.querySelector('.dropdown-content')
// if(event.currentTarget !== event.relatedTarget && event.relatedTarget != null){
// menu.classList.remove('show')
// }
//
// }
function checkDate() {
let dateDeparture = document.getElementById('id_departure_DT');
let dateArrival = document.getElementById('id_arrival_DT');
let DateStart = new Date(dateDeparture.value);
let DateEnd = new Date(dateArrival.value);
if (DateEnd < DateStart) {
// alert("End date cannot be less than Start date.");
dateArrival.value = ""
let arrivalDiv = document.getElementById('arrival_div')
let errorMessage = document.createElement('span');
errorMessage.textContent = "Дата прибытия, не может быть установлена раньше даты отправки"
errorMessage.classList.add('errorlist')
arrivalDiv.appendChild(errorMessage);
}
else if (DateEnd > DateStart){
let arrivalDiv = document.getElementById('arrival_div');
let errorMessage = document.querySelector('.errorlist');
arrivalDiv.removeChild((errorMessage))
}
}
function RequestCommercialOffer (el){
event.preventDefault()
let form = el.form;
let formData = new FormData(form);
$.ajax({
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
url: '/user_account/request_offer/',
type: "POST",
// async: true,
cache: false,
processData: false,
contentType: false,
// enctype: 'json',
data: formData,
success: function(data){
// location.href = '/profile'
},
error: function (data, exception){
// document.querySelector(".login").innerHTML = data.responseJSON.html
}
});
}
function counterText(evt) {
const counter = document.querySelector('.counter-text__current');
const maxlength = 360;
counter.textContent = evt.value.length;
}
function showTabBtn(el) {
let mover_info = document.getElementById('content-1')
let customer_info = document.getElementById('content-2')
let tab_btn_1 = document.querySelector('.tab-btn-1')
let tab_btn_2 = document.querySelector('.tab-btn-2')
if (el.classList.contains('tab-btn-1')){
mover_info.classList.add('show')
customer_info.classList.remove('show')
tab_btn_1.classList.add('tab-btn-active')
tab_btn_2.classList.remove('tab-btn-active')
} else if(el.classList.contains('tab-btn-2')){
customer_info.classList.add('show')
mover_info.classList.remove('show')
tab_btn_2.classList.add('tab-btn-active')
tab_btn_1.classList.remove('tab-btn-active')
}
}