Files
account_store/static/js/chat_sockets.js
2023-08-14 18:57:53 +03:00

163 lines
5.0 KiB
JavaScript

//
// let senderName = localStorage.getItem('senderName');
// if (!senderName) {
// localStorage.setItem('senderName', senderName);
// }
//
//
// }
// let form = document.getElementById('form')
// form.addEventListener('submit', (e) => {
// e.preventDefault()
// let message = e.target.message.value
// chatSocket.send(JSON.stringify({
// 'message': message,
// 'sender': senderName
// }))
// form.reset()
// })
// 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)
// }
// chatSocket.onopen = function () {
// console.log("open")
// }
// // function open_socket () {
// chatSocket.onopen = function(){
// console.log("open")
// // chatSocket
// }
// }
// var i = 0
url = `ws://localhost:8000/ws/socket-server/?user_id=${user_id}`;
const chatSocket = new WebSocket(url);
function sendMessageSocket (data) {
chatSocket.send(JSON.stringify(data));
let el_tab = document.querySelector(".tab_user_messanger.select")
el_tab.querySelector(".last-message-messenger-user-tab").innerHTML = data['text']
}
chatSocket.onmessage = function (e) {
let el_tab = document.querySelector(".tab_user_messanger.select")
let old_item_tab_user = null;
if (el_tab !== null){
let dataset = el_tab.dataset;
old_item_tab_user = dataset['curReceiverItem'];
}
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 (data.chat_html){
if (msg_cont !== null){
if (msg_cont.dataset['curReceiver'] === ""){
document.querySelector(".fotter-chat")
msg_cont.innerHTML = data.chat_html
} else {
// что бы не выводился левый чат
if (msg_cont.dataset['curReceiver'] === data['sender'].toString() || msg_cont.dataset['curReceiver'] === data['receiver'].toString()) {
msg_cont.innerHTML = data.chat_html
}
}
}
}
if (data.tickets_wo_manager_html) {
if (document.querySelector(".list_linked_tickets") !== null || document.querySelector(".list_unlinked_tickets") !== null) {
document.querySelector(".list_unlinked_tickets").innerHTML = data.tickets_wo_manager_html
}
} else {
let list_of_users = document.querySelector(".block-list-of-users")
if (list_of_users !== null){
if (data.users_list_html){
list_of_users.innerHTML = data.users_list_html
if (el_tab !== null){
document.querySelector(`[data-cur-receiver-item="${old_item_tab_user}"]` ).classList.add("select")
}
}
}
}
} else if (data.type === "update_support_chat"){
if (msg_cont.dataset['curReceiver'] === ""){
document.querySelector(".info_profile").innerHTML = data.support_chat_html
}
}
if (data.unread_msgs_count > 0){
let list_unrd = document.querySelectorAll(".qs")
let i = 0
for (i;i < list_unrd.length;i++){
list_unrd[i].innerHTML = data.unread_msgs_count.toString()
}
}
if (data.required_beep === true) {
const beep = new Audio('/static/sounds/beep_2.mp3')
beep.play()
}
}
// 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')