mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 18:52:56 +00:00
upload
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
# Vylepšení správy souborů - File Management Enhancements
|
||||
|
||||
## 🎯 Problém
|
||||
V admin rozhraní se zobrazovalo méně souborů než bylo skutečně v `uploads` složce. Soubory na disku nebyly synchronizované s databází.
|
||||
|
||||
## ✅ Řešení
|
||||
|
||||
### Backend vylepšení (`files_controller.go`)
|
||||
|
||||
1. **Lepší skenování souborů**
|
||||
- ✓ Přeskakování `.gitkeep` a skrytých souborů
|
||||
- ✓ Cross-platform kompatibilita cest (Windows/Linux)
|
||||
- ✓ Normalizace cest (backslashes → forward slashes)
|
||||
- ✓ Detailní logování všech operací
|
||||
- ✓ Seznam nově přidaných souborů
|
||||
- ✓ Seznam osiřelých záznamů
|
||||
|
||||
2. **Nová data v odpovědi**
|
||||
```json
|
||||
{
|
||||
"message": "Scan completed",
|
||||
"found_files": 14,
|
||||
"new_files": 5,
|
||||
"orphaned_files": 0,
|
||||
"skipped_files": 1,
|
||||
"new_files_list": ["soubor1.jpg", "soubor2.png"],
|
||||
"orphaned_list": []
|
||||
}
|
||||
```
|
||||
|
||||
### Frontend vylepšení (`FilesAdminPage.tsx`)
|
||||
|
||||
1. **Nový modal s výsledky skenování**
|
||||
- 📊 Přehledné zobrazení statistik
|
||||
- 📝 Seznam všech nově přidaných souborů
|
||||
- ⚠️ Upozornění na osiřelé záznamy
|
||||
- 🎨 Barevné rozlišení podle typu
|
||||
|
||||
2. **Lepší UX**
|
||||
- 💡 Info alert při prázdné databázi
|
||||
- 🔄 Automatické obnovení všech seznamů po skenu
|
||||
- 📋 Detailní zpětná vazba o výsledcích
|
||||
|
||||
## 🚀 Jak používat
|
||||
|
||||
### Pro správce
|
||||
1. Otevřít admin panel → **Správa souborů**
|
||||
2. Kliknout na **"Skenovat soubory"**
|
||||
3. Zobrazí se dialog s výsledky:
|
||||
- Kolik souborů bylo nalezeno na disku
|
||||
- Kolik nových souborů bylo přidáno do DB
|
||||
- Jaké soubory byly přeskočeny
|
||||
- Které záznamy jsou osiřelé
|
||||
|
||||
### Co se stane při skenování?
|
||||
|
||||
```
|
||||
uploads/
|
||||
├── 2025/
|
||||
│ └── 10/
|
||||
│ ├── .gitkeep ← PŘESKOČENO
|
||||
│ ├── soubor1.jpg ← PŘIDÁNO DO DB
|
||||
│ ├── soubor2.png ← PŘIDÁNO DO DB
|
||||
│ └── soubor3.pdf ← PŘIDÁNO DO DB
|
||||
```
|
||||
|
||||
## 📋 Technické detaily
|
||||
|
||||
### Normalizace cest
|
||||
- Windows: `uploads\2025\10\file.jpg` → `uploads/2025/10/file.jpg`
|
||||
- Linux: `uploads/2025/10/file.jpg` → `uploads/2025/10/file.jpg`
|
||||
- Vše se ukládá s forward slashes pro konzistenci
|
||||
|
||||
### Přeskakované soubory
|
||||
- `.gitkeep` - git placeholder
|
||||
- Soubory začínající tečkou (`.hidden`)
|
||||
- Adresáře (procházejí se, ale neukládají)
|
||||
|
||||
### Osiřelé záznamy
|
||||
- Soubory v databázi, které neexistují na disku
|
||||
- Zobrazují se s varováním
|
||||
- Můžete je ručně smazat nebo nechat
|
||||
|
||||
## 🔧 Údržba
|
||||
|
||||
### Kdy spustit skenování?
|
||||
- Po ručním nahrání souborů přímo na disk
|
||||
- Po obnově zálohy souborů
|
||||
- Po migraci dat
|
||||
- Pravidelně pro kontrolu integrity
|
||||
|
||||
### Řešení problémů
|
||||
|
||||
**Problém:** Soubory se nezobrazují
|
||||
**Řešení:** Kliknout na "Skenovat soubory"
|
||||
|
||||
**Problém:** Hodně osiřelých záznamů
|
||||
**Řešení:**
|
||||
1. Zkontrolovat, zda nebyly soubory omylem smazány
|
||||
2. Případně obnovit ze zálohy
|
||||
3. Nebo smazat osiřelé záznamy z DB
|
||||
|
||||
**Problém:** Duplicity souborů
|
||||
**Řešení:** Použít záložku "Duplicity" pro identifikaci a smazání
|
||||
|
||||
## 📊 Příklad výstupu
|
||||
|
||||
```
|
||||
Skenování dokončeno!
|
||||
|
||||
Nalezených souborů: 14
|
||||
Nově přidaných: 8
|
||||
Přeskočených: 1 (.gitkeep)
|
||||
Osiřelých záznamů: 0
|
||||
|
||||
Nově přidané soubory:
|
||||
✓ 20251012-153300-4ae40e0a8f2d07ccb77d6b3d2d304b19.jpg
|
||||
✓ 20251012-153729-9de174bac53faf8b5cdb6c9ddf0a3a47.jpg
|
||||
✓ 20251012-160206-5269551bcaccab0926167ebc234e5c23.jpg
|
||||
...
|
||||
```
|
||||
|
||||
## 🎨 Nové funkce UI
|
||||
|
||||
- **Badge s počty** - Rychlý přehled o stavu
|
||||
- **Scrollovatelné seznamy** - Pro dlouhé seznamy souborů
|
||||
- **Barevné kódování** - Zelená (nové), Oranžová (varování), Modrá (info)
|
||||
- **Monospace font** - Pro názvy souborů
|
||||
|
||||
## ⚡ Performance
|
||||
|
||||
- Rychlé skenování i pro stovky souborů
|
||||
- Batch zpracování v databázi
|
||||
- Minimální paměťová náročnost
|
||||
- Logování do backend logu pro debugging
|
||||
|
||||
## 🔐 Bezpečnost
|
||||
|
||||
- ✓ Pouze admin má přístup
|
||||
- ✓ Validace cest (prevence directory traversal)
|
||||
- ✓ Kontrola existence souborů
|
||||
- ✓ Bezpečné mazání s potvrzením
|
||||
Reference in New Issue
Block a user