Files
MyClub/DOCS/NAVIGATION_TROUBLESHOOTING.md
Tomáš Dvořák 12cba639b9 upload
2025-10-16 13:32:05 +02:00

5.3 KiB

Ř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):

    $env:RUN_MIGRATIONS="true"
    go run main.go
    

    Linux/Mac:

    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:
    curl http://localhost:8080/api/v1/navigation
    

Pokud dostanete chybu "Connection refused" nebo podobnou, backend neběží.

Řešení

Spusťte backend:

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:

# 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