Sidebar: Konfigurationen-Gruppe mit Untereinträgen #4

Closed
opened 2026-02-20 21:11:17 +01:00 by ppfeiffer · 1 comment
Owner

Ziel

Die Sidebar erhält einen neuen Gruppeneintrag Konfigurationen mit drei untergeordneten Einträgen. Alle Einträge sind ausschließlich für eingeloggte Admins sichtbar (sidebar-admin).

Sidebar-Struktur (neu)

Dashboard
Karte
Pakete
Nachrichten          (sidebar-user)
── Konfigurationen ── (Gruppenüberschrift, sidebar-admin)
   Scheduler
   NINA
   Einstellungen    (neue Seite)
Benutzer             (sidebar-admin)

Aufgaben

1. static/js/app.js – Sidebar umstrukturieren

  • Gruppenüberschrift 'Konfigurationen' als nicht-verlinkten Trenner einfügen (sidebar-admin)
  • Scheduler, NINA und neue Einstellungsseite als eingerückte Untereinträge
  • _SIDEBAR_LINKS und _injectSidebar() um Gruppen-Support erweitern

2. static/css/style.css – Styling

  • .sidebar-group-label: kleine Beschriftung als Trenner (font-size .65rem, uppercase, gedämpfte Farbe)
  • .sidebar-link-sub: eingerückte Untereinträge (padding-left 1.5rem)

3. Neue Seite: Einstellungen (/config) – Admin only

Dateien: static/config.html + static/js/config.js

Bearbeitbare Felder (Vorschlag):

  • bot.name, bot.command_prefix
  • meshtastic.host, meshtastic.port
  • web.port, web.online_threshold
  • links[] Liste

Backend (meshbot/webserver.py):

  • GET /api/config – aktuelle Werte liefern (admin)
  • PUT /api/config – Werte in config.yaml schreiben und Live-Reload auslösen (admin)

Backend (meshbot/config.py):

  • Schreib-Funktion ergänzen um relevante Felder zu persistieren

4. Route registrieren

GET /config in meshbot/webserver.py eintragen


5. Umbenennung Titelleiste: MeshDD-Bot → MeshDD-Dashboard

Der Anzeigename in Navbar und Browser-Tab aller Seiten wird von "MeshDD-Bot" auf "MeshDD-Dashboard" umgestellt. Der Bot-Name in config.yaml (bot.name) bleibt unverändert.

Betroffene Dateien (jeweils <title> und Navbar-Text):

  • static/index.html
  • static/scheduler.html
  • static/nina.html
  • static/settings.html
  • static/packets.html
  • static/admin.html
  • static/messages.html
  • static/map.html
  • static/login.html
## Ziel Die Sidebar erhält einen neuen Gruppeneintrag **Konfigurationen** mit drei untergeordneten Einträgen. Alle Einträge sind ausschließlich für eingeloggte Admins sichtbar (`sidebar-admin`). ## Sidebar-Struktur (neu) ``` Dashboard Karte Pakete Nachrichten (sidebar-user) ── Konfigurationen ── (Gruppenüberschrift, sidebar-admin) Scheduler NINA Einstellungen (neue Seite) Benutzer (sidebar-admin) ``` ## Aufgaben ### 1. static/js/app.js – Sidebar umstrukturieren - Gruppenüberschrift 'Konfigurationen' als nicht-verlinkten Trenner einfügen (sidebar-admin) - Scheduler, NINA und neue Einstellungsseite als eingerückte Untereinträge - _SIDEBAR_LINKS und _injectSidebar() um Gruppen-Support erweitern ### 2. static/css/style.css – Styling - .sidebar-group-label: kleine Beschriftung als Trenner (font-size .65rem, uppercase, gedämpfte Farbe) - .sidebar-link-sub: eingerückte Untereinträge (padding-left 1.5rem) ### 3. Neue Seite: Einstellungen (/config) – Admin only Dateien: static/config.html + static/js/config.js Bearbeitbare Felder (Vorschlag): - bot.name, bot.command_prefix - meshtastic.host, meshtastic.port - web.port, web.online_threshold - links[] Liste Backend (meshbot/webserver.py): - GET /api/config – aktuelle Werte liefern (admin) - PUT /api/config – Werte in config.yaml schreiben und Live-Reload auslösen (admin) Backend (meshbot/config.py): - Schreib-Funktion ergänzen um relevante Felder zu persistieren ### 4. Route registrieren GET /config in meshbot/webserver.py eintragen --- ### 5. Umbenennung Titelleiste: MeshDD-Bot → MeshDD-Dashboard Der Anzeigename in Navbar und Browser-Tab aller Seiten wird von "MeshDD-Bot" auf "MeshDD-Dashboard" umgestellt. Der Bot-Name in `config.yaml` (`bot.name`) bleibt unverändert. Betroffene Dateien (jeweils `<title>` und Navbar-Text): - `static/index.html` - `static/scheduler.html` - `static/nina.html` - `static/settings.html` - `static/packets.html` - `static/admin.html` - `static/messages.html` - `static/map.html` - `static/login.html`
Author
Owner

Implementierung abgeschlossen (v0.08.24)

Aufgabe 1–2: Sidebar umstrukturiert

  • static/js/app.js: _SIDEBAR_LINKS um {type: "group"}-Einträge erweitert; _injectSidebar() rendert Gruppenüberschriften als <span class="sidebar-group-label">
  • Neue Struktur: Dashboard · Karte · Pakete · Nachrichten | Konfigurationen → Scheduler · NINA · Einstellungen | Benutzer
  • static/css/style.css: .sidebar-group-label (Trennlinie + uppercase Label) und .sidebar-link-sub (padding-left: 1.5rem) ergänzt

Aufgabe 3–4: Neue Seite /config

  • static/config.html + static/js/config.js: Editierbare Felder für Bot (Name, Präfix), Meshtastic (Host, Port), Web (Port, Online-Schwellwert), Links-Liste
  • meshbot/config.py: save(updates) – deep-merged Updates in _config und schreibt config.yaml
  • meshbot/webserver.py: GET /api/config und PUT /api/config (Admin), GET /config Route

Aufgabe 5: Umbenennung

  • Alle HTML-Dateien: MeshDD-BotMeshDD-Dashboard in <title> und Navbar-Text
## Implementierung abgeschlossen (v0.08.24) ### Aufgabe 1–2: Sidebar umstrukturiert - `static/js/app.js`: `_SIDEBAR_LINKS` um `{type: "group"}`-Einträge erweitert; `_injectSidebar()` rendert Gruppenüberschriften als `<span class="sidebar-group-label">` - Neue Struktur: Dashboard · Karte · Pakete · Nachrichten | **Konfigurationen** → Scheduler · NINA · Einstellungen | Benutzer - `static/css/style.css`: `.sidebar-group-label` (Trennlinie + uppercase Label) und `.sidebar-link-sub` (padding-left: 1.5rem) ergänzt ### Aufgabe 3–4: Neue Seite /config - `static/config.html` + `static/js/config.js`: Editierbare Felder für Bot (Name, Präfix), Meshtastic (Host, Port), Web (Port, Online-Schwellwert), Links-Liste - `meshbot/config.py`: `save(updates)` – deep-merged Updates in `_config` und schreibt `config.yaml` - `meshbot/webserver.py`: `GET /api/config` und `PUT /api/config` (Admin), `GET /config` Route ### Aufgabe 5: Umbenennung - Alle HTML-Dateien: `MeshDD-Bot` → `MeshDD-Dashboard` in `<title>` und Navbar-Text
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: ppfeiffer/MeshDD-Bot#4
No description provided.