- Реструктуризация: 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
229 lines
7.7 KiB
Markdown
229 lines
7.7 KiB
Markdown
# 🔧 CHANGES v4.1.3 - UI Polish & New User
|
||
|
||
**Дата**: 2025-11-28
|
||
**Версия**: v4.1.3
|
||
**Тип**: UI Improvement + User Management
|
||
|
||
---
|
||
|
||
## 📝 Что изменено
|
||
|
||
### 1. Убрано слово "Sorteerimine"
|
||
- **ДО**: Кнопка имела label "Sorteerimine" над ней
|
||
- **ПОСЛЕ**: Только кнопка "ID" с иконкой сортировки (↕)
|
||
- **Причина**: Более компактный и чистый UI
|
||
|
||
### 2. Добавлен новый пользователь "kasutaja"
|
||
- **Username**: kasutaja
|
||
- **Password**: tootmine
|
||
- **Full Name**: Kasutaja
|
||
- **Role**: user (обычный пользователь)
|
||
|
||
### 3. Уточнена система ролей
|
||
|
||
**Три пользователя с двумя уровнями доступа**:
|
||
|
||
| Username | Password | Full Name | Role | Уровень доступа |
|
||
|----------|----------|-----------|------|-----------------|
|
||
| kasutaja | tootmine | Kasutaja | user | Обычный пользователь |
|
||
| aknaproff | demo123 | AKNAPROFF | admin | Администратор |
|
||
| admin | demo123 | Administrator | admin | Администратор |
|
||
|
||
**Права доступа**:
|
||
|
||
#### User (kasutaja)
|
||
- ✅ Просмотр всех записей
|
||
- ✅ Изменение проблем (текст + галочки)
|
||
- ✅ Просмотр Notes (read-only)
|
||
- ❌ Изменение дат
|
||
- ❌ Изменение MAT-1/MAT-2
|
||
- ❌ Добавление/редактирование/удаление записей
|
||
|
||
#### Admin (aknaproff, admin)
|
||
- ✅ Все права User
|
||
- ✅ Изменение дат (toggle)
|
||
- ✅ Изменение MAT-1/MAT-2 (toggle)
|
||
- ✅ Изменение LÕIKUS/KLAAS/VALMIS/VÄLJAS (3-step cycle)
|
||
- ✅ Добавление записей
|
||
- ✅ Редактирование записей
|
||
- ✅ Удаление записей
|
||
|
||
**Примечание**: aknaproff и admin имеют одинаковый уровень доступа (оба admin).
|
||
|
||
---
|
||
|
||
## 🎨 Визуальные изменения
|
||
|
||
### ДО (v4.1.2):
|
||
```
|
||
┌─ Kiir otsing ─────────────────────────────┐
|
||
│ Sorteerimine │
|
||
│ [ID ↕] │
|
||
│ │
|
||
│ Klient │
|
||
│ [Otsi kliendi järgi...] │
|
||
└───────────────────────────────────────────┘
|
||
```
|
||
|
||
### ПОСЛЕ (v4.1.3):
|
||
```
|
||
┌─ Kiir otsing ─────────────────────────────┐
|
||
│ [ID ↕] [Klient: Otsi kliendi järgi...] │
|
||
└───────────────────────────────────────────┘
|
||
```
|
||
|
||
**Преимущества**:
|
||
- Более компактный UI
|
||
- Меньше визуального шума
|
||
- Интуитивно понятно, что кнопка ID для сортировки
|
||
|
||
---
|
||
|
||
## 📦 Изменённые файлы
|
||
|
||
### 1. public/original.html
|
||
- Убран label с текстом "Sorteerimine"
|
||
- Кнопка ID теперь без label (только иконка + текст)
|
||
- Обновлена версия: `app.js?v=4.1.2` → `app.js?v=4.1.3`
|
||
|
||
### 2. seed.sql
|
||
- Добавлен пользователь "kasutaja" с паролем "tootmine"
|
||
- Обновлены комментарии с пояснением ролей
|
||
- Добавлен SHA-256 hash для пароля "tootmine"
|
||
|
||
### 3. src/original-html.ts
|
||
- Регенерирован embedded HTML
|
||
|
||
### 4. dist/_worker.js
|
||
- Пересобран с обновлениями
|
||
|
||
---
|
||
|
||
## 🧪 Тестирование
|
||
|
||
### Проверка UI
|
||
✅ Кнопка ID отображается без label "Sorteerimine"
|
||
✅ Кнопка компактная и выровнена с другими полями
|
||
✅ Функционал сортировки работает (↑ ↓ ↕)
|
||
|
||
### Проверка нового пользователя
|
||
✅ Вход: kasutaja / tootmine
|
||
✅ Роль: user
|
||
✅ Доступ только к просмотру и изменению проблем
|
||
✅ Остальные функции заблокированы (alert)
|
||
|
||
### Проверка существующих пользователей
|
||
✅ aknaproff / demo123 - admin права
|
||
✅ admin / demo123 - admin права
|
||
✅ Оба имеют полный доступ
|
||
|
||
---
|
||
|
||
## 🔐 Учётные данные
|
||
|
||
### Production Users
|
||
|
||
**Обычный пользователь**:
|
||
- Username: `kasutaja`
|
||
- Password: `tootmine`
|
||
- Доступ: просмотр + изменение проблем
|
||
|
||
**Администраторы** (одинаковые права):
|
||
- Username: `aknaproff` | Password: `demo123`
|
||
- Username: `admin` | Password: `demo123`
|
||
- Доступ: полный
|
||
|
||
**Гость** (без входа):
|
||
- Кнопка: "Vaata ainult"
|
||
- Доступ: только просмотр (read-only)
|
||
|
||
---
|
||
|
||
## 🔗 URLs
|
||
|
||
- **Production**: https://3000-iabcqs9fpouqnd3allaai-82b888ba.sandbox.novita.ai
|
||
- **Git Commit**: Будет добавлен после коммита
|
||
|
||
---
|
||
|
||
## 📊 Статус
|
||
|
||
**Версия**: v4.1.3
|
||
**Статус**: ✅ Production Ready
|
||
**HTTP Status**: 200 OK
|
||
**JavaScript Errors**: 0
|
||
**Database**: Обновлена (добавлен пользователь kasutaja)
|
||
|
||
---
|
||
|
||
## 🚀 Deployment Instructions
|
||
|
||
### ⚠️ ВАЖНО: Требуется обновление базы данных!
|
||
|
||
**На production сервере**:
|
||
|
||
```bash
|
||
# 1. Скопировать seed.sql с новым пользователем
|
||
scp seed.sql user@server:/path/to/webapp/
|
||
|
||
# 2. На сервере применить seed.sql
|
||
docker-compose exec aknaproff-backend sh -c "
|
||
cd /app &&
|
||
npx wrangler d1 execute webapp-production --local --file=./seed.sql
|
||
"
|
||
|
||
# 3. Проверить, что пользователь добавлен
|
||
docker-compose exec aknaproff-backend sh -c "
|
||
npx wrangler d1 execute webapp-production --local \
|
||
--command='SELECT username, full_name, role FROM users'
|
||
"
|
||
|
||
# Должно вывести:
|
||
# - kasutaja | Kasutaja | user
|
||
# - aknaproff | AKNAPROFF | admin
|
||
# - admin | Administrator | admin
|
||
|
||
# 4. Скопировать обновлённые файлы
|
||
scp dist/_worker.js user@server:/path/to/webapp/dist/
|
||
# или
|
||
scp public/original.html user@server:/path/to/webapp/public/
|
||
scp src/original-html.ts user@server:/path/to/webapp/src/
|
||
# и потом: npm run build
|
||
|
||
# 5. Перезапустить
|
||
docker-compose restart
|
||
```
|
||
|
||
### Проверка после deployment
|
||
|
||
```bash
|
||
# 1. Проверить HTTP
|
||
curl -I http://localhost:8180
|
||
|
||
# 2. Войти в браузере под kasutaja/tootmine
|
||
# 3. Проверить, что доступно только изменение проблем
|
||
# 4. Войти под aknaproff/demo123 или admin/demo123
|
||
# 5. Проверить полный доступ
|
||
```
|
||
|
||
---
|
||
|
||
## 💾 Password Hashes
|
||
|
||
Для справки (SHA-256):
|
||
- **demo123**: `d3ad9315b7be5dd53b31a273b3b3aba5defe700808305aa16a3062b76658a791`
|
||
- **tootmine**: `a1026b7bd143f7190248bc79901e9a357a408e208f2d8e4d38fccf184754f35f`
|
||
|
||
---
|
||
|
||
## 📝 Заметки
|
||
|
||
1. **База данных изменена**: Добавлен новый пользователь, требуется применение seed.sql на production
|
||
2. **Роли**: aknaproff и admin - оба admin, kasutaja - user
|
||
3. **UI**: Более компактный, убран label "Sorteerimine"
|
||
4. **Cache-busting**: v4.1.3, нужен Ctrl+Shift+R после deployment
|
||
|
||
---
|
||
|
||
**🎯 Готово!** UI упрощён, добавлен пользователь kasutaja (tootmine), система ролей уточнена.
|