|
|
|
|
@ -66,7 +66,7 @@ |
|
|
|
|
</div> |
|
|
|
|
<form id="contact-chat-form"> |
|
|
|
|
<input type="hidden" value="{{ request.user.pk }}" name="senderId" id="senderId"/> |
|
|
|
|
<input type="hidden" value="" name="recipentId" id="recipentId"/> |
|
|
|
|
<input type="hidden" value="" name="recipentId" id="recipentId"> |
|
|
|
|
|
|
|
|
|
<textarea id="chat" name="chat_message" class="box-sizing"></textarea> |
|
|
|
|
<div class="bunChat"> |
|
|
|
|
@ -124,26 +124,22 @@ |
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
<div class="col-lg-6 commChat"> |
|
|
|
|
<div id="message-chat-order-space"> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<form id="chat-order-add" style="display:none;"> |
|
|
|
|
<div id="message-chat-order-space"></div> |
|
|
|
|
<form id="chat-order-add"> |
|
|
|
|
<input type="hidden" name="senderId" id="senderId" value="{{ request.user.pk }}"/> |
|
|
|
|
<input type="hidden" name="recipentId" id="recipentId" value=""/> |
|
|
|
|
<input type="hidden" name="orderId" id="orderId" value=""/> |
|
|
|
|
<input type="hidden" name="recipentId" id="recipentId"> |
|
|
|
|
<input type="hidden" name="orderId" id="orderId"> |
|
|
|
|
<textarea id="chat" class="box-sizing"></textarea> |
|
|
|
|
<div class="bunChat"> |
|
|
|
|
<div class="setChat box-sizing"> |
|
|
|
|
<div class="setChat box-sizing upload"> |
|
|
|
|
<input type="file" name="file" id="upload-document-order"> |
|
|
|
|
<p>Прикрепить файл</p> |
|
|
|
|
<span> |
|
|
|
|
Не более 10 файлов с общим объемом 500мб |
|
|
|
|
</span> |
|
|
|
|
</div> |
|
|
|
|
<div id="document-send-order"></div> |
|
|
|
|
<a href="#" id="order-chat-add-message">отправить</a> |
|
|
|
|
</div> |
|
|
|
|
</form> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
<div class="col-lg-3 wrstepschat" id="order-stages-tab"> |
|
|
|
|
<p>Этапы работы</p> |
|
|
|
|
@ -195,12 +191,14 @@ |
|
|
|
|
<a href="#">сохранить</a> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Review add --> |
|
|
|
|
|
|
|
|
|
{% include 'review_add_modal.html' %} |
|
|
|
|
<!-- --> |
|
|
|
|
|
|
|
|
|
<!-- Arbitration add --> |
|
|
|
|
{% include 'arbitration_modal.html' %} |
|
|
|
|
<!-- --> |
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<!-- End block (chat order block) --> |
|
|
|
|
@ -222,9 +220,7 @@ |
|
|
|
|
<script type="text/javascript"> |
|
|
|
|
$(function () { |
|
|
|
|
var currentChatUser = {{ request.user.pk }}; |
|
|
|
|
var socket = new SocketHandler(); |
|
|
|
|
var form = document.getElementById('message_form'); |
|
|
|
|
var csrftoken = getCookie('csrftoken'); |
|
|
|
|
|
|
|
|
|
$("#reserve-button").on("click",function(e) { |
|
|
|
|
e.preventDefault(); |
|
|
|
|
@ -355,12 +351,14 @@ |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
if (statusNotAgreed) { |
|
|
|
|
if(!data.secure) { |
|
|
|
|
var orderSecureCheckbox = ''; |
|
|
|
|
if(data.secure) { |
|
|
|
|
orderSecureCheckbox = "checked"; |
|
|
|
|
} |
|
|
|
|
htmlInbox += '<div class="box-sizing disTab">' + |
|
|
|
|
'<div class="checkbox"><input name="secure" id="secureOrder" '+ orderSecureCheckbox +' type="checkbox" style="opacity:1">' + |
|
|
|
|
'Перейти в режим безопасной сделки</div></div>'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
htmlInbox +='<div class="textAreaBlock2 box-sizing disTab">' + |
|
|
|
|
'<a href="#" data-sender-id="' + senderId +'" ' + |
|
|
|
|
@ -384,6 +382,10 @@ |
|
|
|
|
stageWork += '<a href="#" class="closeStage" data-order-id="'+ orderId + '" data-sender-id="{{ request.user.pk }}"' + |
|
|
|
|
' data-recipent-id="'+ recipentId + '" data-stage-id="'+ stage.id+'">Закрыть этап '+ stage.pos +'</a>'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (data.secure){ |
|
|
|
|
stageWork += '<a href="#" data-toggle="modal" data-target="#arbitration-add">Обратитьсяв арбитраж</a>'; |
|
|
|
|
} |
|
|
|
|
$("#stagesWork").html(stageWork); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -392,11 +394,17 @@ |
|
|
|
|
$("#reserveSpace").hide(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(stagesCompleted.length == stagesResults.length){ |
|
|
|
|
if((stagesCompleted.length == stagesResults.length) && (stagesCompleted.length > 0)){ |
|
|
|
|
$("#leaveReview").show(); |
|
|
|
|
console.log("Все этапы завершены"); |
|
|
|
|
}else { |
|
|
|
|
$("#leaveReview").hide(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (data.status == 'completed'){ |
|
|
|
|
$("#leaveReview").hide(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -436,6 +444,29 @@ |
|
|
|
|
// Добавление этапов |
|
|
|
|
$("#order-stages").on('click', "#addStagesForm", function (e) { |
|
|
|
|
e.preventDefault(); |
|
|
|
|
var currentOrderId = $(this).attr('data-order-id'); |
|
|
|
|
var secureOrderEl = $("#secureOrder"); |
|
|
|
|
if(secureOrderEl.length > 0) { |
|
|
|
|
var secOrderVal = false; |
|
|
|
|
if (secureOrderEl.prop('checked')) { |
|
|
|
|
secOrderVal = true; |
|
|
|
|
} |
|
|
|
|
$.ajax({ |
|
|
|
|
url: '/api/orders/' + currentOrderId + '/', |
|
|
|
|
type: 'PATCH', |
|
|
|
|
beforeSend: function (xhr) { |
|
|
|
|
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken')) |
|
|
|
|
}, |
|
|
|
|
data: {secure: secOrderVal}, |
|
|
|
|
dataType: 'json', |
|
|
|
|
success: function (json){ |
|
|
|
|
}, |
|
|
|
|
error: function(e){ |
|
|
|
|
console.log(e); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$(".new-stages-form").each(function (i, v) { |
|
|
|
|
$.ajax({ |
|
|
|
|
url: '/api/stages/', |
|
|
|
|
@ -477,7 +508,7 @@ |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
var currentOrderId = $(this).attr('data-order-id'); |
|
|
|
|
|
|
|
|
|
var currentRecipentId = $(this).attr('data-recipent-id'); |
|
|
|
|
var secureOrder = true |
|
|
|
|
|
|
|
|
|
@ -553,6 +584,7 @@ |
|
|
|
|
var secureOrder = $(this).attr('data-secure-deal'); |
|
|
|
|
secureOrder = Boolean(secureOrder); |
|
|
|
|
$("#chat-order-add #orderId").val(orderId); |
|
|
|
|
$("#orderArbitrationId").val(orderId); |
|
|
|
|
$("#projectReviewId").val(projectId); |
|
|
|
|
$("#reserve-button").attr('data-order-id', orderId); |
|
|
|
|
$("#targetContractorId").val(recipentId); |
|
|
|
|
@ -642,50 +674,7 @@ |
|
|
|
|
$("#chat").val(""); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Добавление отзыва |
|
|
|
|
$('#order-review-add').on('click', function (e) { |
|
|
|
|
e.preventDefault(); |
|
|
|
|
e.stopPropagation(); |
|
|
|
|
var formData = $("#review-adds-form").serialize(); |
|
|
|
|
$.ajax({ |
|
|
|
|
url: '/api/reviews/', |
|
|
|
|
type: 'POST', |
|
|
|
|
beforeSend: function (xhr) { |
|
|
|
|
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken')) |
|
|
|
|
}, |
|
|
|
|
data: formData, |
|
|
|
|
dataType: 'json', |
|
|
|
|
success: function (json) { |
|
|
|
|
console.log("Успешно"); |
|
|
|
|
console.log(json); |
|
|
|
|
}, |
|
|
|
|
error: function (e) { |
|
|
|
|
console.log('error'); |
|
|
|
|
console.log(e); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$('#order-chat-add-message').on('click', function (e) { |
|
|
|
|
e.preventDefault(); |
|
|
|
|
var chatMessage = $("#chat-order-add #chat").val(); |
|
|
|
|
var recipentId = $("#chat-order-add #recipentId").val(); |
|
|
|
|
var senderId = $("#chat-order-add #senderId").val(); |
|
|
|
|
var orderId = $("#chat-order-add #orderId").val(); |
|
|
|
|
|
|
|
|
|
socket.add_contact_message({ |
|
|
|
|
"format_type": "add_message_order", |
|
|
|
|
"data": { |
|
|
|
|
"sender_id": senderId, |
|
|
|
|
"recipent_id": recipentId, |
|
|
|
|
"chat_message": chatMessage, |
|
|
|
|
"order_id": orderId, |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$("#chat-order-add #chat").val(""); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
var userId = '{{ request.user.pk }}'; |
|
|
|
|
|