Files
tripwithbonus/static/js/check_new_messages.js
2023-08-11 14:22:57 +03:00

177 lines
5.2 KiB
JavaScript

window.onload = function () {
funcFocus()
}
//
// document.querySelector(".enter-message-inp").onload(
// funcFocus()
// )
function funcFocus(){
let inp = document.querySelector(".enter-message-inp")
if (inp !== null){
inp.focus()
}
}
var check_msg = null
var it = 0
// function initial_function (){
// var it_set_func = 0
// var it_func = 0
// check_new_messages_timeout(60000,it_set_func,it_func)
// }
function check_new_messages_timeout(timeout_time=1000){
let window = document.querySelector(".container-messages")
// if (window !== null){
//
//
// }
// if (it_set_func === 0){
// // clearInterval(check_msg)
// if (window === null){
// it_set_func++
// check_new_messages_timeout(60000,it_set_func,it_func)
// } else {
// let new_timeout_time = 1000
// it_set_func++
// check_new_messages_timeout(new_timeout_time,it_set_func,it_func)
// }
//
// }
check_msg = setInterval(function () {
// let new_message = getNewMessageSession()
// let user_online = userOnline('set')
window = document.querySelector(".container-messages")
if (window === null){
// let new_timeout_time = 60000
//
// check_new_messages_timeout(new_timeout_time,it_set_func,it_func)
} else {
// if (it_func === 0){
// let new_timeout_time = 1000
// it_func++
// check_new_messages_timeout(new_timeout_time,it_set_func,it_func)
// }
check_new_messages(window)
}
},
timeout_time)
}
var data_new_messages = null
function check_new_messages (window){
// if (it === 0){
let data_set = document.querySelector(".container-messages").dataset
let sender = data_set['userId'];
let receiver = data_set['curReceiver'];
let ticket_id = data_set['ticketId'];
data_new_messages = {
'sender': sender,
'receiver': receiver,
'ticket_id': ticket_id
// 'last_message_modifiteDT':last_message_time
}
// }
// let user_online_check = document.addEventListener("mouseover");
let last_message_time = document.querySelector(".date_n_time_last_message")
if (last_message_time === null){
//
} else {
data_new_messages.last_message_modifiedDT = last_message_time.dataset['modifieddt']
}
$.ajax({
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
url: '/ru/messages/update_chat/',
type: "POST",
// async: true,
cache: false,
processData: false,
contentType: false,
// enctype: 'json',
data: JSON.stringify(data_new_messages),
success: function(data){
success_check_new_messages(data)
},
error: function (data){
let request = document.querySelector(".info_profile")
if (request === undefined || window === null){
clearTimeout(check_msg)
} else {
request.innerHTML = data.responseJSON.html;
}
}
});
}
function success_check_new_messages (data) {
if (window === null){
clearTimeout(check_msg)
} else {
if (data.html) {
if (data_new_messages['ticket_id'] !== 'null') {
if (data.msgs_count > 1) {
document.querySelector(".container-messages").innerHTML = data.html;
} else {
document.querySelector(".info_profile").innerHTML = data.html;
}
} else {
document.querySelector(".container-messages").innerHTML = data.html;
}
}
if (data.users_list_html){
document.querySelector(".block-list-of-users").innerHTML = data.users_list_html.html;
}
}
if (data.required_beep === true){
const beep = new Audio('/static/sounds/beep_2.mp3')
beep.play()
}
if (data.users_list_html){
document.querySelector(".block-list-of-users").innerHTML = data.users_list_html
}
if (data.tickets_list_html){
document.querySelector(".block-list-of-users").innerHTML = data.tickets_list_html
}
// let updatedCookie = encodeURIComponent(name_cookie) + "=" + encodeURIComponent('');
// let search_cookie = document.cookie.match("(^|[^;]+)\s*" + name_cookie + "\s*=\s*([^;]+)")[0].substring(1)
// let search_cookie = getCookieValue('user_alerts')
// document.cookie = document.cookie.replace(search_cookie,name_cookie + "=")
// document.cookie = updatedCookie
// document.cookie = document.cookie.slice(0,-26)
// document.cookie = document.cookie.replace('user_alerts="{\"new_message\": true}"','user_alerts=;')
}
function userOnline (set=null,check=null) {
let user_online = null
if (set !== null){
user_online = navigator.userActivation.isActive || navigator.userActivation.hasBeenActive === true;
sessionStorage.setItem('online',user_online)
} else if (check !== null){
user_online = navigator.userActivation.isActive || navigator.userActivation.hasBeenActive === true;
sessionStorage.getItem('online')
}
return user_online
}