You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
4.7 KiB
152 lines
4.7 KiB
var SocketHandler = function () {
|
|
domain = domain.replace(':' + port, '');
|
|
var url = 'ws://' + domain + ':8888/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 += '<div class="col-lg-12 insetCommChat '+ classMessage +'"><div class="topCommChat">' +
|
|
'<p class="nameCommChat">'+ senderName +'</p> <span>' + timeMessage + '</span></div>' +
|
|
'<p class="textCommChat">' + textMessage + '</p></div>';
|
|
}
|
|
|
|
};
|
|
|
|
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("");
|
|
$('<li>' + json.text + '</li>').appendTo(".contractor-notes-block");
|
|
},
|
|
error: function (e) {
|
|
console.log('error');
|
|
console.log(e);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|