From 64e23e32ecda63ce9c02fd097baf8987ed224bb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=9D=D0=B0=D0=B4=D0=B5?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Thu, 27 Nov 2025 17:55:02 +0300 Subject: [PATCH] =?UTF-8?q?Redesign:=20=D1=81=D0=BE=D0=B2=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=B8=D0=BD=D1=82=D0=B5?= =?UTF-8?q?=D1=80=D1=84=D0=B5=D0=B9=D1=81=20=D1=87=D0=B0=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D1=81=D1=82=D0=B8=D0=BB=D0=B5=20=D0=BC=D0=B5=D1=81?= =?UTF-8?q?=D1=81=D0=B5=D0=BD=D0=B4=D0=B6=D0=B5=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Изменения в chat_detail.html: - Убрана кнопка с фотографией из композера - Кнопка вложений встроена в строку ввода с выпадающим меню - Добавлено выпадающее меню с опциями: Документ, Фото/видео, Камера, Аудио - Добавлены скрытые input для каждого типа файлов - Реализовано превью прикрепленных файлов - Добавлен JavaScript для обработки выбора и отображения файлов Изменения в chat-detail.css: - Обновлен стиль композера под современные мессенджеры - Круглые кнопки вложений и отправки (40px) - Поле ввода с закругленными углами (border-radius: 20px) - Анимации hover для кнопок (scale 1.05) - Стили для превью вложений - Улучшенное выпадающее меню с иконками и transition эффектами --- backend/static/css/components/chat-detail.css | 113 ++++++++++++- .../templates/communications/chat_detail.html | 158 +++++++++++++++++- 2 files changed, 264 insertions(+), 7 deletions(-) diff --git a/backend/static/css/components/chat-detail.css b/backend/static/css/components/chat-detail.css index 672554ab..72757380 100644 --- a/backend/static/css/components/chat-detail.css +++ b/backend/static/css/components/chat-detail.css @@ -115,7 +115,7 @@ main.main { } /* ───────────────────────────────────────────────────────────── - COMPOSER + COMPOSER (Modern Messenger Style) ────────────────────────────────────────────────────────────── */ .chat-composer { position: sticky; @@ -133,11 +133,120 @@ main.main { .composer-wrap { display: flex; - align-items: end; + flex-direction: column; + gap: var(--space-1); +} + +.composer-input-group { + display: flex; + align-items: flex-end; gap: var(--space-1); flex-wrap: nowrap; } +.composer-textarea-wrapper { + flex: 1 1 auto; + position: relative; + min-width: 0; +} + +.composer-textarea { + resize: none; + max-height: 120px; + border-radius: 20px; + padding: 10px 16px; + line-height: 1.4; + border: 1px solid var(--bs-border-color); + background: var(--bs-body-bg); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.composer-textarea:focus { + border-color: var(--bs-primary); + box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.15); +} + +.btn-attachment { + padding: 8px 12px; + border-radius: 50%; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; +} + +.btn-attachment:hover { + background: var(--bs-secondary-bg); + transform: scale(1.05); +} + +.btn-send { + padding: 10px 16px; + border-radius: 50%; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; +} + +.btn-send:hover { + transform: scale(1.05); +} + +.btn-send i { + font-size: 1.1rem; +} + +/* Превью вложений */ +.attachment-preview { + padding: var(--space-1) 0; + max-height: 200px; + overflow-y: auto; +} + +.attachment-item { + background: var(--bs-secondary-bg); + transition: background-color 0.15s ease; +} + +.attachment-item:hover { + background: var(--bs-tertiary-bg); +} + +.attachment-item .btn-ghost { + opacity: 0.6; +} + +.attachment-item .btn-ghost:hover { + opacity: 1; +} + +/* Выпадающее меню вложений */ +.dropdown-menu { + min-width: 200px; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + padding: 8px; +} + +.dropdown-item { + border-radius: 8px; + padding: 10px 12px; + transition: background-color 0.15s ease; +} + +.dropdown-item:hover { + background: var(--bs-secondary-bg); +} + +.dropdown-item i { + width: 24px; +} + .composer-tools { display: flex; gap: var(--space-1); diff --git a/backend/templates/communications/chat_detail.html b/backend/templates/communications/chat_detail.html index ad23350c..6fcc053a 100644 --- a/backend/templates/communications/chat_detail.html +++ b/backend/templates/communications/chat_detail.html @@ -110,12 +110,68 @@
Собеседник печатает…
{% csrf_token %} -
- - +
+ + + + + + + + + + +
+ +
+ + +
- - + + +
@@ -124,5 +180,97 @@ + {% endblock %}