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

84
VERSION_SUMMARY.md Normal file
View File

@@ -0,0 +1,84 @@
# AKNAPROFF Tootmine - Краткая сводка версий
**Проект:** AKNAPROFF Tootmine
**Дата:** 28.11.2025
**Версии:** v4.0.4 → v4.0.13
---
## 📊 Быстрая справка
| Версия | Проблема | Решение | Статус |
|--------|----------|---------|--------|
| v4.0.5 | Пустая таблица, клики не работали | Исправлен default month filter (January) | ✅ РАБОТАЕТ |
| v4.0.6 | HTTP 401 Unauthorized | optionalAuthMiddleware для 13 endpoints | ✅ РАБОТАЕТ |
| v4.0.7 | Браузер кеширует старый код | Cache busting (app.js?v=4.0.7) | ✅ РАБОТАЕТ |
| v4.0.8 | Frontend блокирует Public User | Удалены role checks и CSS hiding | ✅ РАБОТАЕТ |
| v4.0.9 | MAT-1/MAT-2 checkbox не toggle | Добавлено логирование, возврат newValue | ✅ РАБОТАЕТ |
| v4.0.10 | Date picker не открывается | Попытка через .click() | ❌ НЕ СРАБОТАЛО |
| v4.0.11 | События не происходят | Попытка через <label for> | ❌ НЕ СРАБОТАЛО |
| v4.0.12 | Calendar нигде не открывается | Убран pointer-events:none | ⚠️ ЧАСТИЧНО |
| v4.0.13 | Public User не видит calendar | Убран isAdmin check | ✅ РАБОТАЕТ |
---
## 🎯 Финальное решение (v4.0.13)
### Проблема
```javascript
// Public User видел read-only вместо calendar picker
const isAdmin = currentUser?.role === 'admin';
${isAdmin ? renderCalendarCell(...) : renderReadOnlyCell(...)}
```
### Решение
```javascript
// Все пользователи видят calendar picker
${renderCalendarCell(...)}
```
### Результат
**MAT-1, MAT-2, PAKETT**: Calendar picker для всех
**LÕIKUS, KLAAS, VALMIS, VÄLJAS**: 3-step toggle (пусто → дата → ошибка)
---
## 🔗 URLs
- **Sandbox**: https://3000-iabcqs9fpouqnd3allaai-82b888ba.sandbox.novita.ai
- **Git**: /home/user/webapp
- **Подробная история**: FULL_DEVELOPMENT_HISTORY.md (25KB)
---
## 📝 Ключевые изменения
### Backend (src/index.tsx)
- ✅ 13 endpoints с optionalAuthMiddleware
- ✅ userId || null в audit logs
- ✅ Toggle endpoints для MAT-1/MAT-2
### Frontend (public/static/app.js)
- ✅ Убраны role checks (openModal, editRecord, toggleDeleteButtons)
- ✅ Убран isAdmin check для renderCalendarCell
- ✅ <label for> без pointer-events:none
- ✅ Cache busting (app.js?v=4.0.13)
### HTML (public/original.html)
- ✅ Убран admin-only-block CSS
- ✅ Кнопка "Lisa uus rida" видна всем
---
## 🚀 Тестирование
**ВАЖНО: Очистите кеш (Ctrl+Shift+R) или используйте Incognito!**
1. **MAT-1/MAT-2**: Клик → Календарь открывается
2. **LÕIKUS/KLAAS**: Клик → Toggle (белый → зелёный → белый)
3. **Checkbox MAT-1/MAT-2**: Клик → Toggle (серый ↔ зелёный)
4. **CRUD**: "Lisa uus rida" → Модальное окно
---
**Полная документация:** См. FULL_DEVELOPMENT_HISTORY.md