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:
200
CHANGES_v4.1.5.md
Normal file
200
CHANGES_v4.1.5.md
Normal 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 с текстом проблемы!
|
||||
Reference in New Issue
Block a user