Zusammenfassung des bisherigen Verlaufs

1. Admin-Layout und Navigation

Das Admin-Menü wurde logisch sortiert und bereinigt. Ziel war eine klarere Struktur im ACP, ohne bestehende Funktionen zu zerstören.

Reihenfolge im Menü: Dashboard, Statistik, Audit, Seiten, Beiträge, Projekte, Downloads, Einstellungen.

2. Einstellungen-Seite mit Tabs

Die Seite /admin/settings war zu unübersichtlich. Deshalb wurde ein Tabsystem eingeführt.

Die Tabs wurden in Bereiche aufgeteilt:

  • Allgemein
  • Hero
  • Branding

Dafür wurde eine zusätzliche CSS-Datei verwendet, damit das bestehende admin.css nicht beschädigt wird.

3. Fehler bei den Tabs

Die Tabs ließen sich anfangs nicht wechseln, weil das Umschalten nur über JavaScript funktionierte und das Script nicht sauber geladen oder ausgeführt wurde.

Daraufhin wurde das Tab-JavaScript in eine eigene Datei ausgelagert.

4. Fehler bei URL-Validierung in den Einstellungen

Beim Speichern der Einstellungen trat mehrfach der Fehler „ungültige url“ auf.

Ursache war nicht das Tabsystem selbst, sondern die Backend-Validierung in /src/service/settingsService.js.

Leere optionale URL-Felder wurden wie Pflichtfelder behandelt.

Die Datei wurde so angepasst, dass:

  • optionale URLs leer sein dürfen,
  • interne Pfade mit / erlaubt sind,
  • logo_url, favicon_url und hero_button_secondary_url korrekt behandelt werden.

5. Problem mit Logo/Favicon

Zwischendurch wurden Logo und Favicon beim Speichern gelöscht.

Ursache: Die Felder waren auf disabled gesetzt und wurden dadurch nicht mitgesendet.

Das Verhalten wurde korrigiert, damit bestehende Werte erhalten bleiben.

6. Branding-Upload im Settings-Bereich

Der Upload für Logo / Favicon sollte logisch in den Bereich Branding verschoben werden.

Das wurde in der Oberfläche umgesetzt. Dabei gab es den Hinweis, dass verschachtelte <form>-Elemente technisch unsauber sind und später sauber getrennt werden sollten.

7. Öffentliche main.hbs überarbeitet

Die Datei main.hbs der Website wurde strukturell bereinigt.

Das Menü wurde logisch sortiert und der Code lesbarer gemacht.

Die sinnvolle Reihenfolge wurde auf etwa folgendes gebracht:

  • Home
  • News
  • Blog
  • Projekte
  • Downloads
  • dynamische Menüeinträge

8. CMS-Name und Versionierung

Das CMS bekam einen vorläufigen Arbeitsnamen: Sitevra CMS.

Der Name ist aktuell nur ein Arbeitsname und kann später geändert werden.

Zusätzlich wurde eine Versionslogik eingeführt:

  • eigene Versionsdatei,
  • Abgleich beim Start des Node-Servers,
  • Übernahme neuer Versionsdaten in die Datenbank, wenn die Datei aktueller ist.

9. Versionsanzeige im Admin-Dashboard

Im Dashboard sollte ein neuer Bereich erscheinen, der die CMS-Daten anzeigt:

  • CMS-Name
  • Version
  • Release
  • letzter DB-Abgleich

Dafür wurden passende Settings vorbereitet:

  • cms_name
  • cms_version
  • cms_version_label
  • cms_released_at
  • cms_last_update_at

10. SQL-Erweiterung für bestehende Datenbank

Da die Datenbank bereits existierte, wurde nur das nötige INSERT IGNORE für die neuen CMS-Versions-Settings ausgegeben.

11. Hero-Bereich der Startseite

Die vier kleinen Bereiche rechts im Hero waren bisher starr im Template und nicht über das ACP steuerbar.

Das wurde als ungeeignet bewertet, weil ein veröffentlichbares CMS hier datenbankgebunden arbeiten muss.

11.1 Erste Umsetzung

Es wurde eine eigene Tabelle hero_cards vorgeschlagen und umgesetzt, damit die rechten Hero-Boxen nicht als einzelne Settings missbraucht werden.

Zusätzlich kamen:

  • Model für Hero-Karten,
  • Service für Hero-Karten,
  • eigene Admin-Routen,
  • eigene Admin-Views für Liste und Bearbeitung.

11.2 Aktueller Stand

Die Hero-Karten liegen aktuell separat und nicht direkt in /admin/settings.

Das wurde als technisch sauberer Schnellweg umgesetzt, obwohl der Wunsch war, alles unter Einstellungen zu bündeln.

Später kann das Frontend im ACP wieder unter einem gemeinsamen Settings-Tab zusammengeführt werden, während die DB-Struktur getrennt bleibt.

12. Problem mit Hero-Icons

Aktuell waren die Hero-Icons zunächst hart im Code definiert.

Das wurde als ungeeignet für eine Veröffentlichung erkannt, weil andere Benutzer dafür sonst den Code anpassen müssten.

Als bessere Lösung wurde festgehalten:

  • Icons aus Dateien laden,
  • z. B. aus /public/icons/hero/,
  • im ACP auswählbar machen,
  • später idealerweise auch per Upload verwaltbar machen.

13. server.js und Versionsabgleich

Zwischendurch fiel auf, dass der Versionsabgleich in einer späteren server.js-Fassung wieder verschwunden war.

Das wurde korrigiert. Danach wurde die bestehende Version mit cmsVersionService.syncWithDatabase() wieder als richtige Basis bestätigt.

Anschließend sollte zusätzlich die Hero-Route sauber in dieselbe server.js eingebunden werden.

14. Allgemeines Arbeitsmuster

Es wurde mehrfach betont, dass Änderungen immer als komplette Dateien im Codeblock ausgegeben werden sollen und nicht als Download oder als unvollständige Patches.

Außerdem wurde darauf geachtet, bestehende Styles und Funktionen möglichst nicht unnötig zu zerstören.

Aktueller Gesamtstand

Sitevra CMS hat jetzt:

  • einen vorläufigen Namen,
  • eine Versionslogik mit DB-Abgleich beim Start,
  • eine überarbeitete Settings-Seite mit Tabs,
  • eine bereinigte öffentliche main.hbs,
  • einen DB-basierten Ansatz für die rechten Hero-Karten,
  • und die Grundlage für eine spätere saubere Veröffentlichungsstruktur.

Offen bzw. als nächster sinnvoller Schritt bleiben:

  • Hero-Karten wieder optisch in die Settings integrieren,
  • Hero-Icons dateibasiert und uploadbar machen,
  • den Hero-Hauptbereich links ebenfalls sauberer aus den Global-Settings herauslösen oder besser strukturieren.