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

8.3 KiB

Split Navigation Management System

🎯 Overview

The navigation system now supports separate management for:

  1. Webová navigace (Frontend) - Public website menu
  2. Admin panel - Admin sidebar navigation
  3. Sociální sítě - Social media links

Key Features

Frontend Navigation

  • Dynamic menu on public website
  • Supports dropdown menus with sub-items
  • Mobile-responsive
  • Hover menus on desktop
  • Customizable ordering

Admin Panel Navigation

  • Manage sidebar menu in admin interface
  • Preset admin pages - Quick selection
  • Custom links - Add external tools (Webmail, etc.)
  • Categories - Group items with dropdown
  • Hide unused sections - Keep it clean
  • Reorder items - Prioritize your workflow
  • Add/remove social platforms
  • Customizable ordering
  • Show/hide toggle
  • Supports: Facebook, Instagram, YouTube, Twitter, TikTok, LinkedIn, Discord, Twitch

📍 Quick Access

Admin Panel Location: /adminNavigace (in sidebar under "Nastavení")

Quick Search: Press Ctrl+K in admin and type "navigace"

🚀 Getting Started

1. Frontend Navigation Setup

  1. Go to /admin/navigace
  2. Click tab "Webová navigace"
  3. Click "Přidat hlavní položku"
  4. Select:
    • Type: Page (for existing pages) or External (for outside links)
    • Page: Choose from dropdown (Home, Blog, Calendar, etc.)
    • Visible: Toggle on/off
  5. Use up/down arrows to reorder
  6. For dropdown menus:
    • Set type to "Dropdown"
    • After saving, click "Přidat podpoložku" to add children

Example: Create "Teams" dropdown with sub-pages

Main Item:
- Label: Týmy
- Type: Dropdown
- Visible: Yes

Sub-items (click "Přidat podpoložku"):
- A-tým → /hraci
- Mládež → /mladez
- Trenéři → /treneri

2. Admin Panel Navigation Setup

  1. Go to /admin/navigace
  2. Click tab "Admin panel"
  3. Click "Přidat položku do admin panelu"
  4. Choose from preset admin pages OR create custom link:

Preset Pages:

  • Nástěnka, Analytika, Týmy, Zápasy, etc.
  • Automatically sets correct URL

Custom External Link (e.g., Webmail):

Label: Webmail
Type: Externí odkaz
URL: https://webmail.yourclub.com
Target: _blank (new window)

Create Category:

Main Item:
- Label: Obsah
- Type: Kategorie (dropdown)

Sub-items:
- Články → /admin/clanky
- Videa → /admin/videa
- Galerie → /admin/galerie
  1. Go to /admin/navigace
  2. Click tab "Sociální sítě"
  3. Click "Přidat sociální síť"
  4. Select platform and enter URL
  5. Reorder with up/down arrows

🎨 Admin Panel Customization Examples

Hide Unused Sections

Don't use Teams feature? Just toggle visibility off - item stays in database but hidden from sidebar.

Add External Tools

Webmail:
  Label: "Webmail"
  Type: External
  URL: "https://webmail.example.com"
  Target: _blank

Google Analytics:
  Label: "Analytics Dashboard"
  Type: External
  URL: "https://analytics.google.com/..."
  Target: _blank

Organize by Category

📊 Dashboard
  - Nástěnka
  - Analytika

📝 Content Management
  - Články
  - Videa
  - Galerie
  
⚙️ Settings
  - Nastavení
  - Uživatelé
  - Navigace

🔗 External Tools
  - Webmail
  - Google Drive

Custom Names

Rename default pages:

"Články" → "News & Updates"
"Zápasy" → "Match Center"
"Týmy" → "Squad Management"

📋 Available Preset Admin Pages

Main

  • Nástěnka - /admin - Dashboard overview
  • Analytika - /admin/analytika - Analytics & stats

Content

  • Týmy - /admin/tymy - Team management
  • Zápasy - /admin/zapasy - Match management
  • Aktivity - /admin/aktivity - Events & activities
  • Hráči - /admin/hraci - Player roster
  • Články - /admin/clanky - Articles/Blog posts
  • Videa - /admin/videa - Video management
  • Galerie - /admin/galerie - Photo gallery

