# Řešení problémů s navigací ## Problém: Žádné položky navigace se nenačítají Pokud se na stránce **Správa navigace** nezobrazuje žádný obsah (ani ve webové navigaci, ani v admin panelu, ani sociální sítě), může to být způsobeno několika důvody: ### 1. Databázové tabulky nejsou vytvořeny nebo jsou prázdné #### Kontrola stavu 1. Otevřete **Správu navigace** (`/admin/navigace`) 2. Zkontrolujte informační panel nahoře - měl by zobrazit: "Načteno: X webových, X admin, X sociálních" 3. Otevřete konzoli prohlížeče (F12) a podívejte se na výpis: ``` Načtená navigace: [] Načtené sociální odkazy: [] ``` Pokud jsou pole prázdná (`[]`), znamená to, že backend běží správně, ale databáze je prázdná. #### Řešení A: Spustit migrace s výchozími daty Tabulky `navigation_items` a `social_links` se vytvoří automaticky při startu aplikace, ale **výchozí data se vkládají pouze při spuštění migrací**. **Postup:** 1. Zastavte backend server (pokud běží) 2. Spusťte backend s příznakem pro migrace: **Windows (PowerShell):** ```powershell $env:RUN_MIGRATIONS="true" go run main.go ``` **Linux/Mac:** ```bash RUN_MIGRATIONS=true go run main.go ``` 3. Zkontrolujte logy - měli byste vidět: ``` Running database migrations... Migration 20251010154600_create_navigation_system.up.sql applied successfully ``` 4. Obnovte stránku správy navigace 5. Nyní byste měli vidět výchozí navigační položky: - Domů - O klubu - Kalendář - Zápasy - Aktivity - Hráči - Tabulky - Články - Videa - Fotogalerie - Sponzoři - Kontakt #### Řešení B: Vytvořit položky ručně Pokud nechcete spouštět migrace (např. už jste upravili databázi), můžete položky vytvořit ručně: 1. V záložce **Webová navigace** klikněte na tlačítko **"Přidat hlavní položku"** 2. Vyplňte formulář: - **Název:** např. "Domů" - **Typ:** Vyberte "Stránka (vyberte existující)" - **Webová stránka:** Vyberte ze seznamu, např. "Domů (/)" - **Viditelné:** Zapnuto (checkbox) 3. Klikněte na **Uložit** 4. Opakujte pro další stránky ### 2. Problémy s API připojením Pokud vidíte chybovou hlášku při načítání, může se jednat o problém s API. #### Kontrola 1. Otevřete konzoli prohlížeče (F12) 2. Přejděte na záložku **Network/Síť** 3. Obnovte stránku správy navigace 4. Podívejte se na požadavky: - `GET /api/v1/admin/navigation` - měl by vrátit status 200 - `GET /api/v1/admin/social-links` - měl by vrátit status 200 #### Možné chyby: **Status 401 Unauthorized:** - Nejste přihlášeni jako administrátor - Řešení: Odhlaste se a znovu se přihlaste **Status 404 Not Found:** - Backend neběží nebo běží na jiném portu - Zkontrolujte `.env` soubor: `REACT_APP_API_URL=http://localhost:8080/api/v1` - Ověřte, že backend běží na portu 8080 **Status 500 Internal Server Error:** - Chyba na straně serveru - Zkontrolujte logy backendu - Možná databáze neběží nebo není dostupná **CORS Error:** - Backend blokuje požadavky z frontendu - Řešení: Ujistěte se, že backend běží v dev módu (`APP_ENV=development`) ### 3. Backend neběží #### Kontrola 1. Otevřete novou PowerShell/terminál 2. Zkuste přistoupit k API přímo: ```powershell curl http://localhost:8080/api/v1/navigation ``` Pokud dostanete chybu "Connection refused" nebo podobnou, backend neběží. #### Řešení Spusťte backend: ```powershell cd c:\Users\conta\Downloads\PROG+HTML\Fotbal\fotbal-club go run main.go ``` ### 4. Databáze neběží Pokud backend vyhodí chybu při startu o nemožnosti připojení k databázi: ``` Failed to connect to database: connection refused ``` #### Řešení 1. Zkontrolujte, zda PostgreSQL běží 2. Ověřte konfiguraci v `.env`: ``` DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASSWORD=your_password DB_NAME=fotbal_club ``` 3. Spusťte PostgreSQL server ## Rychlá diagnostika - Checklist - [ ] Backend běží (vidím "Server starting on port 8080" v logu) - [ ] Frontend běží (React dev server na portu 3000) - [ ] Jsem přihlášen jako administrátor - [ ] V konzoli prohlížeče vidím: `Načtená navigace: []` (prázdné pole, ne chyba) - [ ] Spustil jsem migrace s `RUN_MIGRATIONS=true` nebo vytvořil položky ručně - [ ] Obnovil jsem stránku po přidání dat ## Testování API přímo Můžete otestovat API přímo pomocí curl/PowerShell: ```powershell # Získat veřejné navigační položky curl http://localhost:8080/api/v1/navigation # Získat admin navigační položky (vyžaduje přihlášení) # Nejprve se přihlaste přes prohlížeč, pak: curl http://localhost:8080/api/v1/admin/navigation -H "Cookie: your-session-cookie" ``` ## Pokud nic nepomůže 1. Zkontrolujte konzoli prohlížeče - hledejte červené chyby 2. Zkontrolujte logy backendu - hledejte chybové zprávy 3. Zkuste restartovat: - Backend server - Frontend dev server - PostgreSQL databázi 4. Zkuste vymazat cookies a local storage prohlížeče 5. Použijte režim inkognito/soukromé okno ## Podpora Pokud problém přetrvává: 1. Zkopírujte chybovou zprávu z konzole prohlížeče 2. Zkopírujte logy z backendu 3. Uveďte, které kroky jste již vyzkoušeli