Files
tripwithbonus/static/v2/js/widgets/w_route_card.js
2025-01-24 21:43:03 +03:00

128 lines
3.7 KiB
JavaScript

function changeRoute(el) {
if (!el) return;
let $parent = el.closest(".w_route_card")
if (!$parent) return;
let data = {
'route_id': $parent.dataset.route_id,
'owner_type': $parent.dataset.owner_type,
}
let request = new api({
url: '/routes/edit_route/',
data: data,
data_type: 'json',
success: (res) => {
if (!res.html) return;
$(".info_profile")[0].innerHTML = res.html;
}, error: (res) => {
}
});
request.ajaxRequest()
}
function deleteRoute(el) {
if (!el) return;
let $parent = el.closest(".w_route_card")
if (!$parent) return;
let data = {
'route_id': $parent.dataset.route_id,
'owner_type': $parent.dataset.owner_type,
}
let request = new api({
url: '/routes/del_route/',
data: data,
data_type: 'json',
success: (res) => {
$parent.remove()
}, error: (res) => {
}
});
request.ajaxRequest()
}
function raiseRoute(el) {
if (!el || el.dataset.actions_count === '0') return;
let $parent = el.closest(".w_route_card")
if (!$parent) return;
let data = {
'route_id': $parent.dataset.route_id,
'owner_type': $parent.dataset.owner_type,
}
let request = new api({
url: '/routes/raise_route/',
data: data,
data_type: 'json',
success: (res) => {
window.scrollTo(0, 0);
let $parent_list = $parent.closest('.b_my_routes').children
$($parent).insertBefore($($parent_list[0]))
if ($parent.dataset.owner_type === 'mover'){
$($parent).css('--route-card-box_shadow', '0 -1px 10px rgb(62 205 5 / 36%), -1px 4px 10px rgba(198, 199, 203, 0.2)')
} else {
$($parent).css('--route-card-box_shadow', '0 -1px 10px rgb(5 74 205 / 36%), -1px 4px 10px rgba(198, 199, 203, 0.2)')
}
let timeout = setTimeout(() =>{
$($parent).css('--route-card-box_shadow', '0 -1px 10px rgba(198, 199, 203, 0.2), -1px 4px 10px rgba(198, 199, 203, 0.2)');
clearTimeout(timeout);
}, 1000)
$('.route_btn[data-action="raise"]').each((i, el) => {
el.dataset.actions_count = res.remains_route_rising_count;
el.querySelector('.route_btn_data').innerHTML = el.querySelector('.route_btn_data').innerHTML.split(':')[0] + `: ${res.remains_route_rising_count}`;
})
}, error: (res) => {
}
});
request.ajaxRequest()
}
function highlightRoute(el) {
if (!el || el.dataset.actions_count === '0') return;
let $parent = el.closest(".w_route_card")
if (!$parent) return;
let data = {
'route_id': $parent.dataset.route_id,
'owner_type': $parent.dataset.owner_type,
}
let request = new api({
url: '/routes/highlight_route/',
data: data,
data_type: 'json',
success: (res) => {
$parent.classList.add('highlighted');
$('.route_btn[data-action="highlight"]').each((i, el) => {
el.dataset.actions_count = res.remains_route_highlight_count;
el.querySelector('.route_btn_data').innerHTML = el.querySelector('.route_btn_data').innerHTML.split(':')[0] + `: ${res.remains_route_highlight_count}`;
})
}, error: (res) => {
}
});
request.ajaxRequest()
}
function respondBtnClickEvent(el) {
if (!el) return;
let $parent = el.closest(".route_card_owner_info")
let $responde_cont = $parent.querySelector(".respond_route_cont")
$(el).fadeOut(500);
sleep(500).then(() => {
$($responde_cont).fadeIn(500);
})
}