# AKNAPROFF Tootmine - Изменения v4.1.0 **Дата:** 28.11.2025 **Версия:** v4.1.0 --- ## 🎯 Реализованные изменения ### 1. ✅ Логика блокировки изменена **Было:** Проблемы блокировали поля при наличии текста ИЛИ галочек ошибок **Стало:** Блокировка только по галочкам ошибок, текст - только пояснение **Технические детали:** - Убрана проверка `(record.problems && record.problems.trim())` из условия hasProblems - Блокировка происходит только при установленных флагах ошибок ### 2. ✅ Система авторизации и ролей **Реализовано 3 уровня доступа:** | Роль | Доступ | Описание | |------|--------|----------| | **guest** | Только просмотр | Гость без входа - ничего не может изменять | | **user** | Просмотр + Проблемы | Простой пользователь - может изменять только Problems | | **admin** | Полный доступ | Администратор - может изменять всё | **Функциональность:** - При открытии без логина показывается форма входа - Guest (гость) - только read-only просмотр - User - может редактировать проблемы (текст + галочки ошибок) - Admin - полный доступ ко всем функциям **Защищённые функции:** - toggleDate() - только admin - toggleMaterialConfirmed() - только admin - toggleMaterial2Confirmed() - только admin - toggleWorksheetsStep() - только admin - togglePricePaid() - только admin - saveNotes() - только admin - saveProblems() - user и admin ### 3. ✅ Кнопка сортировки по ID **Добавлена кнопка "ID" перед фильтрами:** - Клик 1: Сортировка по возрастанию (↑) - Клик 2: Сортировка по убыванию (↓) - Клик 3: Отключение сортировки - Иконка показывает текущее состояние --- ## 📂 Измененные файлы ### Для копирования на сервер: ```bash # Frontend файлы (обязательно) public/static/app.js public/original.html # Backend файлы (обязательно) src/index.tsx # Если были изменения в API src/original-html.ts # Embedded HTML # Build файлы (создаются автоматически) dist/_worker.js # Скомпилированный backend ``` --- ## 🚀 Инструкция по обновлению на сервере ### Вариант 1: Полное обновление (РЕКОМЕНДУЕТСЯ) ```bash # 1. Остановить контейнер docker-compose down # 2. Скопировать файлы из локальной машины на сервер scp public/static/app.js user@server:/path/to/webapp/public/static/ scp public/original.html user@server:/path/to/webapp/public/ scp src/original-html.ts user@server:/path/to/webapp/src/ # 3. Пересобрать на сервере cd /path/to/webapp npm run build # 4. Запустить контейнер docker-compose up -d --build ``` ### Вариант 2: Только frontend (БЕЗ ПЕРЕСБОРКИ) Если НЕ ИЗМЕНЯЛСЯ backend (src/index.tsx), можно обновить только frontend: ```bash # 1. Скопировать файлы scp public/static/app.js user@server:/path/to/webapp/public/static/ scp public/original.html user@server:/path/to/webapp/public/ scp src/original-html.ts user@server:/path/to/webapp/src/ # 2. Пересобрать docker-compose exec aknaproff-backend npm run build # 3. Перезапустить (НЕ пересобирать образ) docker-compose restart ``` ### Вариант 3: Копирование готового dist/ ```bash # 1. Собрать локально (уже сделано) npm run build # 2. Скопировать dist на сервер scp dist/_worker.js user@server:/path/to/webapp/dist/ # 3. Перезапустить docker-compose restart ``` --- ## ⚠️ ВАЖНО: База данных **БД НЕ ИЗМЕНЯЛАСЬ!** Миграции не требуются. Все изменения только в логике приложения: - Логика hasProblems (frontend) - Система прав (frontend) - Кнопка сортировки (frontend) **Данные в БД сохранятся полностью.** --- ## ✅ Проверка после обновления ### 1. Проверить вход ```bash # Открыть в браузере http://your-server:8180 # Должна показаться форма входа ``` ### 2. Тестировать роли **Guest (без входа):** - ❌ Не может ничего изменять - ✅ Может только просматривать **User (простой пользователь):** - ✅ Может изменять Problems (текст + галочки) - ❌ Не может изменять даты, notes, статусы **Admin:** - ✅ Может изменять всё ### 3. Проверить сортировку - Нажать кнопку "ID" перед фильтрами - Проверить сортировку: ↑ → ↓ → отключено ### 4. Проверить логику блокировки - Поставить галочку ошибки без текста - Поле VALMIS/VÄLJAS должно заблокироваться (красное) - Убрать галочку, добавить только текст - Поле VALMIS/VÄLJAS НЕ должно блокироваться --- ## 📊 Сводка изменений | Компонент | Изменено | Тип | |-----------|----------|-----| | Логика hasProblems | ✅ | Frontend | | Система авторизации | ✅ | Frontend | | Проверки прав | ✅ | Frontend | | Кнопка сортировки | ✅ | Frontend | | База данных | ❌ | Не изменялась | | Backend API | ❌ | Не изменялся | --- ## 🔧 Откат изменений (если что-то пошло не так) ```bash # 1. Вернуться к предыдущей версии git checkout v4.0.13 # 2. Пересобрать npm run build # 3. Перезапустить docker-compose up -d --build ``` --- **Готово к deployment!** 🚀