|
|
|
@ -23,10 +23,9 @@ |
|
|
|
<a href="#tab2" data-toggle="tab">Заказчики</a> |
|
|
|
<a href="#tab2" data-toggle="tab">Заказчики</a> |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li role="presentation"> |
|
|
|
<li role="presentation"> |
|
|
|
<a href="#tab3" data-toggle="tab">Исполнители,Группы</a> |
|
|
|
<a href="#tab3" data-toggle="tab">Исполнители</a> |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -273,7 +272,7 @@ |
|
|
|
{% endfor %} |
|
|
|
{% endfor %} |
|
|
|
|
|
|
|
|
|
|
|
{% for yteam in your_teams %} |
|
|
|
{% for yteam in your_teams %} |
|
|
|
<div class="team-block orderBlock box-sizing" data-id="{{ yteam.pk }}"> |
|
|
|
<div class="team-block orderBlock box-sizing" data-team-id="{{ yteam.pk }}"> |
|
|
|
<span class="dimovChat"></span> |
|
|
|
<span class="dimovChat"></span> |
|
|
|
<p class="titleOB"> |
|
|
|
<p class="titleOB"> |
|
|
|
{{ yteam }} |
|
|
|
{{ yteam }} |
|
|
|
@ -290,14 +289,10 @@ |
|
|
|
<p class="pOB"> |
|
|
|
<p class="pOB"> |
|
|
|
<span>Чаты:</span> |
|
|
|
<span>Чаты:</span> |
|
|
|
{% if request.user.pk != torder.team.owner.pk %} |
|
|
|
{% if request.user.pk != torder.team.owner.pk %} |
|
|
|
<span class="team-chat-user" |
|
|
|
<span class="team-chat-user" data-id="{{ yteam.owner.pk}}">{{ yteam.owner.username }},</span> |
|
|
|
data-id="{{ torder.team.owner.pk}}">{{ torder.team.owner.username }},</span> |
|
|
|
|
|
|
|
{% endif %} |
|
|
|
|
|
|
|
{% for tuser in yteam.contractors.all %} |
|
|
|
|
|
|
|
{% if request.user.pk != tuser.pk %} |
|
|
|
|
|
|
|
<span class="team-chat-user" |
|
|
|
|
|
|
|
data-id="{{ tuser.pk }}">{{ tuser.username }},</span> |
|
|
|
|
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
|
|
|
|
{% for tuser in yteam.contractors.all %}<span class="team-chat-user" data-id="{{ tuser.pk }}">{{ tuser.username }},</span> |
|
|
|
|
|
|
|
|
|
|
|
{% endfor %} |
|
|
|
{% endfor %} |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
@ -332,6 +327,26 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="col-lg-3 wrstepschat"> |
|
|
|
<div class="col-lg-3 wrstepschat"> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-12 documentsChat"> |
|
|
|
|
|
|
|
<p>Прикрепленные документы</p> |
|
|
|
|
|
|
|
<ul id="documentTeamSpace"></ul> |
|
|
|
|
|
|
|
<a href="{% url 'common:create' %}"> |
|
|
|
|
|
|
|
Распечатать с помощью ресурса |
|
|
|
|
|
|
|
</a> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="textAreaBlock2 box-sizing disTab"> |
|
|
|
|
|
|
|
<ul class="notes-block"> |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
<p>Для заметок</p> |
|
|
|
|
|
|
|
<form id="add-form-team-note"> |
|
|
|
|
|
|
|
<textarea id="chat2" name="text"></textarea> |
|
|
|
|
|
|
|
<input type="hidden" name="order" id="orderNote" value=""/> |
|
|
|
|
|
|
|
<input type="hidden" name="sender" id="senderNote" value="{{ request.user.pk }}"/> |
|
|
|
|
|
|
|
<input type="hidden" name="recipent" id="recipentNote" value=""/> |
|
|
|
|
|
|
|
<a href="#" id="add-note-button">сохранить</a> |
|
|
|
|
|
|
|
</form> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- End block Tab3--> |
|
|
|
<!-- End block Tab3--> |
|
|
|
@ -395,7 +410,7 @@ |
|
|
|
var currentValue = $("#documentSendIds").val(); |
|
|
|
var currentValue = $("#documentSendIds").val(); |
|
|
|
currentValue += file.id + ';'; |
|
|
|
currentValue += file.id + ';'; |
|
|
|
$("#documentSendIds").val(currentValue); |
|
|
|
$("#documentSendIds").val(currentValue); |
|
|
|
var htmlImg = '<p>' + file.name + '</p>'; |
|
|
|
var htmlImg = '<a href="'+ file.url+'" class="send-doc" data-id="'+ file.id +'">' + file.name + '</a>'; |
|
|
|
var document_send = $(htmlImg).appendTo("#document-send"); |
|
|
|
var document_send = $(htmlImg).appendTo("#document-send"); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
@ -496,7 +511,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
$(".team-order-block").on('click', function () { |
|
|
|
$(".team-order-block").on('click', function () { |
|
|
|
|
|
|
|
|
|
|
|
$('.team-order-block').each(function () { |
|
|
|
$('.team-order-block, .team-block').each(function () { |
|
|
|
$(this).removeClass('orAct'); |
|
|
|
$(this).removeClass('orAct'); |
|
|
|
}); |
|
|
|
}); |
|
|
|
$(this).addClass('orAct'); |
|
|
|
$(this).addClass('orAct'); |
|
|
|
@ -508,6 +523,8 @@ |
|
|
|
|
|
|
|
|
|
|
|
var inbox = document.getElementById('message-chat-team-space'); |
|
|
|
var inbox = document.getElementById('message-chat-team-space'); |
|
|
|
inbox.innerHTML = ''; |
|
|
|
inbox.innerHTML = ''; |
|
|
|
|
|
|
|
var docList = document.getElementById('documentTeamSpace'); |
|
|
|
|
|
|
|
docList.innerHTML = ''; |
|
|
|
|
|
|
|
|
|
|
|
$.ajax({ |
|
|
|
$.ajax({ |
|
|
|
url: '/api/message', |
|
|
|
url: '/api/message', |
|
|
|
@ -526,11 +543,86 @@ |
|
|
|
'<p class="nameCommChat">' + senderName + '</p> <span>' + v.created + '</span></div>' + |
|
|
|
'<p class="nameCommChat">' + senderName + '</p> <span>' + v.created + '</span></div>' + |
|
|
|
'<p class="textCommChat">' + v.text + '</p></div>'; |
|
|
|
'<p class="textCommChat">' + v.text + '</p></div>'; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
var height = inbox.scrollHeight; |
|
|
|
|
|
|
|
inbox.scrollTop = height; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$.ajax({ |
|
|
|
|
|
|
|
url:'/api/documents', |
|
|
|
|
|
|
|
type: 'GET', |
|
|
|
|
|
|
|
data:{ |
|
|
|
|
|
|
|
csrfmiddlewaretoken: csrftoken, |
|
|
|
|
|
|
|
'order': orderId, |
|
|
|
|
|
|
|
'team': teamId, |
|
|
|
|
|
|
|
'is_delete': false, |
|
|
|
|
|
|
|
'is_send': true, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
dataType: 'json', |
|
|
|
|
|
|
|
success: function (json){ |
|
|
|
|
|
|
|
$.each(json.results, function (i, v) { |
|
|
|
|
|
|
|
docList.innerHTML += '<li style="word-break: break-all;"><a class="file-link" href="'+ v.file_url +'">'+ v.file+'</a><div class="remove-document" data-id="'+ v.id+'" style="right:-10px;"></div></li>'; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
error: function(e){ |
|
|
|
|
|
|
|
console.log(e); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$.ajax({ |
|
|
|
|
|
|
|
url: '/api/note/', |
|
|
|
|
|
|
|
type: 'GET', |
|
|
|
|
|
|
|
data: {csrfmiddlewaretoken: csrftoken, 'order': orderId,'team':teamId}, |
|
|
|
|
|
|
|
dataType: 'json', |
|
|
|
|
|
|
|
success: function (json) { |
|
|
|
|
|
|
|
console.log(json.results); |
|
|
|
|
|
|
|
var noteHtmlInbox = ''; |
|
|
|
|
|
|
|
$.each(json.results, function (i, v) { |
|
|
|
|
|
|
|
noteHtmlInbox += '<li>' + v.text + '<li>'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
$(".notes-block").html(noteHtmlInbox); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$('.team-block').on('click',function(){ |
|
|
|
|
|
|
|
$('.team-order-block, .team-block').each(function () { |
|
|
|
|
|
|
|
$(this).removeClass('orAct'); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
$(this).addClass('orAct'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var inbox = document.getElementById('message-chat-team-space'); |
|
|
|
|
|
|
|
inbox.innerHTML = ''; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var teamId = $(this).attr('data-team-id'); |
|
|
|
|
|
|
|
$("#team-chat-form #teamId").val(teamId); |
|
|
|
|
|
|
|
$("#team-chat-form #orderTeamId").val(""); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$.ajax({ |
|
|
|
|
|
|
|
url: '/api/message', |
|
|
|
|
|
|
|
type: 'GET', |
|
|
|
|
|
|
|
data: {csrfmiddlewaretoken: csrftoken, 'team': teamId, 'order__isnull':'true'}, |
|
|
|
|
|
|
|
dataType: 'json', |
|
|
|
|
|
|
|
success: function (json) { |
|
|
|
|
|
|
|
$.each(json.results, function (i, v) { |
|
|
|
|
|
|
|
var senderName = 'Вы'; |
|
|
|
|
|
|
|
var className = 'youChat'; |
|
|
|
|
|
|
|
if (v.sender.id !== currentChatUser) { |
|
|
|
|
|
|
|
senderName = v.sender.username; |
|
|
|
|
|
|
|
className = ''; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
inbox.innerHTML += '<div class="col-lg-12 insetCommChat"><div class="topCommChat">' + |
|
|
|
|
|
|
|
'<p class="nameCommChat">' + senderName + '</p> <span>' + v.created + '</span></div>' + |
|
|
|
|
|
|
|
'<p class="textCommChat">' + v.text + '</p></div>'; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
var height = inbox.scrollHeight; |
|
|
|
|
|
|
|
inbox.scrollTop = height; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// Вытащить сообщения для чата заказа |
|
|
|
// Вытащить сообщения для чата заказа |
|
|
|
$('.order-block').on('click', function () { |
|
|
|
$('.order-block').on('click', function () { |
|
|
|
$('.order-block').each(function () { |
|
|
|
$('.order-block').each(function () { |
|
|
|
@ -572,6 +664,9 @@ |
|
|
|
'<p class="nameCommChat">' + senderName + '</p> <span>' + v.created + '</span></div>' + |
|
|
|
'<p class="nameCommChat">' + senderName + '</p> <span>' + v.created + '</span></div>' + |
|
|
|
'<p class="textCommChat">' + v.text + '</p></div>'; |
|
|
|
'<p class="textCommChat">' + v.text + '</p></div>'; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var height = inbox.scrollHeight; |
|
|
|
|
|
|
|
inbox.scrollTop = height; |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
@ -796,23 +891,29 @@ |
|
|
|
var teamId = $("#team-chat-form #teamId").val(); |
|
|
|
var teamId = $("#team-chat-form #teamId").val(); |
|
|
|
var orderId = $("#team-chat-form #orderTeamId").val(); |
|
|
|
var orderId = $("#team-chat-form #orderTeamId").val(); |
|
|
|
var documentSendIds = $("#documentSendIds").val(); |
|
|
|
var documentSendIds = $("#documentSendIds").val(); |
|
|
|
var teamDocumentIds = documentSendIds.split(';'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
teamDocumentIds.pop(); |
|
|
|
if(chatMessage) { |
|
|
|
socket.add_team_message({ |
|
|
|
var sendLinks = $("#document-send a"); |
|
|
|
"format_type": "add_message_team", |
|
|
|
var sendLinkIds = ""; |
|
|
|
"data": { |
|
|
|
$.each(sendLinks, function(i, v){ |
|
|
|
"sender_id": senderId, |
|
|
|
sendLinkIds += $(this).attr('data-id') + ';'; |
|
|
|
"recipent_id": recipentId, |
|
|
|
}); |
|
|
|
"chat_message": chatMessage, |
|
|
|
socket.add_team_message({ |
|
|
|
"team_id": teamId, |
|
|
|
"format_type": "add_message_team", |
|
|
|
"order_id": orderId, |
|
|
|
"data": { |
|
|
|
} |
|
|
|
"sender_id": senderId, |
|
|
|
}); |
|
|
|
"recipent_id": recipentId, |
|
|
|
|
|
|
|
"chat_message": chatMessage, |
|
|
|
|
|
|
|
"team_id": teamId, |
|
|
|
|
|
|
|
"order_id": orderId, |
|
|
|
|
|
|
|
"document_send_links": sendLinkIds, |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
$("#team-chat-form #chatText").val(""); |
|
|
|
$("#team-chat-form #chatText").val(""); |
|
|
|
$("#document-send").html(""); |
|
|
|
$("#document-send").html(""); |
|
|
|
$("#documentSendIds").val(""); |
|
|
|
$("#documentSendIds").val(""); |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|