Communication

  • Zprávy - /admin/zpravy - Messages/Contact forms
  • Kontakty - /admin/kontakty - Contact management
  • Zpravodaj - /admin/newsletter - Newsletter campaigns

Settings

  • Navigace - /admin/navigace - Navigation management
  • Uživatelé - /admin/uzivatele - User accounts
  • Nastavení - /admin/nastaveni - General settings
  • Soubory - /admin/soubory - File manager
  • Prefetch - /admin/prefetch - Cache management
  • Dokumentace - /admin/docs - Help docs

🔧 Technical Details

Navigation Item Properties

Field Frontend Nav Admin Nav Description
label Display name
type page, internal, external, dropdown internal, external, dropdown Item type
page_type Frontend pages Admin pages Preset page identifier
url Auto or custom Auto or custom Link URL
visible Show/hide toggle
display_order Sort order
parent_id For nested items
target _self, _blank _self, _blank Link target
requires_admin false true Marks as admin nav

Database Separation

Navigation items are not stored in separate tables. Instead:

  • Items with requires_admin = false → Frontend navigation
  • Items with requires_admin = true → Admin panel navigation

This allows:

  • Unified management interface
  • Shared functionality (reorder, visibility, etc.)
  • Easy migration between frontend/admin
  • Consistent API endpoints

API Endpoints

Same endpoints handle both types:

GET    /api/v1/navigation        # Public (requires_admin=false only)
GET    /api/v1/admin/navigation  # Admin (all items)
POST   /api/v1/admin/navigation
PUT    /api/v1/admin/navigation/:id
DELETE /api/v1/admin/navigation/:id
POST   /api/v1/admin/navigation/reorder

💡 Best Practices

Frontend Navigation

  • Keep it simple - Max 7-9 top items
  • Logical grouping - Use dropdowns for related pages
  • Clear labels - Users should know where they're going
  • Mobile-first - Test on mobile devices

Admin Panel

  • Hide unused - Don't delete, just hide
  • Categorize - Group related pages
  • Custom tools - Add frequently-used external links
  • Prioritize - Most-used items at top

General

  • Test changes - Preview before making live
  • Document custom - Note any custom URLs
  • Regular review - Remove unused items periodically

🐛 Troubleshooting

Admin panel items not showing

  • Check requires_admin is set to true
  • Verify visibility is enabled
  • Check browser console for errors

Frontend navigation not updating

  • Changes require page refresh
  • Check API endpoint returns data
  • Verify requires_admin is false

Dropdown not working

  • Parent must have type="dropdown"
  • Children must have parent_id set
  • Children must be visible

Custom URL not working

  • Ensure URL starts with / for internal
  • Use full https:// for external
  • Check target setting for external links

🎓 Examples & Use Cases

Use Case 1: Multi-Team Club

Frontend:
├── Domů
├── Týmy (dropdown)
│   ├── A-tým
│   ├── B-tým
│   ├── Dorost
│   └── Přípravka
├── Zápasy
└── Kontakt

Admin:
├── Dashboard
├── Content (dropdown)
│   ├── Články
│   ├── Zápasy
│   └── Galerie
└── Nastavení

Use Case 2: External Tools Integration

Admin Panel:
├── Dashboard
├── Content Management
├── Settings
├── ─────────────
├── 🔗 External Tools
│   ├── Webmail
│   ├── Google Drive
│   ├── Canva Design
│   └── Social Scheduler

Use Case 3: Minimal Setup

Hide everything except:

Frontend:
- Domů
- Zápasy
- Kontakt

Admin:
- Nástěnka
- Zápasy
- Nastavení
  • ENHANCED_NAVIGATION_SYSTEM.md - Full technical documentation
  • NAVIGATION_QUICK_START.md - Quick reference guide
  • Admin Search - Ctrl+K → Type "navigace"

🆘 Support

Having issues?

  1. Check this guide first
  2. Review browser console for errors
  3. Verify database migrations are current
  4. Check API responses in Network tab

Version: 2.0
Feature: Split Navigation Management
Status: Production Ready
Date: October 2025