var SocketHandler = function () { domain = domain.replace(':' + port, ''); var url = 'ws://' + domain + '/chat/' + userId + '/'; var sock = new WebSocket(url); var intervalId; sock.onopen = function () { console.log("Start connect"); intervalId = setInterval(function () { sock.send('{"dummy": 1}'); }, 15000); }; sock.onmessage = function (event) { console.log(event.data); var message = JSON.parse(event.data); var inbox; if (message.answer_type == 'contact' || message.answer_type == 'add_message_contact') { inbox = document.getElementById('message-chat-space'); } else if (message.answer_type == 'order' || message.answer_type == 'add_message_order') { inbox = document.getElementById('message-chat-order-space'); } else if (message.answer_type == 'add_message_team') { inbox = document.getElementById('message-chat-team-space'); } else if (message.answer_type == 'approve_stages') { alert('approve stages'); } if (inbox) { var textMessage = message.msg; var classMessage = 'youChat'; var senderName = 'Вы'; var timeMessage = message.msg_time; if (message.sender_id != userId){ senderName = message.sender_name; classMessage = ''; } inbox.innerHTML += '
' + '

'+ senderName +'

' + timeMessage + '
' + '

' + textMessage + '

'; } }; this.send_order_message = function (orderId) { var data = { "format_type": "order_message", "order_id": orderId } sock.send(JSON.stringify(data)); console.log(data); }; this.send_stages_approve = function (data) { sock.send(JSON.stringify(data)); console.log(data); }; this.send_contact_message = function (userId) { var data = { "format_type": "add_message", "user_id": userId } sock.send(JSON.stringify(data)); console.log(data); }; this.add_team_message = function (messageData) { console.log(messageData); sock.send(JSON.stringify(messageData)); } this.add_contact_message = function (messageData) { console.log(messageData); sock.send(JSON.stringify(messageData)); }; this.send_message = function (form) { var elements = form.elements; var data = {}; var i = 0; for (var i; i < elements.length; i++) { if (elements[i].name == 'message') { data[elements[i].name] = elements[i].value; } } sock.send(JSON.stringify(data)); var textareaMessage = document.getElementById("message"); textareaMessage.value = ""; } } function csrfSafeMethod(method) { return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } $(function () { $('.deleteMess').on('click', function (e) { e.preventDefault(); e.stopPropagation(); var senderId = userId; var recipentId = $(this).attr('data-recipent-id'); var _this = $(this); $.ajax({ url: '/chat/messages_delete/', type: 'POST', beforeSend: function (xhr) { xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken')) }, data: {'sender_id':senderId, 'recipent_id': recipentId}, dataType: 'json', success: function (json) { if (json.status == 'ok'){ _this.parent().remove(); $("#message-chat-space").html(""); } }, error: function (e) { console.log('error'); console.log(e); } }); }); $('#add-note-contractor').on('click', function (e) { e.preventDefault(); $.ajax({ url: '/api/note/', type: 'POST', beforeSend: function (xhr) { xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken')) }, data: $("#add-form-contractor-note").serialize(), dataType: 'json', success: function (json) { console.log(json); $("#add-form-contractor-note #chat2").val(""); $('
  • ' + json.text + '
  • ').appendTo(".contractor-notes-block"); }, error: function (e) { console.log('error'); console.log(e); } }); }); });