222 lines
8.2 KiB
JavaScript
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')
|