Files
tripwithbonus/static/js/check_new_messages.js
2023-08-08 18:48:30 +03:00

112 lines
2.8 KiB
JavaScript

$(document).ready(
check_new_messages_timeout()
)
var check_msg = null
var it = 0
function check_new_messages_timeout(){
let window = document.querySelector(".container-messages")
if (window !== null){
}
check_msg = setInterval(function () {
window = document.querySelector(".container-messages")
if (window === null){
//
} else {
it = 0
check_new_messages(window,it)
}
},
1000)
}
var data_new_messages = null
function check_new_messages (window,it){
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").innerHTML = data.responseJSON.html;
if (request === undefined || window === null){
clearTimeout(check_msg)
}
}
});
}
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.upd_right_panel === true){
document.querySelector(".block-list-of-users")
}
}
if (data.required_beep === true){
const beep = new Audio('/static/sounds/beep_2.mp3')
beep.play()
}
}