- Реструктуризация: 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
85 lines
3.2 KiB
Markdown
85 lines
3.2 KiB
Markdown
# 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
|