Files
tripwithbonus/static/js/chat_sockets.js
2024-02-21 15:10:34 +03:00

222 lines
8.2 KiB
JavaScript

function sendMessageSocket (data) {
if (chatSocket && chatSocket.readyState !== 0) {
if (chatSocket.readyState !== 1 && chatSocket.readyState !== 0){
init_ws()
}
loader_show_message(data)
chatSocket.send(JSON.stringify(data));
if (!data.ticket_id){
let el_tab = document.querySelector(".tab_user_messanger.select")
if (el_tab !== null){
el_tab.querySelector(".last-message-messenger-user-tab").innerHTML = data['text']
}
}
} else {
alert('Websoket connection failed')
}
}
function wsReceiveData (e) {
let old_item_tab_user_list = inital_old_tab()
let el_tab = old_item_tab_user_list[0]
let old_item_tab_user = old_item_tab_user_list[1]
let data = JSON.parse(e.data);
console.log('Data:', data);
console.log("return")
let msg_cont = document.querySelector(".container-messages")
if (data.type === 'chat') {
document.querySelector(".container-messages").innerHTML = data.html;
document.querySelector(".enter-message-inp").focus()
} else if (data.type === "echo") {
console.log(data)
} else if (data.type === "update_chat") {
let msg_cont = document.querySelector(".container-messages")
if (getInfoAboutUser('screen_width') < 800){
if (!window.location.href.includes("chat") && !window.location.href.includes("support")){
let marker_new_messages = document.querySelector(".marker_messages_mobile");
if (marker_new_messages.classList.contains('hide')){
marker_new_messages.classList.add('show')
marker_new_messages.classList.remove('hide')
}
setCokie(365,'twb_new_messages',true)
}
}
update_chat_html(data,msg_cont)
// document.querySelector(".tab_user_messanger.select").scrollIntoView({behavior: "smooth",block:'end',inline:'end'});
// update_tickets_w_manager(data,old_item_tab_user)
//
// update_tickets_wo_manager(data,old_item_tab_user)
update_tickets_operations_manager(el_tab,data,old_item_tab_user,'w')
update_tickets_operations_manager(el_tab,data,old_item_tab_user,null,'wo')
// if (){
if (data.group_name === "support_managers") {
let ticket_maneger = data.ticket_manager
if (ticket_maneger) {
let user_id = document.querySelector(".button_profile_header").dataset["userId"]
if (user_id) {
if (ticket_maneger.toString() !== user_id) {
clear_messenger()
} else {
}
}
else {
let user_id_inf_er = "Error user id is not defined"
console.log(user_id_inf_er)
// не найден user id
}
} else {
let error_ticket_manager = "Error ticket_manager is not defined"
console.log(error_ticket_manager)
}
} else {
// if (data.chat_html){
// if (msg_cont){
// if (msg_cont.dataset['curReceiver'] === data['sender'].toString() || msg_cont.dataset['curReceiver'] === data['receiver'].toString()) {
// msg_cont.innerHTML = data.chat_html
// }
// } else {
// let error_msg_cont = "Error msg_cont is not defined"
// console.log(error_msg_cont)
// }
if (data.support_chat_html){
let cont_mes_ins = document.querySelector(".info_profile")
if (cont_mes_ins){
cont_mes_ins.innerHTML = data.support_chat_html
} else {
let error_cont_mes_ins = "Error cont_mes_ins is not defined"
console.log(error_cont_mes_ins)
// не найден info profile
}
}
}
// }
// if
if (window.location.href.includes("chat")){
update_list_w_users(data,old_item_tab_user,el_tab)
}
} else if (data.type === "update_support_chat"){
update_support_chat_func(data,msg_cont)
}
if (data.unread_msgs_count > 0){
if (getInfoAboutUser('screen_width') < 800){
if (!window.location.href.includes("chat") && !window.location.href.includes("support")){
let marker_new_messages = document.querySelector(".marker_messages_mobile");
if (marker_new_messages.classList.contains('hide')){
marker_new_messages.classList.add('show')
marker_new_messages.classList.remove('hide')
}
setCokie(365,'twb_new_messages',true)
}
}
update_count_unread_messages(data)
}
if (data.required_beep === true) {
play_required_beep(data,beep)
}
loader_show_message(data)
loader_hide_message(data)
}
// function update_tickets_operations_manager (el_tab,data,old_item_tab_user,w=null,wo=null) {
// let insert_type = null
// if (w !== null){
// insert_type = 'data.tickets_w_manager_html'
// } else if (wo !== null){
// insert_type = 'data.tickets_wo_manager_html'
// }
// if (insert_type) {
// if (document.querySelector(".list_linked_tickets") !== null || document.querySelector(".list_unlinked_tickets") !== null) {
// document.querySelector(".list_unlinked_tickets").innerHTML = insert_type
// // if (el_tab !== null) {
// // let select_tab = document.querySelector(".tab_user_messanger.select")
// // if (select_tab) {
// // select_tab.classList.remove("select")
// // }
// // let old_insert_tab = document.querySelector(`[data-cur-receiver-item="${old_item_tab_user}"]`)
// // if (old_insert_tab) {
// // old_insert_tab.classList.add("select")
// // old_insert_tab.scrollIntoView({behavior: "smooth"});
// // }
// //
// // }
// // let container_messenger = document.querySelector(".container-messages")
// // if (container_messenger){
// // let dataset_cont_mes = container_messenger.dataset
// // if (dataset_cont_mes){
// // let ticket_id = dataset_cont_mes["ticketId"]
// // if (ticket_id !== ""){
// // let ticket = document.querySelector(`[data-cur-receiver-item="${ticket_id}"]`)
// // if (ticket === null){
// // let chat = document.querySelector(".block-chat").innerHTML = ""
// // }
// // }
// // }
// // }
// select_and_scroll_to_ticket(data,old_item_tab_user,el_tab)
// clear_messenger(data)
// }
//
// }
// }
// let url = `ws://localhost:8000/ws/socket-server/`;
//
// const chatSocket = new WebSocket(url);
//
// chatSocket.onmessage = function (e) {
// let data = JSON.parse(e.data)
// console.log('Data: ', data)
//
// if (data.type === 'chat') {
// // let messages = document.getElementById('messages')
// //
// // messages.insertAdjacentHTML('beforeend', `<div>
// // <p>${data.message}</p>
// // </div>`
// // )
// document.querySelector(".container-messages").innerHTML = data.html;
// document.querySelector(".enter-message-inp").focus()
// }
//
// }
// function send_ws_msg(data) {
// chatSocket.send(JSON.stringify(data));
// }
// window.onload = function () {
//
// let btn = document.querySelector(".send-message")
//
// btn.addEventListener('click', (e) => {
// e.preventDefault()
// // let message = e.target.message.value
// chatSocket.send(JSON.stringify({
// 'data':'data'
// }))
// // btn.reset()
// })
// }
// let form = document.getElementById('form')