mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-03 18:22:57 +00:00
336 lines
8.3 KiB
Markdown
336 lines
8.3 KiB
Markdown
# 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
|
|
|
|
### Social Media Links
|
|
- Add/remove social platforms
|
|
- Customizable ordering
|
|
- Show/hide toggle
|
|
- Supports: Facebook, Instagram, YouTube, Twitter, TikTok, LinkedIn, Discord, Twitch
|
|
|
|
## 📍 Quick Access
|
|
|
|
**Admin Panel Location:** `/admin` → **Navigace** (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
|
|
```
|
|
|
|
### 3. Social Media Links
|
|
|
|
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
|
|
```yaml
|
|
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í
|
|
```
|
|
|
|
## 📚 Related Documentation
|
|
|
|
- **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
|