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

200 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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!** 🚀