Files
Aknaproff/CHANGES_v4.1.0.md
Deploy Bot 64403d6fd6 v4.1.21: Реструктуризация проекта для Synology ARM
- Реструктуризация: src/ разбит на middleware/, utils/, repositories/ (удалены), routes/ (удалены)
- Добавлен src/original-html.ts — полный HTML с reportModal
- Добавлен src/index.tsx.backup — React-компонент с reportModal
- Миграции переименованы (0001_initial_schema.sql)
- Добавлена миграция 0018 (удалена позже)
- Docker: multi-stage build, wrangler.toml
- Frontend: public/static/app.js + style.css
- seed.sql добавлен
- Документация: CHANGELOG, CHANGES_v4.1.0-4.1.9, PROJECT_STRUCTURE
2026-01-14 18:37:00 +02:00

6.7 KiB
Raw Blame History

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: Отключение сортировки
  • Иконка показывает текущее состояние

📂 Измененные файлы

Для копирования на сервер:

# 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: Полное обновление (РЕКОМЕНДУЕТСЯ)

# 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:

# 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/

# 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. Проверить вход

# Открыть в браузере
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 Не изменялся

🔧 Откат изменений (если что-то пошло не так)

# 1. Вернуться к предыдущей версии
git checkout v4.0.13

# 2. Пересобрать
npm run build

# 3. Перезапустить
docker-compose up -d --build

Готово к deployment! 🚀