mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-03 18:22:57 +00:00
4.0 KiB
4.0 KiB
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)
-
Lepší skenování souborů
- ✓ Přeskakování
.gitkeepa 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ů
- ✓ Přeskakování
-
Nová data v odpovědi
{ "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)
-
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
-
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
- Otevřít admin panel → Správa souborů
- Kliknout na "Skenovat soubory"
- 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í:
- Zkontrolovat, zda nebyly soubory omylem smazány
- Případně obnovit ze zálohy
- 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