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.
383 lines
21 KiB
383 lines
21 KiB
{% extends 'partials/base.html' %}
|
|
{% load staticfiles %}
|
|
{% load thumbnail %}
|
|
{% block content %}
|
|
{% include 'partials/header.html' %}
|
|
<div class="container mainScore">
|
|
<div class="row">
|
|
<div class="col-lg-12 allProjects">
|
|
<h1>Чат {{ request.user }} {{ request.user.pk }}</h1>
|
|
</div>
|
|
|
|
<div class="btnReadyBlock disTab">
|
|
<div class="triangle1"></div>
|
|
<div class="col-lg-6 col-lg-offset-3 tabsChat">
|
|
<div class="profileTabs2">
|
|
<ul class="nav nav-tabs nav-justified">
|
|
|
|
<li role="presentation">
|
|
<a href="#tab1" data-toggle="tab">Личные</a>
|
|
</li>
|
|
|
|
<li role="presentation">
|
|
<a href="#tab2" data-toggle="tab">Заказчики</a>
|
|
</li>
|
|
|
|
<li role="presentation">
|
|
<a href="#tab3" data-toggle="tab">Исполнители,Группы</a>
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% include 'dialog_delete.html' %}
|
|
<div class="tab-content">
|
|
<!-- Tab1 contacts block -->
|
|
<div class="chatBlock disTab tab-pane fade in" id="tab1">
|
|
<div class="col-lg-3 wrMessages">
|
|
<div class="messageBlock box-sizing disTab">
|
|
<p>Контакты</p>
|
|
{% for contact in contacts_users %}
|
|
<div class="message messd user-block" id="userBlock{{ contact.pk }}" data-id="{{ contact.pk }}">
|
|
<div class="imgMess">
|
|
{% thumbnail contact.avatar "60x60" crop="center" as im %}
|
|
<img src="{{ im.url }}" alt="mess-image">
|
|
{% endthumbnail %}
|
|
</div>
|
|
<p class="nameMess">
|
|
{% if contact.is_contractor %}
|
|
{% url "users:contractor-profile" pk=contact.pk as contact_url %}
|
|
{% else %}
|
|
{% url "users:customer-profile-open-projects" pk=contact.pk as contact_url %}
|
|
{% endif %}
|
|
|
|
<div><a href="{{ contact_url }}" style="color:black;">{{ contact.username }}</a></div>
|
|
</p>
|
|
|
|
<a href="#" data-id="{{ contact.id }}" class="conMess">Контакты</a>
|
|
|
|
<span class="contact-count-{{ contact.pk|add:request.user.pk }}">0</span>
|
|
<a href="#" class="deleteMess" data-recipent-id="{{ contact.pk }}">
|
|
Удалить контакт
|
|
</a>
|
|
</div>
|
|
{% endfor %}
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-6 commChat" id="contact-chat">
|
|
<div id="message-chat-space"></div>
|
|
<form id="contact-chat-form">
|
|
<input type="hidden" value="{{ request.user.pk }}" name="senderId" id="senderContactId"/>
|
|
<input type="hidden" value="" name="recipentId" id="recipentContactId"/>
|
|
<textarea id="chat" name="chat_message" class="box-sizing"></textarea>
|
|
<p class="errorEmptyMessage" style="color: red;display:none;">Пустое сообщение нельзя отправить</p>
|
|
|
|
<div class="bunChat">
|
|
<div class="setChat box-sizing upload">
|
|
<input type="file" name="file" id="upload-document-contact">
|
|
<p>Прикрепить файл</p>
|
|
</div>
|
|
<div id="document-send-contact"></div>
|
|
<a id="contact-chat-add-message" href="#">отправить</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<div class="col-lg-3 wrChat1">
|
|
<div class="col-lg-12 documentsChat">
|
|
<p>Прикрепленные документы</p>
|
|
<ul id="documentSpace">
|
|
</ul>
|
|
<a href="{% url 'common:create' %}">
|
|
Распечатать с помощью ресурса
|
|
</a>
|
|
</div>
|
|
<div class="textAreaBlock2 box-sizing disTab">
|
|
<ul class="contractor-notes-block">
|
|
</ul>
|
|
<form id="add-form-contractor-note">
|
|
<p>Для заметок</p>
|
|
<input type="hidden" name="sender" id="senderNoteContractor" value="{{ request.user.pk }}"/>
|
|
<input type="hidden" name="recipent" id="recipentNoteContractor" value=""/>
|
|
|
|
<textarea id="chat2" name="text"></textarea>
|
|
<a href="#" id="add-note-contractor">сохранить</a>
|
|
</form>
|
|
</div>
|
|
|
|
<!-- order-info -->
|
|
{% include 'contact-info.html' %}
|
|
<!-- -->
|
|
</div>
|
|
</div>
|
|
<!-- End block Tab1 -->
|
|
|
|
<!-- Tab2 chat order block -->
|
|
<div class="chatBlock disTab tab-pane fade" id="tab2">
|
|
<div class="col-lg-3 wrMessages">
|
|
<div class="messageBlock box-sizing disTab">
|
|
<p>Заказы</p>
|
|
{% for order in orders %}
|
|
<div class="orderBlock box-sizing order-block" data-project-id="{{ order.project.id }}"
|
|
id="orderBlock{{ order.id }}" data-recipent-id="{{ order.project.customer.pk }}" data-id="{{ order.id }}">
|
|
<span class="dimovChat"></span>
|
|
<p class="titleOB">{{ order }}</p>
|
|
<div class="hideOBB">
|
|
<p class="pOB"><span>Исполнитель:</span> {{ request.user.get_full_name }}</p>
|
|
|
|
<a href="#" class="linkChat11 full-order-info">
|
|
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
|
|
Полное описание заказа
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
</div>
|
|
<div class="col-lg-6 commChat">
|
|
<div id="message-chat-order-space"></div>
|
|
<form id="chat-order-add">
|
|
<input type="hidden" id="orderId" name="orderId">
|
|
<input type="hidden" id="senderId" name="senderId" value="{{ request.user.pk }}">
|
|
<input type="hidden" id="recipentId" name="recipentId" value="">
|
|
<textarea id="chat" class="box-sizing"></textarea>
|
|
<p class="errorEmptyMessage" style="color: red;display:none;">Пустое сообщение нельзя отправить</p>
|
|
<div class="bunChat">
|
|
<div class="setChat box-sizing upload">
|
|
<input type="file" name="file" id="upload-document-order">
|
|
<p>Прикрепить файл</p>
|
|
</div>
|
|
<div id="document-send-order"></div>
|
|
|
|
<a href="#" id="order-chat-add-message">отправить</a>
|
|
</div>
|
|
</form>
|
|
|
|
</div>
|
|
<div class="col-lg-3 wrstepschat">
|
|
<p>Этапы работы</p>
|
|
<div class="stepssBlock box-sizing disTab">
|
|
<p class="titleStepss">1 / Согласование условий</p>
|
|
<p class="textStepss">
|
|
Обсуждение задания и условий выполнения работы.
|
|
Подтверждение заказа исполнителем.
|
|
</p>
|
|
</div>
|
|
<div id="order-stages"></div>
|
|
|
|
<div class="stepssBlock box-sizing disTab" id="reserveSpace" style="display:none;">
|
|
<p class="titleStepss">2 / Резервирование</p>
|
|
<p class="textStepss">
|
|
Резервирование заказчиком суммы оплаты по заказ.
|
|
Деньги перечисляются и хранятся на сайте.
|
|
</p>
|
|
<ul class="stages-paid"></ul>
|
|
</div>
|
|
|
|
|
|
<div class="stepssBlock box-sizing disTab" id="completeWork">
|
|
<p class="titleStepss">3 / Выполнение работы</p>
|
|
<p class="textStepss">
|
|
Процесс выполнения задания в заказе до получения
|
|
заказчиком итогового результата работы.
|
|
</p>
|
|
<div id="stagesWork" class="stages-work textAreaBlock2">
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div id="leaveReview" style="display: none;">
|
|
<div class="closeChat closeChat1">
|
|
<a href="#" data-toggle="modal" data-target="#review-add" data-review-type="positive">
|
|
Закрыть проект<br>и оставить отзыв
|
|
</a>
|
|
</div>
|
|
|
|
<div class="closeChat closeChat2">
|
|
<a href="#" data-toggle="modal" data-target="#review-add" data-review-type="negative">
|
|
Закрыть проект<br>и оставить отзыв
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Review add -->
|
|
{% include 'review_add_modal.html' %}
|
|
<!-- -->
|
|
<!-- Arbitration add -->
|
|
{% include 'arbitration_modal.html' %}
|
|
<!-- -->
|
|
|
|
<div class="col-lg-12 documentsChat">
|
|
<p>Прикрепленные документы</p>
|
|
<ul id="documentOrderSpace"></ul>
|
|
<a href="{% url 'common:create' %}">
|
|
Распечатать с помощью ресурса
|
|
</a>
|
|
</div>
|
|
|
|
<div class="textAreaBlock2 box-sizing disTab">
|
|
<ul class="order-notes-block">
|
|
</ul>
|
|
<p>Для заметок</p>
|
|
<form id="add-form-order-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>
|
|
<!-- End block Tab2-->
|
|
|
|
<!-- Tab3 groups block -->
|
|
<div class="chatBlock disTab tab-pane fade" id="tab3">
|
|
<div class="col-lg-3 wrMessages">
|
|
<div class="messageBlock box-sizing disTab">
|
|
<p>Заказы</p>
|
|
{% for torder in team_orders %}
|
|
<div class="team-order-block orderBlock box-sizing" id="teamOrderBlock{{ torder.pk }}"
|
|
data-team-id="{{ torder.team.pk }}" data-order-id="{{ torder.pk }}" data-id="{{ torder.pk }}">
|
|
<span class="dimovChat"></span>
|
|
<p class="titleOB">
|
|
{{ torder }}
|
|
</p>
|
|
<div class="hideOBB disTab">
|
|
<p class="pOB">
|
|
<span>Исполнитель:</span> {{ torder.team.name }}
|
|
</p>
|
|
<ul class="listChat1">
|
|
{% for tuser in torder.team.users.all %}
|
|
<li>{{ tuser }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
<p class="pOB">
|
|
<span>Чаты:</span>
|
|
{% if request.user.pk != torder.team.owner.pk %}
|
|
<span class="team-chat-user"
|
|
data-id="{{ torder.team.owner.pk}}">{{ torder.team.owner.username }}</span>
|
|
{% endif %}
|
|
{% for tuser in torder.team.contractors.all %}
|
|
{% if request.user.pk != tuser.pk %}
|
|
<span class="team-chat-user"
|
|
data-id="{{ tuser.pk }}">{{ tuser.username }}</span>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</p>
|
|
<a href="#" class="linkChat11 full-order-info">
|
|
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
|
|
Полное описание заказа
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
|
|
{% for yteam in your_teams %}
|
|
<div class="team-block orderBlock box-sizing" id="teamMyBlock{{ yteam.pk }}" data-team-id="{{ yteam.pk }}">
|
|
<span class="dimovChat"></span>
|
|
<p class="titleOB">
|
|
{{ yteam }}
|
|
</p>
|
|
<div class="hideOBB disTab">
|
|
<p class="pOB">
|
|
<span>Владелец группы:</span> {{ yteam.owner }}
|
|
</p>
|
|
<ul class="listChat1">
|
|
{% for tuser in yteam.contractors.all %}
|
|
<li>{{ tuser }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
<p class="pOB">
|
|
<span>Чаты:</span>
|
|
{% if request.user.pk != torder.team.owner.pk %}
|
|
<span class="team-chat-user" data-id="{{ yteam.owner.pk}}">{{ yteam.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 %}
|
|
{% endfor %}
|
|
</p>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6 commChat">
|
|
<div id="message-chat-team-space"></div>
|
|
<form id="team-chat-form">
|
|
<input type="hidden" name="sender" id="senderTeamId" value="{{ request.user.pk }}">
|
|
<input type="hidden" name="recipent" id="recipentTeamId">
|
|
<input type="hidden" name="order" id="orderTeamId">
|
|
<input type="hidden" name="team" id="teamId">
|
|
<input type="hidden" name="team_ids" id="teamIds">
|
|
<input type="hidden" name="document-send" id="documentSendIds">
|
|
<textarea id="chatText" class="chat-textarea box-sizing"></textarea>
|
|
<div class="bunChat">
|
|
<div class="setChat box-sizing upload">
|
|
<input type="file" name="file" id="upload-document-team">
|
|
<p>Прикрепить файл</p>
|
|
</div>
|
|
<div id="progress" class="progress">
|
|
<div class="progress-bar progress-bar-success"></div>
|
|
</div>
|
|
|
|
<div id="document-send"></div>
|
|
<a href="#" id="add-team-chat-message">отправить</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<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="team-notes-block">
|
|
</ul>
|
|
<p>Для заметок</p>
|
|
<form id="add-form-team-note">
|
|
<textarea id="chat2" name="text"></textarea>
|
|
<input type="hidden" name="order" id="orderNote">
|
|
<input type="hidden" name="sender" id="senderNote" value="{{ request.user.pk }}">
|
|
<input type="hidden" name="recipent" id="recipentNote">
|
|
<input type="hidden" name="team" id="teamNote">
|
|
<a href="#" id="add-team-note-button">сохранить</a>
|
|
</form>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- End block Tab3-->
|
|
<!-- order-info -->
|
|
{% include 'order_info.html' %}
|
|
<!-- -->
|
|
</div>
|
|
{% include 'partials/footer.html' %}
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|
|
{% block js_block %}
|
|
<script type="text/javascript">
|
|
var userId = {{ request.user.pk }};
|
|
var domain = '{{ request.META.HTTP_HOST }}';
|
|
var port = '{{ request.META.SERVER_PORT }}';
|
|
|
|
</script>
|
|
<script type="text/javascript" src='{% static "js/chat.js" %}'></script>
|
|
<script type="text/javascript" src='{% static "js/chat_contractor.js" %}'></script>
|
|
{% endblock %}
|
|
|