Files
tripwithbonus/static/js/chat_sockets.js
2023-08-18 13:17:05 +03:00

140 lines
4.7 KiB
JavaScript

chatSocket = new WebSocket(ws_url);
function sendMessageSocket (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']
}
}
}
chatSocket.onmessage = function (e) {
let old_item_tab_user_list = inital_old_tab()
let old_item_tab_user = old_item_tab_user_list[0]
let el_tab = 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")
update_chat_html(data,msg_cont)
// update_tickets_w_manager(data,old_item_tab_user)
//
// update_tickets_wo_manager(data,old_item_tab_user)л
update_tickets_operations_manager(data,old_item_tab_user,'w')
update_tickets_operations_manager(data,old_item_tab_user,null,'wo')
update_list_w_users(data,old_item_tab_user,el_tab)
} else if (data.type === "update_support_chat"){
update_support_chat_func(data)
}
if (data.unread_msgs_count > 0){
update_count_unread_messages(data)
}
if (data.required_beep === true) {
play_required_beep(data)
}
}
function update_tickets_operations_manager (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)
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')