Adam: Move to mermaid
Some checks failed
Word Count / count-words (push) Failing after 31s

This commit is contained in:
2026-03-23 08:53:17 +01:00
parent ad8de7141f
commit cda4491ac0

View File

@@ -119,7 +119,28 @@ foreach (var item in PageState.Pages
Durch diesen Ansatz werden ausschließlich die für Benutzer relevanten Inhaltsseiten in der Navigation angezeigt. Gleichzeitig bleibt die Navigation vollständig dynamisch: Werden im CMS neue Seiten angelegt und als Navigationsseiten markiert, erscheinen diese automatisch im Menü, ohne dass eine Anpassung am Theme-Code notwendig ist. Durch diesen Ansatz werden ausschließlich die für Benutzer relevanten Inhaltsseiten in der Navigation angezeigt. Gleichzeitig bleibt die Navigation vollständig dynamisch: Werden im CMS neue Seiten angelegt und als Navigationsseiten markiert, erscheinen diese automatisch im Menü, ohne dass eine Anpassung am Theme-Code notwendig ist.
![Filterlogik der Oqtane-Navigation] (./images/06-Adam/navigationsfilter_v2.svg) <!-- ![Filterlogik der Oqtane-Navigation](./images/06-Adam/navigationsfilter_v2.svg) -->
``` {.mermaid width=75%}
graph TD
%%| filename: navigationsfilter_v2
%%| fig-cap: Filterlogik der Oqtane-Navigation (Theme.razor)
Start[PageState.Pages<br/>Alle CMS-Seiten ~12 Seiten] --> Filter1[Filter 1: ParentId == null<br/>Nur Root-Seiten]
Filter1 -- Unterseiten --> Rejected1[Aussortiert]
Filter1 --> Filter2[Filter 2: hiddenNames<br/>Systemseiten ausblenden]
Filter2 -- "Login, Register, Admin, Privacy, ..." --> Rejected2[Aussortiert]
Filter2 --> Result[Sichtbare Navigation<br/>~3 Inhaltsseiten im Menü]
Result -.-> Note[Neue Seiten im CMS erscheinen automatisch im Menü kein Code nötig]
style Start fill:#444441,stroke:#B4B2A9,color:#D3D1C7
style Filter1 fill:#3C3489,stroke:#AFA9EC,color:#CECBE6
style Filter2 fill:#3C3489,stroke:#AFA9EC,color:#CECBE6
style Rejected1 fill:#791F1F,stroke:#F09595,color:#F7C1C1
style Rejected2 fill:#791F1F,stroke:#F09595,color:#F7C1C1
style Result fill:#085041,stroke:#5DCAA5,color:#9FE1CF
style Note fill:none,stroke:#B4B2A9,stroke-dasharray: 5 5,color:#B4B2A9
```
Dies reduziert den Wartungsaufwand erheblich und stellt sicher, dass die Navigation stets dem aktuellen Stand der Plattform entspricht. Dies reduziert den Wartungsaufwand erheblich und stellt sicher, dass die Navigation stets dem aktuellen Stand der Plattform entspricht.
@@ -245,7 +266,33 @@ Am unteren Rand des Formulars befinden sich zwei Speicheroptionen: „Als Entwur
Der folgende Lebenszyklus zeigt die möglichen Zustände eines Eintrags und die Übergänge zwischen ihnen: Der folgende Lebenszyklus zeigt die möglichen Zustände eines Eintrags und die Übergänge zwischen ihnen:
![Lebenszyklus eines Hall-of-Fame-Eintrags] (./images/06-Adam/hall_of_fame_lebenszyklus_v4.svg) <!-- ![Lebenszyklus eines Hall-of-Fame-Eintrags](./images/06-Adam/hall_of_fame_lebenszyklus_v4.svg) -->
``` {.mermaid width=75%}
graph TD
%%| filename: hall_of_fame_lebenszyklus_v4
%%| fig-cap: Lebenszyklus eines Hall-of-Fame-Eintrags
Start([Benutzer eingeloggt]) --> Create[Eintrag erstellen<br/>Duplikat- & Eigentümerprüfung]
Create -- Fehler --> Rejected[Abgelehnt]
Create --> Draft[Draft<br/>Nur für Eigentümer sichtbar]
Draft -- Veröffentlichen --> Published[Published<br/>Öffentlich sichtbar]
Published -- Meldung --> Reported[Gemeldet<br/>IsReported = true]
Reported --> Admin[Admin-Entscheidung]
Admin -- OK --> Approved[Freigegeben]
Admin -- Verstoß --> Deleted[Gelöscht<br/>→ neuer Eintrag möglich]
%% Styling to match original SVG
style Start fill:#444441,stroke:#B4B2A9,color:#D3D1C7
style Create fill:#3C3489,stroke:#AFA9EC,color:#CECBE6
style Rejected fill:#791F1F,stroke:#F09595,color:#F7C1C1
style Draft fill:#085041,stroke:#5DCAA5,color:#9FE1CF
style Published fill:#085041,stroke:#5DCAA5,color:#9FE1CF
style Reported fill:#633806,stroke:#EF9F27,color:#FAC775
style Admin fill:#444441,stroke:#B4B2A9,color:#D3D1C7
style Approved fill:#27500A,stroke:#97C459,color:#C0DD97
style Deleted fill:#791F1F,stroke:#F09595,color:#F7C1C1
```
##### Meldefunktion ##### Meldefunktion
@@ -255,7 +302,26 @@ Die Meldefunktion ermöglicht es angemeldeten Benutzerinnen und Benutzern, einen
Die Meldefunktion ist dabei nicht direkt im Hall-of-Fame-Modul implementiert, sondern wird über eine zentrale Schnittstelle aus einem gemeinsamen Interfaces-Paket eingebunden. Dieses Konzept ermöglicht es, dieselbe Melde-Oberfläche in beliebig vielen weiteren Modulen wiederzuverwenden, ohne die Logik mehrfach implementieren zu müssen. Die Meldefunktion ist dabei nicht direkt im Hall-of-Fame-Modul implementiert, sondern wird über eine zentrale Schnittstelle aus einem gemeinsamen Interfaces-Paket eingebunden. Dieses Konzept ermöglicht es, dieselbe Melde-Oberfläche in beliebig vielen weiteren Modulen wiederzuverwenden, ohne die Logik mehrfach implementieren zu müssen.
![Ablauf des globalen Reporting-Systems] (./images/06-Adam/reporting_sequence_diagram.svg) <!--![Ablauf des globalen Reporting-Systems](./images/06-Adam/reporting_sequence_diagram.svg)-->
```mermaid
sequenceDiagram
%%| filename: reporting_sequence_diagram
%%| fig-cap: Ablauf des globalen Reporting-Systems
participant User
participant Module
participant ReportingComponent
participant ReportingHandler
User-->>+Module: View entity
Module-->>+ReportingComponent: Report current entity
ReportingComponent-->>User: Ask for reason
User-->>ReportingComponent: Enters reason
ReportingComponent-->>+ReportingHandler: New report (entity + reason)
ReportingHandler-->>-ReportingComponent: Done
ReportingComponent-->>-Module: Report saved
Module-->>-User: Report saved
```
##### PDF-Export ##### PDF-Export