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
This commit is contained in:
Deploy Bot
2026-01-14 18:37:00 +02:00
parent 4898f5ec7f
commit 64403d6fd6
113 changed files with 19231 additions and 3084 deletions

200
CHANGES_v4.1.5.md Normal file
View File

@@ -0,0 +1,200 @@
# 🔴 CHANGES v4.1.5 - Restore Probleemid Visual Indicators
**Дата**: 2025-11-28
**Версия**: v4.1.5
**Тип**: Bug Fix / Visual Restoration
---
## 📝 Что восстановлено
### Поле "Probleemid" (Проблемы) - визуальная индикация
**Проблема**: Поле Probleemid не показывало визуальные индикаторы проблем.
**Восстановлено**:
#### 1. Красный фон с восклицательным знаком ⚠️
Когда есть галочки ошибок (error flags):
- **Цвет**: Красный фон (`bg-red-500`)
- **Иконка**: Восклицательный треугольник `<i class="fas fa-exclamation-triangle"></i>`
- **Tooltip**: Текст проблемы при наведении курсора
- **Условие**: Хотя бы одна галочка проблемы установлена (worksheets_error, cutting_error, glazing_error, ready_error, issued_error)
#### 2. Серый фон с информационной иконкой
Когда есть только текст проблемы, но нет галочек:
- **Цвет**: Серый фон (`bg-gray-300`)
- **Иконка**: Информационный круг `<i class="fas fa-info-circle"></i>`
- **Tooltip**: Текст проблемы при наведении курсора
- **Условие**: Есть текст в поле problems, но нет галочек ошибок
#### 3. Пустое поле (нет проблем)
Когда нет ни галочек, ни текста:
- **Цвет**: Светло-серый (`bg-gray-100`)
- **Символ**: Прочерк `-`
- **Действие**: Клик открывает модальное окно для добавления проблем
---
## 🎨 Визуальные состояния
### Состояние 1: Есть галочки ошибок
```
┌─────────────┐
│ 🔴 ⚠️ │ ← Красный с восклицательным знаком
└─────────────┘
↑ Наведение показывает текст проблемы
```
### Состояние 2: Только текст, нет галочек
```
┌─────────────┐
│ ⚪ │ ← Серый с информационной иконкой
└─────────────┘
↑ Наведение показывает текст проблемы
```
### Состояние 3: Нет проблем
```
┌─────────────┐
│ - │ ← Светло-серый с прочерком
└─────────────┘
↑ Клик для добавления проблемы
```
---
## 🔍 Логика отображения
```javascript
// Проверка галочек ошибок
const hasProblems = record.worksheets_error === 1 ||
record.cutting_error === 1 ||
record.glazing_error === 1 ||
record.ready_error === 1 ||
record.issued_error === 1;
// Если есть галочки → КРАСНЫЙ с ⚠️
if (hasProblems) {
return RED + exclamation-triangle icon + tooltip
}
// Если только текст → СЕРЫЙ с
if (problems && problems.trim()) {
return GRAY + info-circle icon + tooltip
}
// Иначе → пустой
return LIGHT_GRAY + "-"
```
---
## 📦 Изменённые файлы
### 1. public/static/app.js
- Функция `renderProblemsCell()` полностью переписана
- Добавлена проверка `hasProblems` (галочки ошибок)
- Добавлены 3 состояния: красный/серый/пустой
- Добавлены иконки Font Awesome
- Добавлен tooltip с текстом проблемы
- Обновлена версия: `app.js?v=4.1.4``app.js?v=4.1.5`
### 2. public/original.html
- Обновлена версия cache-busting
### 3. src/original-html.ts
- Регенерирован
### 4. dist/_worker.js
- Пересобран
---
## ✅ Тестирование
### Сценарий 1: Запись с галочками проблем
**Запись ID 2** (worksheets_error=1, glazing_error=1):
- ✅ Показывает КРАСНЫЙ фон
- ✅ Показывает иконку ⚠️
- ✅ При наведении показывает текст "qqqq"
- ✅ Клик открывает модальное окно с отмеченными галочками
### Сценарий 2: Запись с текстом, но без галочек
Если добавить текст проблемы без галочек:
- ✅ Показывает СЕРЫЙ фон
- ✅ Показывает иконку
- ✅ При наведении показывает текст
- ✅ Клик открывает модальное окно
### Сценарий 3: Запись без проблем
**Записи ID 1, 4, 5**:
- ✅ Показывает светло-серый фон с прочерком `-`
- ✅ Клик открывает модальное окно для добавления
---
## 🚀 Deployment
```bash
# Быстрый вариант
scp dist/_worker.js user@server:/path/to/webapp/dist/
docker-compose restart
# Полный вариант
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/
# На сервере: npm run build && docker-compose restart
```
### Проверка
```bash
curl -I http://localhost:8180
# Браузер: Ctrl+Shift+R
# Проверить поле Probleemid:
# - Записи с галочками → красный фон с ⚠️
# - Записи с текстом → серый фон с
# - Записи без проблем → серый с "-"
# - Наведение курсора → показывает tooltip
```
---
## 🔗 URLs
- **Production**: https://3000-iabcqs9fpouqnd3allaai-82b888ba.sandbox.novita.ai
- **Git Commit**: d79f236
---
## 📊 Статус
**Версия**: v4.1.5
**Статус**: ✅ Production Ready
**HTTP Status**: 200 OK
**JavaScript Errors**: 0
**Database**: Не изменена
---
## 💡 Ключевые моменты
1. **Галочки = красный** - Если хотя бы одна галочка установлена, поле красное с ⚠️
2. **Текст = информация** - Если есть только текст, поле серое с
3. **Tooltip = подсказка** - При наведении курсора показывается полный текст проблемы
4. **Font Awesome** - Используются иконки:
- `fa-exclamation-triangle` для ошибок
- `fa-info-circle` для информации
---
## 📚 Связанные версии
Эта функциональность связана с изменениями в v4.1.0:
- Галочки проблем блокируют поля VALMIS/VÄLJAS
- Текст проблемы - только комментарий, не блокирует
---
**🎯 Готово!** Поле Probleemid теперь правильно показывает красный фон с ⚠️ и tooltip с текстом проблемы!