- Заменен лишний div.container на стандартный container для единообразия - Заменен класс .card на .ios-card в секции активности для устранения конфликтов стилей - Добавлен card-list.css в base.html для корректного отображения карточек новостей - Добавлены CSS правила для правильного поведения .row и колонок в grid-layout - Исправлена проблема с выходом календаря за границы страницы - Убраны видимые скроллбары у modal-body и modal-content для чистого UI
5.9 KiB
5.9 KiB
🎯 Тестирование унификации textarea
Что было исправлено
Проблема: Поля ввода комментариев в заявлениях вели себя иначе, чем в новостях.
Причина:
-
В
request-list.cssбыли специфичные стили для.comment-new textarea:min-height: 44pxmax-height: 220pxresize: vertical
-
В
_message-inputs.scssбыли конфликтующие стили:.message-input { min-height: 44px; max-height: 260px; }.message-field--compact .message-input { min-height: 32px; }
Решение:
- ✅ Удалены все фиксированные
min-heightиmax-heightиз CSS - ✅ Удален
resize: vertical(теперь толькоresize: none) - ✅ Все textarea с
rows="1"автоматически управляются черезtextareaAutoExpand.js
Как тестировать
1. Комментарии в ленте новостей
- Откройте главную страницу
/feed/ - Найдите любую новость
- Начните вводить комментарий в поле "Оставить комментарий…"
- ✅ Ожидается: Поле плавно расширяется от 1 до 6 строк (144px)
2. Комментарии в заявлениях
- Откройте список заявлений
/requests/ - Нажмите на кнопку "Комментарии" под любой заявкой
- Начните вводить комментарий в поле "Написать…"
- ✅ Ожидается: Поле ведёт себя ИДЕНТИЧНО полю в новостях
3. Комментарии в детальном просмотре заявки
- Откройте заявку
/requests/<id>/ - Прокрутите до раздела комментариев
- Начните вводить комментарий
- ✅ Ожидается: Точно такое же поведение, как в новостях
4. Комментарии при обработке заявки
- Откройте заявку для обработки
/requests/<id>/process/ - Прокрутите до комментариев
- Начните вводить
- ✅ Ожидается: Единообразное поведение
5. Модальные окна
- Откройте модальное окно новости
- Попробуйте добавить комментарий
- ✅ Ожидается: Расширение от 1 до 6 строк
Что проверять
| Критерий | Ожидаемое поведение |
|---|---|
| Начальная высота | 1 строка (~38-40px) |
| Максимальная высота | 6 строк (144px) |
| Поведение при вводе | Плавное автоматическое расширение |
| Скроллбар | Появляется только после 6 строк |
| Уменьшение высоты | При удалении текста высота уменьшается |
| Единообразие | Все поля с rows="1" работают одинаково |
| Визуальный стиль | Нет отличий между новостями и заявлениями |
Известные исключения
Следующие textarea НЕ должны автоматически расширяться:
- Модальные окна редактирования с
rows="3"илиrows="4" - Поле создания новости с большим textarea
- Любые textarea без
rows="1"и без класса.composer-textarea
Проверка в DevTools
Откройте DevTools → Elements и проверьте textarea:
✅ Правильно (новости и заявления должны быть одинаковыми):
<textarea class="form-control message-input"
rows="1"
data-auto-expand-init="true"
style="height: auto; height: 72px;">
Проверки:
rows="1"✅data-auto-expand-init="true"✅ (добавлен модулем)style="height: XXpx"✅ (динамически изменяется)- Нет
min-height,max-heightв computed styles ❌ (должны отсутствовать!)
❌ Неправильно (если видите):
/* В Computed Styles не должно быть: */
min-height: 44px; /* ❌ ПЛОХО */
max-height: 260px; /* ❌ ПЛОХО */
resize: vertical; /* ❌ ПЛОХО */
Быстрый визуальный тест
- Откройте новость → введите 5 строк текста → запомните высоту
- Откройте заявку → введите 5 строк текста → сравните высоту
- ✅ Должны быть ИДЕНТИЧНЫ!
Если что-то пошло не так
- Очистите кеш браузера (Ctrl+Shift+Delete)
- Проверьте, что собрана статика:
python manage.py collectstatic - Проверьте, что скомпилирован CSS:
cd backend/static && npm run build:css - Перезагрузите страницу с Ctrl+F5
Файлы для проверки
- ✅
backend/static/js/components/textareaAutoExpand.js- основной модуль - ✅
backend/static/scss/components/_message-inputs.scss- стили без min/max height - ✅
backend/static/css/components/request-list.css- удалены специфичные стили - ✅
backend/static/css/bootstrap-custom.css- скомпилированный CSS
Дата создания: 29.11.2025
Версия: 1.0