lizerk
1e2ad9503c
Disable backdrop-close by default for shared modal
2026-04-10 20:55:09 +03:00
lizerk
48677eb49c
Deduplicate pasted clipboard files in message composer
2026-04-10 20:54:09 +03:00
lizerk
66141197ad
Optimize messages list refresh and chat serialization
2026-04-10 20:54:09 +03:00
lizerk
3dd13ec549
фикс модалов
2026-04-03 22:53:00 +03:00
lizerk
4c24b01f06
фикс 2
2026-04-03 22:30:21 +03:00
lizerk
a94b56ecb7
Выявил и исправил два места, которые вместе хорошо объясняют редкую выборочную недогрузку при скролле вверх.
2026-04-03 22:12:09 +03:00
lizerk
26f1dd550d
фикс фронта
2026-04-03 21:12:20 +03:00
lizerk
219a93215f
Improve deleted reply preview context
2026-04-03 21:01:10 +03:00
lizerk
71d0a6092c
Refine chat reply preview behavior
2026-04-03 20:53:52 +03:00
lizerk
9b23f480c2
Refine search routing and deep links
2026-04-03 20:30:29 +03:00
lizerk
a7abde279e
Fix duplicate request deep-link modal open
2026-04-03 20:28:15 +03:00
lizerk
111ddb2bfd
Refactor modals and add chat message search
2026-04-03 19:53:31 +03:00
lizerk
e80412918d
Refactor chat frontend and optimize chat queries
2026-04-03 17:05:14 +03:00
lizerk
9d3d8bdd57
Fix chat history return button behavior
2026-04-03 15:14:01 +03:00
lizerk
068e956f7c
Fix chat floating date badge behavior
2026-04-03 14:32:31 +03:00
lizerk
3d99226296
Fix chat list pagination in frontend
2026-04-03 14:25:41 +03:00
lizerk
1b7559a296
Improve chat composer and unread jump indicator
2026-04-03 14:04:18 +03:00
lizerk
deca5a84ff
Polish mobile chat layout spacing
2026-04-03 12:42:41 +03:00
lizerk
5100851481
Polish mobile chat composer layout
2026-04-03 12:25:01 +03:00
lizerk
4fb637e153
Improve message composer behavior
2026-04-03 12:21:50 +03:00
lizerk
c1a1c31494
Refine message composer styling
2026-04-03 12:06:21 +03:00
lizerk
c4253f6a78
Add readers avatars and emoji picker
2026-04-03 11:43:29 +03:00
lizerk
2b1e13632a
Simplify chat actions dropdown
2026-04-03 11:19:02 +03:00
lizerk
6bd66e7855
Refine chat actions menu styling
2026-04-03 11:16:26 +03:00
lizerk
c5f53cca15
Improve chat delivery states and read details
2026-04-03 11:10:14 +03:00
lizerk
d1aea28be9
Add websocket read receipts and AsyncAPI docs
2026-04-03 09:55:10 +03:00
lizerk
0a71d6a3c9
Read notifications for opened chat
2026-04-02 11:26:09 +03:00
lizerk
9989c98af4
Finish user detail page refactor
2026-04-02 10:32:24 +03:00
lizerk
e3e195c89d
Add user detail components and hook
2026-04-02 10:22:46 +03:00
lizerk
4b179fe801
Sync active chat on shared websocket
2026-04-02 10:20:46 +03:00
lizerk
a0cda94107
refactor frontend api facade
2026-04-01 20:56:08 +03:00
lizerk
fac1b54e63
Главное изменение этой итерации: orchestration страницы оборудования вынесен из page.tsx в новый hook useEquipmentPage.ts. В hook теперь живут загрузка данных, фильтры, пагинация, create/edit, операции перевода/списания/обслуживания, комментарии, загрузка деталей строки и вся производная логика. Сама страница стала значительно чище и ближе к роли render-слоя, без нетипичной архитектуры и без изменения UI-поведения.
2026-04-01 19:03:04 +03:00
lizerk
d1574dfd31
Refactor equipment page orchestration
2026-04-01 18:39:10 +03:00
lizerk
19f6f660b0
refactor: extract procurement page orchestration into hook
...
- add useProcurementPage hook for loading, filters, modal state and workflow actions
- keep procurement page focused on rendering and section layout
- preserve existing UI behavior while removing API/state orchestration from page component
- frontend checks: eslint clean, TypeScript typecheck clean
- backend checks: realtime websocket smoke, procurement and equipment suites green
2026-04-01 16:34:04 +03:00
lizerk
0a80eb86cf
refactor: extract shared utils/components, split requests page data into hook
...
- Create frontend/src/lib/shared/ with formatters, userUtils, paginationUtils
(formatDate, formatMoney, displayUserName, userProfileLink, extractNextPage, loadAllPages)
- Create frontend/src/components/shared/SearchableSelect.tsx
(SearchableSelectSingle + SearchableSelectMulti, replaces 3 inline copies)
- Extract requests page data/state/actions into useRequestsPage hook
(requests/page.tsx: 1580 → ~280 lines of pure JSX)
- Replace duplicated helpers in equipment/page.tsx with shared imports
(~80 lines removed: formatDate, formatMoney, displayUserName, extractNextPage,
loadAllPages, inline SearchableSelectSingle)
- Replace duplicated helpers in procurement/page.tsx with shared imports
(~90 lines removed: fmt, money, displayUserName, extractNextPage,
inline departments loader, inline SearchableSelectSingle)
- 609 backend tests pass, TypeScript typecheck clean, ESLint clean
2026-04-01 16:21:02 +03:00
lizerk
3ca4d108b6
refactor: split monolithic api.ts into domain modules, extract AppShell calendar/mobile concerns
...
- Split frontend/src/lib/api.ts (2042 lines) into 12 focused domain modules:
client.ts (base HTTP/auth), calendar.ts, documents.ts, employees.ts,
equipment.ts, feed.ts, messages.ts, notifications.ts, procurement.ts,
requests.ts, utils.ts, and index.ts barrel that preserves all existing imports
- Extract calendar modal state from AppShell into useCalendarModals hook
- Extract CalendarModals and MobileDrawers into components/layout/
- AppShell: 745 → 460 lines, focused on layout concerns only
- Fix setState-in-effect lint error with startTransition pattern
- Stabilize notifications memo to prevent unnecessary re-renders
- Fix flaky WS test: handle CancelledError in channels-testing cleanup
- All 609 backend tests pass, TypeScript typecheck clean, ESLint clean
2026-04-01 15:56:10 +03:00
lizerk
a8ec339565
Refactor chat settings and tighten frontend types
2026-04-01 15:31:19 +03:00
lizerk
613248905e
Refactor realtime sync and message UI
2026-04-01 15:20:27 +03:00
lizerk
3d4416615e
.
2026-03-31 17:09:29 +03:00
lizerk
676a419a35
feat(frontend): enhance requests page with improved SwipeApprovalMode component
2026-03-30 11:52:27 +03:00
lizerk
f88d90230b
refactor: clean architecture, align tests to current API contracts, all tests green [deploy-ready]
2026-03-30 04:27:18 +03:00
lizerk
825726e0f0
chore: commit remaining backend and frontend changes, remove legacy test, add missing migrations
2026-03-30 02:17:28 +03:00
lizerk
decbadf47b
Унификация сортировки и визуального стиля карточек: добавлены селекторы сортировки и убраны лишние тени в разделах заявлений, закупок и оборудования
2026-03-27 18:11:14 +03:00
lizerk
3a2d05a64d
feat(requests): улучшены фильтры по датам, исправлена логика фильтрации, добавлена инструкция по тестированию
2026-03-27 14:57:31 +03:00
lizerk
0539f50233
refactor: переход на строгий AD-only LDAP, регистрация + верификация email
...
- Удалён LDAP_SERVER_TYPE и все OpenLDAP ветки кода
- user_service.py: только AD (sAMAccountName, UAC, microsoft.modify_password)
- auth_backends.py: AD фильтры и атрибуты (objectCategory, objectGUID)
- Удалён server_configs.py (больше не нужен)
- Удалён OpenLDAP Docker окружение (docker-compose.ldap.yml, ldap/, QUICKSTART_LDAP.md)
- Фронтенд: мульти-шаговая регистрация, AvatarCropper 3:4, verify-email страница
- Убран CSRF для JWT API, IP-ограничения работают независимо
- Полевые ошибки регистрации с красной подсветкой на фронте
2026-03-19 00:48:13 +03:00
lizerk
45a634de92
доработал отображение текущего статуса
2026-03-18 11:37:57 +03:00
lizerk
7ff1fe22b2
скрыть историю ото всех кроме админов авторов и самого пользователя
2026-03-18 10:48:02 +03:00
lizerk
f98a7d69e4
фикс
2026-03-18 09:58:25 +03:00
lizerk
3dc8541508
добавлена иконка чатов в список сотрудников
2026-03-16 18:29:26 +03:00
lizerk
f28eda6929
feat: Улучшения страницы сотрудника и миграция на ChatMembership
...
Backend:
- Полная миграция на ChatMembership для всех типов чатов
- Удалены проверки participants M2M поля
- Добавлена обработка participants при создании чатов
- API методы для создания/редактирования/удаления кадровых событий
Frontend:
- Редизайн страницы пользователя с lucide-react иконами
- Добавлено редактирование профиля (ФИО, контакты, аватар)
- Функциональные кадровые события (создание/редактирование/удаление)
- История кадровых событий с цветовой кодировкой
- Исправлено создание дубликатов чатов (поиск по member_ids)
- Удалены визуальные статусные индикаторы (is_active ≠ online)
- Добавлен статус сотрудника из последнего action
Fixes:
- type 'private' вместо 'direct' для личных чатов
- ChatMembership проверки в user_can_access_chat()
- member_ids в ChatListSerializer для поиска чатов
2026-03-16 18:21:24 +03:00