- Реструктуризация: 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
201 lines
7.4 KiB
Markdown
201 lines
7.4 KiB
Markdown
# 🔴 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 с текстом проблемы!
|