Plan P8 Pipelines, P9 Auftrag (Akte/Plantafel/Abnahme), P12 Automationen
- WF-P8: Kanban-Board, Edit-Mode (nur Detailansicht), Gewonnen regel-basiert - WF-P9: Projekt-Akte + Rechnung v1, Plantafel (Heute<->Woche offline), Abnahme mehrstufig - WF-P12: Flow-Editor (Katalog/Canvas/Konfig, Start-Auswahl) + Verwaltung (Timeline, 24h-Undo) - D-FORM zurueckgestellt (Davids Mitarbeiter:in) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ca078436df
commit
2de481bf25
46 files changed
+2373
-705
No files matched your search
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-FLOW
|
||||||
|
package: WF-P12 Flow-Editor
|
||||||
|
id: M01
|
||||||
|
screen: Probelauf
|
||||||
|
typ: Modal
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "aus S01 (Probelauf-Knopf / vor Aktivierung)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# M01 — Probelauf (Dry-Run)
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Vor dem Scharfschalten sehen, was die Automation WIRKLICH tun würde — keine bösen Überraschungen.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **»Trifft X Datensätze«** + die ersten 5 als Beispiele
|
||||||
|
- Schritt-für-Schritt-Simulation in Klartext (»E-Mail würde an max@… gehen«)
|
||||||
|
- **Pflicht-Bestätigung** ab Schwelle (> 100 Datensätze/Schritt, mandant-einstellbar) — ggf. mit Bestätigungs-Phrase
|
||||||
|
- Ergebnis: aktivieren oder zurück in den Editor
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A5 Modal + Simulations-Liste.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Über Schwelle | Bestätigung Pflicht | Nur dokumentieren |
|
||||||
|
| Trifft nichts | »Aktuell trifft die Automation 0 Datensätze« | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-FLOW
|
||||||
|
package: WF-P12 Flow-Editor
|
||||||
|
id: M02
|
||||||
|
screen: Schleifen-Warnung
|
||||||
|
typ: Modal
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "aus S01 bei Schleifen-Verdacht"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# M02 — Schleifen-/Raten-Warnung
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Endlos-Schleifen verhindern, bevor sie den Betrieb fluten — verständlich erklärt.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Mini-Abhängigkeits-Graph**: welche Automationen sich gegenseitig auslösen (der Kreis ist markiert)
|
||||||
|
- Klartext: »Automation A löst B aus, B löst wieder A aus«
|
||||||
|
- **»Beheben«**-Knopf (springt zum betroffenen Baustein)
|
||||||
|
- Anomalie-Hinweis-Variante: »2.000-mal in 5 Min gelaufen, typisch 5–10/Tag — pausiert« + wieder aktivieren
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A5 Modal + Mini-Graph.
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-FLOW
|
||||||
|
package: WF-P12 Flow-Editor
|
||||||
|
id: M03
|
||||||
|
screen: Start-Auswahl
|
||||||
|
typ: Modal
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "»+ Neue Automation« (aus der Automation-Liste)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# M03 — Start-Auswahl
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Der schnellste Weg zum Erfolgserlebnis: mit einer Vorlage starten statt vor leerer Fläche zu sitzen.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Leer starten** ODER **Vorlage wählen** (SHK-Vorlagen + eigene, nach Kategorie, mit Use-Case-Beschreibung — eingebetteter Vorlagen-Katalog aus WF-P12 Verwaltung)
|
||||||
|
- Auswahl → Editor öffnet mit vorbefülltem Flow (Vorlage) oder leer
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A5 Dialog (echtes Modal).
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-FLOW
|
||||||
|
package: WF-P12 Flow-Editor
|
||||||
|
id: S01
|
||||||
|
screen: Flow-Editor
|
||||||
|
typ: BESPOKE (schwerste UI)
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/automations/:id/edit"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S01 — Flow-Editor ⭐
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Automationen zusammenklicken wie ein Diagramm — verständlich für Büro-Menschen, nicht nur Techniker.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Zeichenfläche**: Bausteine setzen, verbinden, verschieben, duplizieren, löschen; Pan/Zoom; Undo/Redo; automatisch anordnen; Mini-Übersichtskarte
|
||||||
|
- **Katalog links** (einklappbar): Auslöser + Aktionen, nach Modul gruppiert/filterbar, per Ziehen oder Klick hinzufügen
|
||||||
|
- **Konfig-Panel rechts**: Klick auf Baustein → typ-abhängiges Formular in Klartext (Inhalte aus WF-P12 Verwaltung S05)
|
||||||
|
- **Inline-Validierung** direkt am Baustein: nicht verbunden · Schleifen-Verdacht · Pflichtfeld fehlt
|
||||||
|
- Kopf: Name, Status-Pill (aktiv/pausiert/Entwurf), Speichern, **Probelauf** → [[M01 Probelauf]], Aktivieren/Deaktivieren
|
||||||
|
- Aktivieren blockiert bei Fehlern (Klartext-Liste, Sprung zum Baustein)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
**BESPOKE** — Dreispalten-Anordnung (validiert): Katalog · Canvas · Konfig.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Leerer Flow | Hinweis »Ersten Auslöser aus dem Katalog ziehen« | Nur dokumentieren |
|
||||||
|
| Ungespeichert verlassen | Hinweis | Nur dokumentieren |
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"md-paket","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md","x":-80,"y":-440,"width":460,"height":280},
|
||||||
|
{"id":"group-editor","type":"group","x":-80,"y":-100,"width":1820,"height":380,"label":"Editor (Bespoke — schwerste UI, Langläufer)"},
|
||||||
|
{"id":"group-schutz","type":"group","x":-80,"y":460,"width":1820,"height":380,"label":"Schutz-Dialoge"},
|
||||||
|
{"id":"note-entry","type":"text","text":"# Einstieg\n\n»+ Neue Automation« aus der Automation-Liste (WF-P12 Verwaltung) → Start-Auswahl.\n\nKlartext-First: alles in verständlichem Deutsch.","x":0,"y":0,"width":360,"height":200},
|
||||||
|
{"id":"m03","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md","x":560,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s01","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md","x":1240,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"m01","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M01 Probelauf.md","x":560,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"m02","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M02 Schleifen-Warnung.md","x":1240,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"note-embed","type":"text","text":"# Einbettung\n\nBaustein-Konfig-Panels (rechtes Panel) kommen aus WF-P12 Verwaltung (S05).\n\nAnordnung validiert: Katalog links · Canvas Mitte · Konfig rechts.","x":0,"y":560,"width":460,"height":240}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{"id":"e-entry","fromNode":"note-entry","fromSide":"right","toNode":"m03","toSide":"left","toEnd":"arrow","styleAttributes":{"path":"dotted"}},
|
||||||
|
{"id":"e-start","fromNode":"m03","fromSide":"right","toNode":"s01","toSide":"left","toEnd":"arrow","label":"leer oder Vorlage"},
|
||||||
|
{"id":"e-dryrun","fromNode":"s01","fromSide":"bottom","toNode":"m01","toSide":"top","toEnd":"arrow","label":"Probelauf / vor Aktivierung"},
|
||||||
|
{"id":"e-loop","fromNode":"s01","fromSide":"bottom","toNode":"m02","toSide":"top","toEnd":"arrow","label":"bei Schleifen-Verdacht","styleAttributes":{"path":"long-dashed"}}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
---
|
||||||
|
kind: wireframe-package
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-FLOW
|
||||||
|
package: WF-P12 Flow-Editor
|
||||||
|
typ: Flow
|
||||||
|
status: Validiert
|
||||||
|
subframe: ""
|
||||||
|
canvas: "WF-P12 Flow-Editor.canvas"
|
||||||
|
---
|
||||||
|
|
||||||
|
# WF-P12 Flow-Editor
|
||||||
|
|
||||||
|
Status: Validiert (Screen-Liste)
|
||||||
|
Subframe-Link: -
|
||||||
|
Canvas: [Canvas](<WF-P12 Flow-Editor.canvas>)
|
||||||
|
Stand: 2026-07-09
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Kurzfassung
|
||||||
|
|
||||||
|
Der Automations-Baukasten: Zeichenfläche mit Auslöser- und Aktions-Bausteinen, alles in verständlichem Deutsch, mit Probelauf und Schleifen-Schutz. **Schwerste UI der App, erste USP-Säule, Langläufer — viele Iterationen einplanen.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Intent Check
|
||||||
|
|
||||||
|
| Frage | Antwort |
|
||||||
|
|---|---|
|
||||||
|
| Ticket/Modul | D-FLOW, Dev-Pendant R-P12a/R-P12b (Editor blockt R-P12b!) |
|
||||||
|
| Nutzer-Ziel | »Wenn X passiert, tu Y« zusammenklicken — ohne Programmierkenntnisse, ohne Angst vor Fehlern |
|
||||||
|
| Quellen geprüft | `ticket-docs/D-FLOW.md`, ENTITY-MODEL Domäne 7, HiveGrid Map |
|
||||||
|
| Sicher im Scope | Graph-Canvas, Katalog, Konfig-Panel-Rahmen, Mini-Map, Toolbar, Validation, Dry-Run, Loop-Warnung, Start-Auswahl |
|
||||||
|
| Sicher nicht im Scope | Sprach-zu-Automation (gestrichen, AD-26) · KWP-Konfig-UI (v2) · Liste/Verläufe/Vorlagen (WF-P12 Verwaltung) |
|
||||||
|
| Unsichere Annahmen | — |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Scope
|
||||||
|
|
||||||
|
| Punkt | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| Startpunkt | »+ Neue Automation« (aus der Automation-Liste) oder bestehende öffnen |
|
||||||
|
| Ziel | Automation gebaut, per Probelauf geprüft, bewusst aktiviert |
|
||||||
|
| Haupt-Archetyp | **BESPOKE — schwerste UI** + A5 Modals |
|
||||||
|
| Out of scope | s. o. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Entscheidungen (validiert 2026-07-09)
|
||||||
|
|
||||||
|
| Entscheidung | Status | Notiz |
|
||||||
|
|---|---|---|
|
||||||
|
| Zwei P12-Pakete (Editor / Verwaltung) | genommen | Editor ist Langläufer |
|
||||||
|
| **Grundanordnung: Katalog links · Canvas Mitte · Konfig rechts** | genommen | n8n-Muster; Klick auf Baustein öffnet Konfig-Panel rechts, Canvas bleibt sichtbar; Katalog einklappbar |
|
||||||
|
| **Start-Auswahl mit Vorlagen** | genommen | »+ Neue Automation« → Dialog: leer starten ODER SHK-/eigene Vorlage wählen → Editor öffnet |
|
||||||
|
| Dry-Run + Schleifen-Warnung als eigene Modals | genommen | Pflicht-Bestätigung ab Schwelle (mandant-einstellbar) |
|
||||||
|
| Aktivieren blockiert bei Fehlern | genommen | Klartext-Fehlerliste (nicht verbunden / Schleife / Pflichtfeld) — dokumentiert |
|
||||||
|
| Klartext-First | genommen | Baustein-Labels, Validierung, Dry-Run-Ausgaben: verständliches Deutsch, nicht technisch |
|
||||||
|
| Konfig-Panel-Inhalte kommen aus WF-P12 Verwaltung | genommen | typ-abhängige Formulare (S05 dort), der Editor bettet sie ein |
|
||||||
|
|
||||||
|
### Happy Path
|
||||||
|
|
||||||
|
1. »+ Neue Automation« → Start-Auswahl: Vorlage »Neue Anfrage → Aufgabe für Vertrieb« wählen (oder leer).
|
||||||
|
2. Editor: Bausteine aus dem Katalog ziehen, verbinden; Klick → Konfig rechts in Klartext.
|
||||||
|
3. Inline-Fehler beheben (»Baustein nicht verbunden«).
|
||||||
|
4. **Probelauf**: »Trifft 143 Datensätze …« — prüfen, ggf. Pflicht-Bestätigung.
|
||||||
|
5. Aktivieren. Bei Schleifen-Verdacht: Warnmodal mit Mini-Graph + »Beheben«.
|
||||||
|
|
||||||
|
### Meldungs-/Error-States (validiert)
|
||||||
|
|
||||||
|
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Probelauf ab Schwelle | Pflicht-Bestätigung im Dry-Run-Modal | ja | Bauen (M01) | »Trifft > 100 Datensätze — bitte bestätigen« |
|
||||||
|
| Schleife erkannt | Warnmodal mit Mini-Abhängigkeits-Graph | ja | Bauen (M02) | + »Beheben«-Knopf |
|
||||||
|
| Aktivieren mit Fehlern | blockiert + Klartext-Fehlerliste | ja | Nur dokumentieren | je Fehler Sprung zum Baustein |
|
||||||
|
| Anomalie-Pause | Banner (auch in Liste/Detail) | nein | Nur dokumentieren | »2.000-mal in 5 Min — pausiert« |
|
||||||
|
| Ungespeicherte Änderungen | Hinweis beim Verlassen | nein | Nur dokumentieren | — |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Validierte Screen-Liste
|
||||||
|
|
||||||
|
| ID | Screen/Zustand | Typ | Umsetzung | Ort | Status |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| S01 | Flow-Editor (Katalog · Canvas · Konfig) ⭐ | BESPOKE | Bauen | `/automations/:id/edit` | Validiert |
|
||||||
|
| M01 | Probelauf (Dry-Run) | Modal | Bauen | aus S01 | Validiert |
|
||||||
|
| M02 | Schleifen-/Raten-Warnung | Modal | Bauen | aus S01 | Validiert |
|
||||||
|
| M03 | Start-Auswahl (leer / Vorlage) | Modal | Bauen | »+ Neue Automation« | Validiert |
|
||||||
|
| D01–D03 | Aktivieren-Block / Anomalie-Banner / Verlassen-Hinweis | Inline | Nur dokumentieren | — | Validiert |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Grid
|
||||||
|
|
||||||
|
```text
|
||||||
|
Automation-Liste (WF-P12 Verwaltung) -> M03 (Start-Auswahl) -> S01 (Editor)
|
||||||
|
S01 -> M01 (Probelauf) -> Aktivieren
|
||||||
|
S01 -> M02 (Schleifen-Warnung, bei Verdacht)
|
||||||
|
S01 bettet ein: Baustein-Konfig-Panels (WF-P12 Verwaltung S05)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Screen-Pakete
|
||||||
|
|
||||||
|
- [[S01 Flow-Editor]] · [[M01 Probelauf]] · [[M02 Schleifen-Warnung]] · [[M03 Start-Auswahl]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Offene Fragen
|
||||||
|
|
||||||
|
- Kanten-Interaktion (Klick-Verbinden vs. nur Ziehen) + Auto-Layout-Verhalten → Subframe-Iterationen
|
||||||
|
- Dry-Run-Schwelle: Default-Wert → Dev
|
||||||
|
|
||||||
|
## Handoff-Check
|
||||||
|
|
||||||
|
- [x] Jeder Screen ist mit Umsetzung markiert.
|
||||||
|
- [x] Meldungs-/Error-State-Matrix ist ausgefüllt.
|
||||||
|
- [ ] Subframe-Link ist eingetragen. *(Subframe erst nach explizitem OK)*
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P12
|
||||||
|
package: WF-P12 Verwaltung
|
||||||
|
id: S01
|
||||||
|
screen: Automation-Liste
|
||||||
|
typ: Liste
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/automations"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S01 — Automation-Liste
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Alle Automationen im Blick: Was läuft, was ist pausiert, was tut wie oft?
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Zeile: Name · Auslöser (Klartext) · Status-Pill (aktiv/pausiert/Entwurf) · Läufe (30 Tage) · letzte Ausführung
|
||||||
|
- »nur meine«-Filter · Anomalie-Pause-Banner
|
||||||
|
- »+ Neue Automation« → Start-Auswahl (WF-P12 Flow-Editor M03) · Zeile öffnen → Editor · Läufe → [[S02 Lauf-Liste]]
|
||||||
|
- Zeilen-Aktion »als Vorlage speichern« → [[S04 Vorlagen-Katalog]]
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A2 Liste.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Leer | »Noch keine Automationen« + Start-Knopf | Nur dokumentieren |
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P12
|
||||||
|
package: WF-P12 Verwaltung
|
||||||
|
id: S02
|
||||||
|
screen: Lauf-Liste
|
||||||
|
typ: Liste
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/automations/:id/executions"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S02 — Lauf-Liste
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Was hat diese Automation zuletzt getan?
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Letzte Läufe: Zeit · Status-Pill (ok/fehlgeschlagen/übersprungen) · Klartext-Summary · Probelauf-Marker · Dauer
|
||||||
|
- Filter: Status, Datum, Auslöser-Typ
|
||||||
|
- Zeile öffnen → [[S03 Lauf-Detail]]
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A2 Liste.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Leer | »Noch keine Läufe« | Nur dokumentieren |
|
||||||
|
| Laden / Fehler | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P12
|
||||||
|
package: WF-P12 Verwaltung
|
||||||
|
id: S03
|
||||||
|
screen: Lauf-Detail
|
||||||
|
typ: Detail + Timeline
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/automations/:id/executions/:exec_id"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S03 — Lauf-Detail
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Jeden Lauf Schritt für Schritt nachvollziehen — und Fehler rückgängig machen.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Kopf: Klartext-Summary + Auslöser-Daten **lesbar** (kein rohes JSON) + Probelauf-Marker
|
||||||
|
- **Schritt-für-Schritt-Timeline**: je Schritt Klartext (»E-Mail an max@… gesendet«), Status, Ein-/Ausgabe lesbar, Dauer
|
||||||
|
- **24-h-Rückgängig-Knopf mit Countdown** (Restzeit sichtbar; danach ausgegraut + Hinweis)
|
||||||
|
- Fehlgeschlagenen Schritt **erneut ausführen** · **»ab Schritt X fortsetzen«**
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A3 + Timeline.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Schritt fehlgeschlagen | roter Marker + Klartext-Fehler + Retry daneben | Nur dokumentieren |
|
||||||
|
| Rückgängig abgelaufen | Knopf grau + »nur 24 h möglich« | Nur dokumentieren |
|
||||||
|
| Laden / Fehler | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P12
|
||||||
|
package: WF-P12 Verwaltung
|
||||||
|
id: S04
|
||||||
|
screen: Vorlagen-Katalog
|
||||||
|
typ: Liste/Karten
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/automations/templates"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S04 — Vorlagen-Katalog
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Fertige SHK-Automationen zum Sofort-Nutzen — plus eigene Vorlagen des Betriebs.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Vorlagen-Karten nach Kategorie: Name · Use-Case-Beschreibung · Nutzungs-Anzahl · **»Verwenden«** (öffnet Editor vorbefüllt)
|
||||||
|
- SHK-Vorlagen (geseedet) + eigene (»aus Automation erstellen« in der Liste)
|
||||||
|
- Wird auch in der Start-Auswahl (Flow-Editor M03) eingebettet
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A2 Karten-Liste.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Laden / Fehler | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
+44
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P12
|
||||||
|
package: WF-P12 Verwaltung
|
||||||
|
id: S05
|
||||||
|
screen: Baustein-Konfig-Panels
|
||||||
|
typ: Compose-Panel (eingebettet)
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "eingebettet im Flow-Editor (rechtes Panel)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S05 — Baustein-Konfig-Panels
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Das rechte Panel im Flow-Editor: je Baustein-Typ ein Klartext-Formular. Als **Muster** werden zwei Panels gebaut, der Rest folgt dem Schema.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Typ-abhängige Felder** je Auslöser (Anfrage/Kontakt/Board/E-Mail/Formular/Buchung/Kalender/Zeitplan/Webhook) und je Aktion (Datensatz ändern, Benachrichtigung, HTTP, Aufgabe, Wenn-Dann, Warten, Schleife)
|
||||||
|
- **Klartext-Labels** (»Wenn eine neue Anfrage aus Quelle … eingeht«) statt Technik-Sprache
|
||||||
|
- Inline-Validierung (Pflichtfeld fehlt) mit Badge am Baustein
|
||||||
|
- Muster-Panels (Subframe): Auslöser »Neue Anfrage« + Aktion »Aufgabe anlegen«
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
Compose — Formular-Bausteine (A4) im Editor-Panel.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Pflichtfeld fehlt | Inline + Badge am Baustein | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
|
|
||||||
|
## Notizen
|
||||||
|
|
||||||
|
- KWP-Push: nur Registry-Eintrag, kein Konfig-UI (v1-Grenze).
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"md-paket","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.md","x":-80,"y":-440,"width":460,"height":280},
|
||||||
|
{"id":"group-verw","type":"group","x":-80,"y":-100,"width":2500,"height":380,"label":"Übersicht und Verläufe"},
|
||||||
|
{"id":"group-extra","type":"group","x":-80,"y":460,"width":1820,"height":380,"label":"Vorlagen + Konfig-Panels"},
|
||||||
|
{"id":"note-entry","type":"text","text":"# Einstieg\n\nSidebar → Automation.","x":0,"y":0,"width":300,"height":200},
|
||||||
|
{"id":"s01","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md","x":500,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s02","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md","x":1140,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s03","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md","x":1780,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s04","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S04 Vorlagen-Katalog.md","x":0,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"s05","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md","x":580,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"note-embed","type":"text","text":"# Einbettungen\n\n- S04 steckt auch in der Start-Auswahl (Flow-Editor M03)\n- S05 ist das rechte Panel im Flow-Editor\n- »+ Neue Automation« in S01 → Start-Auswahl (Flow-Editor)","x":1160,"y":560,"width":500,"height":240}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{
|
||||||
|
"id":"e-entry",
|
||||||
|
"fromNode":"note-entry",
|
||||||
|
"fromSide":"right",
|
||||||
|
"toNode":"s01",
|
||||||
|
"toSide":"left",
|
||||||
|
"toEnd":"arrow",
|
||||||
|
"styleAttributes":{"path":"dotted"}
|
||||||
|
},
|
||||||
|
{"id":"e-runs","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","toEnd":"arrow","label":"Läufe"},
|
||||||
|
{"id":"e-detail","fromNode":"s02","fromSide":"right","toNode":"s03","toSide":"left","toEnd":"arrow","label":"Lauf öffnen"},
|
||||||
|
{
|
||||||
|
"id":"e-template",
|
||||||
|
"fromNode":"s01",
|
||||||
|
"fromSide":"bottom",
|
||||||
|
"toNode":"s04",
|
||||||
|
"toSide":"top",
|
||||||
|
"toEnd":"arrow",
|
||||||
|
"label":"als Vorlage speichern",
|
||||||
|
"styleAttributes":{"path":"long-dashed"}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata":{
|
||||||
|
"version":"1.0-1.0",
|
||||||
|
"frontmatter":{}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
---
|
||||||
|
kind: wireframe-package
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P12
|
||||||
|
package: WF-P12 Verwaltung
|
||||||
|
typ: Flow
|
||||||
|
status: Validiert
|
||||||
|
subframe: ""
|
||||||
|
canvas: "WF-P12 Verwaltung.canvas"
|
||||||
|
---
|
||||||
|
|
||||||
|
# WF-P12 Verwaltung
|
||||||
|
|
||||||
|
Status: Validiert (Screen-Liste)
|
||||||
|
Subframe-Link: -
|
||||||
|
Canvas: [Canvas](<WF-P12 Verwaltung.canvas>)
|
||||||
|
Stand: 2026-07-09
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Kurzfassung
|
||||||
|
|
||||||
|
Die Nicht-Canvas-Flächen der Automationen: Übersichtsliste, Lauf-Verläufe mit Klartext-Timeline und 24-h-Rückgängig, Vorlagen-Katalog — und die Baustein-Konfig-Panels, die der Flow-Editor einbettet.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Intent Check
|
||||||
|
|
||||||
|
| Frage | Antwort |
|
||||||
|
|---|---|
|
||||||
|
| Ticket/Modul | D-P12, Dev-Pendant R-P12a/R-P12b |
|
||||||
|
| Nutzer-Ziel | Überblick behalten, jeden Lauf nachvollziehen, Fehler rückgängig machen |
|
||||||
|
| Quellen geprüft | `ticket-docs/D-P12.md`, ENTITY-MODEL Domäne 7, HiveGrid Map |
|
||||||
|
| Sicher im Scope | Liste, Lauf-Liste/-Detail, Vorlagen-Katalog, Konfig-Panel-Inhalte |
|
||||||
|
| Sicher nicht im Scope | Editor-Canvas (WF-P12 Flow-Editor), KWP-Konfig (v2), Sprach-Eingabe (gestrichen) |
|
||||||
|
| Unsichere Annahmen | — |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Scope
|
||||||
|
|
||||||
|
| Punkt | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| Startpunkt | Sidebar »Automation« |
|
||||||
|
| Ziel | Automation gefunden, Lauf verstanden, ggf. rückgängig/erneut |
|
||||||
|
| Haupt-Archetyp | A2 Listen · A3 + Timeline · Compose-Panels |
|
||||||
|
| Out of scope | s. o. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Entscheidungen (validiert 2026-07-09)
|
||||||
|
|
||||||
|
| Entscheidung | Status | Notiz |
|
||||||
|
|---|---|---|
|
||||||
|
| Zwei P12-Pakete | genommen | dieses = Verwaltung |
|
||||||
|
| Lauf-Detail mit Klartext-Timeline | genommen | je Schritt: was, womit (Input/Output lesbar), wie lange, Ergebnis |
|
||||||
|
| 24-h-Rückgängig als Countdown-Knopf | genommen | + Retry + »ab Schritt X fortsetzen« |
|
||||||
|
| Vorlagen-Katalog mit »aus Automation erstellen« | genommen | SHK + eigene, nach Kategorie |
|
||||||
|
| Baustein-Konfig-Panels hier designen | genommen | typ-abhängige Klartext-Formulare je Auslöser/Aktion — der Editor bettet sie ein; je ein Muster-Panel (Auslöser + Aktion) wird gebaut |
|
||||||
|
|
||||||
|
### Meldungs-/Error-States (validiert)
|
||||||
|
|
||||||
|
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Lauf fehlgeschlagen | rote Status-Pill + Klartext-Fehler am Schritt | nein | Nur dokumentieren | Retry/Resume direkt daneben |
|
||||||
|
| Anomalie-Pause | Banner in Liste + Detail | nein | Nur dokumentieren | wie im Editor |
|
||||||
|
| Rückgängig-Fenster abgelaufen | Knopf ausgegraut + Hinweis | nein | Nur dokumentieren | »Nur 24 h nach Lauf möglich« |
|
||||||
|
| Leere Liste | Leer-Zustand + »+ Neue Automation« | nein | Nur dokumentieren | → Start-Auswahl (Flow-Editor M03) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Validierte Screen-Liste
|
||||||
|
|
||||||
|
| ID | Screen/Zustand | Typ | Umsetzung | Ort | Status |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| S01 | Automation-Liste | Liste | Bauen | `/automations` | Validiert |
|
||||||
|
| S02 | Lauf-Liste | Liste | Bauen | `/automations/:id/executions` | Validiert |
|
||||||
|
| S03 | Lauf-Detail (Klartext-Timeline) | Detail + Timeline | Bauen | `…/executions/:exec_id` | Validiert |
|
||||||
|
| S04 | Vorlagen-Katalog | Liste/Karten | Bauen | `/automations/templates` | Validiert |
|
||||||
|
| S05 | Baustein-Konfig-Panels (Muster Auslöser + Aktion) | Compose-Panel | Bauen | eingebettet im Flow-Editor | Validiert |
|
||||||
|
| D01–D04 | Zustände (s. Tabelle) | Inline/Banner | Nur dokumentieren | — | Validiert |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Grid
|
||||||
|
|
||||||
|
```text
|
||||||
|
Sidebar -> S01 (Liste) -> S02 (Laeufe) -> S03 (Lauf-Detail: Timeline, 24h-Undo, Retry, Resume)
|
||||||
|
S01 -> "+ Neue Automation" -> M03 (Start-Auswahl, WF-P12 Flow-Editor)
|
||||||
|
S04 (Vorlagen) <- "aus Automation erstellen" (S01)
|
||||||
|
S05 (Konfig-Panels) -> eingebettet in Flow-Editor S01
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Screen-Pakete
|
||||||
|
|
||||||
|
- [[S01 Automation-Liste]] · [[S02 Lauf-Liste]] · [[S03 Lauf-Detail]] · [[S04 Vorlagen-Katalog]] · [[S05 Baustein-Konfig-Panels]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Offene Fragen
|
||||||
|
|
||||||
|
- Welche zwei Muster-Panels für S05 (Vorschlag: Auslöser »Neue Anfrage« + Aktion »Aufgabe anlegen«) → beim Subframe-Bau
|
||||||
|
|
||||||
|
## Handoff-Check
|
||||||
|
|
||||||
|
- [x] Jeder Screen ist mit Umsetzung markiert.
|
||||||
|
- [x] Meldungs-/Error-State-Matrix ist ausgefüllt.
|
||||||
|
- [ ] Subframe-Link ist eingetragen. *(Subframe erst nach explizitem OK)*
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-KANBAN
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: M01
|
||||||
|
screen: Verloren-Dialog
|
||||||
|
typ: Modal
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "beim Ziehen in eine Verloren-Spalte (S01/S02)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# M01 — Verloren-Dialog
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Kein Projekt geht »einfach so« verloren — der Grund ist Pflicht (Reporting).
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A5 Dialog (echtes Modal).
|
||||||
|
|
||||||
|
## Daten
|
||||||
|
|
||||||
|
- **Grund-Auswahl (Pflicht)** aus den Verlust-Gründen ([[S06 Verlust-Gruende]]) + optionales Freitext-Feld
|
||||||
|
|
||||||
|
## Aktionen
|
||||||
|
|
||||||
|
- »Als verloren markieren« → Karte wandert, 24-h-Rückgängig-Banner
|
||||||
|
- Abbrechen → Karte springt zurück
|
||||||
|
|
||||||
|
## Meldungsentscheidung
|
||||||
|
|
||||||
|
| Ereignis | UI-Form | Blockiert? | Umsetzung | Copy/Notiz |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Kein Grund gewählt | Inline-Validierung | ja | Nur dokumentieren | Pflichtfeld |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-KANBAN
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: M02
|
||||||
|
screen: Board-Wechsel-Dialog
|
||||||
|
typ: Modal
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "beim Einzug in eine Spalte ohne Auto-Regel (v. a. Gewonnen)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# M02 — Board-Wechsel-Dialog
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Davids Regel-Logik: Hat die Spalte eine Auto-Verschieben-Regel, passiert der Wechsel still. **Ohne Regel** fragt dieser Dialog: »Wohin damit?«
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A5 Dialog (echtes Modal).
|
||||||
|
|
||||||
|
## Daten
|
||||||
|
|
||||||
|
- Kurz-Bestätigung (z. B. »Projekt gewonnen 🎉«)
|
||||||
|
- **Auswahl: Ziel-Board + Start-Spalte** (nur Boards mit Zugriff)
|
||||||
|
- Option »Hier liegen lassen« (kein Wechsel)
|
||||||
|
|
||||||
|
## Aktionen
|
||||||
|
|
||||||
|
- »Verschieben« → Projekt wechselt Board (nur View-Wechsel, kein Kopieren), Toast + 24-h-Rückgängig
|
||||||
|
- »Hier lassen« / Abbrechen
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
|
|
||||||
|
## Notizen
|
||||||
|
|
||||||
|
- Spalten-Regel wird in [[S04 Board-Einstellungen]] gepflegt; Umsetzung (direkt vs. Automation-Engine) = Dev-Frage.
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-KANBAN
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: S01
|
||||||
|
screen: Kanban-Board
|
||||||
|
typ: BESPOKE Board
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/projects"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S01 — Kanban-Board ⭐
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Der Vertrieb auf einen Blick: Wo steht welches Projekt, was hängt, was ist gewonnen?
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **EIN Board-System für alle Board-Typen** (Vertrieb/Auftrag/eigene) — Boards sind Views auf denselben Projekt-Datensatz
|
||||||
|
- **Karten ziehen = Status wechseln**, mit Validation (unerlaubte Spalte → Karte springt zurück + Klartext)
|
||||||
|
- **Gewonnen-Spalte:** Regel greift (Auto-Verschieben nach Board X, Toast) oder [[M02 Board-Wechsel-Dialog]]
|
||||||
|
- **Verloren-Spalte:** [[M01 Verloren-Dialog]] — Grund ist Pflicht
|
||||||
|
- Umsatz-Aggregate nur für Berechtigte (sonst »—«)
|
||||||
|
- Live (mehrere Nutzer sehen Änderungen sofort), Pagination je Spalte (100+)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
**BESPOKE** — horizontales Spalten-Board.
|
||||||
|
|
||||||
|
## Daten
|
||||||
|
|
||||||
|
- Board-Wechsler oben (nur Boards, die die Rolle sehen darf) + Umschalter Board/Liste ([[S03 Projekt-Liste]])
|
||||||
|
- Spaltenkopf: Name · Projekt-Anzahl · Summe (gegated) · Win-%
|
||||||
|
- Karte (fix, kein Karten-Editor v1): Titel · Umsatz (gegated) · Verantwortlicher-Avatar · Termin-/Abschlussdatum · max. 3 Tags · Hänger-Marker (zu lange in Spalte)
|
||||||
|
- Filter: Verantwortlicher, Tags, Umsatz-Bereich, Datum · »nur meine«-Schnellfilter
|
||||||
|
|
||||||
|
## Aktionen
|
||||||
|
|
||||||
|
- Karte öffnen → [[S02 Projekt-Detailseite]]
|
||||||
|
- Drag&Drop · Mehrfachauswahl + Bulk (zuweisen, Spalte, Tags)
|
||||||
|
- Admin: **»Board verwalten«** → [[S04 Board-Einstellungen]] · **Edit-Mode** → [[S05 Detail-Schablone Edit-Mode]]
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Leeres Board | »Noch keine Projekte« + CTA (Lead-Eingang / anlegen) | Nur dokumentieren |
|
||||||
|
| Live weg | Inline »aktualisiert sich gerade nicht« | Nur dokumentieren |
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P8
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: S02
|
||||||
|
screen: Projekt-Detailseite
|
||||||
|
typ: Detail (P6-Muster)
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/projects/:id"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S02 — Projekt-Detailseite
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Alles zu einem Projekt an einem Ort — die Akte, die in P9 um Auftrags-Reiter wächst.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Status sichtbar und klickbar**: Status-Leiste (Spalten des aktuellen Boards) im Kopf, Klick = Wechsel; Historie mit Verweildauer je Spalte
|
||||||
|
- Herkunft zeigen: »Kam aus Anfrage X« (Link zum Lead)
|
||||||
|
- Gewonnen/Verloren-Banner mit **24-h-Rückgängig**
|
||||||
|
- Kontakte **mit Projekt-Rollen** verknüpfen: Auftraggeber · Bauherr · Rechnungsempfänger · Ansprechpartner
|
||||||
|
- Felder je Board unterschiedlich (kommt aus der Detail-Schablone / Edit-Mode)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A3 — **P6-Karteikarten-Muster** (Zweispalter + Reiter), erweitert um die Status-Leiste im Kopf.
|
||||||
|
|
||||||
|
## Aufbau
|
||||||
|
|
||||||
|
- **Kopf:** Nummer + Titel · Status-Leiste (klickbar) · Board-Zugehörigkeit · Schnell-Aktionen (Anrufen/E-Mail/Termin/Aufgabe/Notiz)
|
||||||
|
- **Links:** Stammdaten inline (Umsatz gegated, Zeitraum, Adress-Slots) · Kontakte mit Rollen · eigene Felder (je Board-Schablone) · Tags · Herkunfts-Hinweis
|
||||||
|
- **Rechts, Reiter:** Verlauf (Default) · Termine · Aufgaben (V01 aus P4) · Dateien (P4-Sektion) — Rechnungen/Checklisten/Abnahmen kommen mit P9 dazu
|
||||||
|
- »Verlauf dieses Objekts« (Audit-Drawer aus P3)
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Gewonnen/Verloren | Banner + 24-h-Rückgängig | Nur dokumentieren |
|
||||||
|
| Umsatz ohne Recht | »—« | Nur dokumentieren |
|
||||||
|
| Nicht gefunden / kein Recht | 404 | Wiederverwenden |
|
||||||
|
| Laden / Fehler | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P8
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: S03
|
||||||
|
screen: Projekt-Liste
|
||||||
|
typ: Liste
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/projects/list"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S03 — Projekt-Liste
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Alle Projekte über alle Boards hinweg — für Suchen, Sortieren, Exportieren.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Cross-Board-Sicht mit Board-Spalte und Board-Filter
|
||||||
|
- Server-seitig sortieren/filtern/paginieren, Spalten konfigurierbar, CSV-Export, Mehrfach-Aktionen
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A2 Liste (Umschalter Board ↔ Liste im Kopf von [[S01 Kanban-Board]]).
|
||||||
|
|
||||||
|
## Daten
|
||||||
|
|
||||||
|
- Zeile: Projekt-Nummer · Titel · Board · Status (Spalte) · Umsatz (gegated) · Kontakt/Organisation · Zeitraum/Abschlussdatum · letzte Aktivität
|
||||||
|
|
||||||
|
## Aktionen
|
||||||
|
|
||||||
|
- Zeile öffnen → [[S02 Projekt-Detailseite]]
|
||||||
|
- Bulk: zuweisen, Tags, Archiv · CSV-Export
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Leer / Laden / Fehler | A7 + Klartext | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P8
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: S04
|
||||||
|
screen: Board-Einstellungen
|
||||||
|
typ: Verwaltung
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "aus S01 (Board verwalten) + aus S07 (Einstellungen)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S04 — Board-Einstellungen
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Ein Board zuschneiden: Spalten, wer es sieht, was beim Einzug in eine Spalte passiert. **Zwei Einstiege** (im Board + über Einstellungen), gleiche Seite.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Spalten:** anlegen, per Ziehen ordnen, je Spalte: Name · Art (offen/gewonnen/verloren) · Win-% · Farbe; Validation: min. 1 gewonnen + 1 verloren
|
||||||
|
- **Spalten-Regel (Davids Delta):** »Beim Einzug in diese Spalte automatisch verschieben nach [Board, Start-Spalte]« — greift die Regel, entfällt der Wechsel-Dialog
|
||||||
|
- **Rollen-Zugriff:** Matrix wer sehen / wer bearbeiten darf (Rolle/Person/Gruppe)
|
||||||
|
- Board: umbenennen · Typ (Vertrieb/Auftrag/eigenes) · duplizieren · archivieren
|
||||||
|
- Einstieg in die **Detail-Schablone** → [[S05 Detail-Schablone Edit-Mode]]
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A6 Settings + A2 (Spalten-Liste mit Drag&Drop).
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Validation verletzt (kein gewonnen/verloren) | Inline-Hinweis, Speichern blockiert | Nur dokumentieren |
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
|
|
||||||
|
## Notizen
|
||||||
|
|
||||||
|
- Spalten-Regel: Umsetzung (Board-Modell vs. Automation-Engine) = Dev-Frage beim Handoff.
|
||||||
|
- Auftrags-Erweiterung (aus WF-P9 Projekt-Akte, validiert): je Spalte zusätzlich **»Abnahme Pflicht«** (Wechsel ohne Abnahme blockiert), **Abnahme-Vorlagen-Zuweisung** und **Auto-Archiv nach N Tagen**.
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P8
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: S05
|
||||||
|
screen: Detail-Schablone Edit-Mode
|
||||||
|
typ: Modus (WYSIWYG)
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "aus S01/S04 (Edit-Mode-Umschalter)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S05 — Detail-Schablone (Edit-Mode)
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
**Davids Konzept:** Die Projekt-Detailansicht dieses Boards als leere Schablone — alle Felder genau da, wo sie sitzen, nur ungefüllt. Direkt bearbeiten statt abstrakter Einstellungs-Tabelle.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Umschalten in den Edit-Mode vom Board/Board-Einstellungen aus (nur Admin)
|
||||||
|
- Felder **verschieben** (Reihenfolge/Position in der Detailansicht)
|
||||||
|
- Felder **ein-/ausblenden** (Show / not Show) und als **Pflicht** markieren — optional je Spalte/Status
|
||||||
|
- **Feld hinzufügen**: bestehendes eigenes Feld wählen ODER neues anlegen (nutzt Eigene Felder aus P6)
|
||||||
|
- **Berechtigung je Feld** setzen (wer sieht/bearbeitet — z. B. Umsatz nur Vertrieb)
|
||||||
|
- Gilt **nur für die Detailansicht** — das Karten-Layout ist bewusst NICHT editierbar (v1, Davids Entscheidung)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
WYSIWYG-Variante der [[S02 Projekt-Detailseite]] mit Edit-Rahmen (gestrichelte Feld-Slots, Drag-Handles, Feld-Einstellungs-Popover).
|
||||||
|
|
||||||
|
## Aktionen
|
||||||
|
|
||||||
|
- Feld ziehen · Feld-Popover (sichtbar/Pflicht/Berechtigung) · »+ Feld« · Speichern/Verwerfen · zurück zum Board
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Ungespeicherte Änderungen | Hinweis beim Verlassen | Nur dokumentieren |
|
||||||
|
| Kein Admin-Recht | Umschalter gar nicht sichtbar | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
|
|
||||||
|
## Notizen
|
||||||
|
|
||||||
|
- Entspricht fachlich der Feld-Konfiguration je Board (PipelineFieldConfig) — nur als WYSIWYG statt Tabelle. Dev-seitig identisches Modell.
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P8
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: S06
|
||||||
|
screen: Verlust-Gruende
|
||||||
|
typ: Settings-Liste
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/admin/pipelines/lost-reasons (Einstellungen -> Arbeitsweise)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S06 — Verlust-Gründe
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Pflegen, warum Projekte verloren gehen — Grundlage fürs Reporting.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Liste: Grund · Anzahl verknüpfter Projekte · Status
|
||||||
|
- Anlegen / bearbeiten / **archivieren** (kein Löschen — Reporting braucht die Historie)
|
||||||
|
- 5 SHK-Vorlagen vorbefüllt
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A2 Settings-Liste unter Einstellungen → Arbeitsweise.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P8
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
id: S07
|
||||||
|
screen: Boards-Uebersicht
|
||||||
|
typ: Settings-Liste
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/admin/pipelines (Einstellungen -> Arbeitsweise -> Boards)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S07 — Boards-Übersicht (Einstellungen)
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Der zweite Einstieg (Davids Entscheidung): alle Boards an einem Ort finden, in ihre Einstellungen springen, neue anlegen.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Liste aller Boards: Name · Typ (Vertrieb/Auftrag/eigenes) · Spalten-Anzahl · aktive Projekte · wer Zugriff hat (Kurzform) · Status
|
||||||
|
- **»+ Neues Board«** (Name, Typ, Start-Spalten aus Vorlage)
|
||||||
|
- Zeile öffnen → [[S04 Board-Einstellungen]] (dieselbe Seite wie der Einstieg im Board)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A2 Settings-Liste unter Einstellungen → Arbeitsweise.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"md-paket","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.md","x":-80,"y":-440,"width":460,"height":280},
|
||||||
|
{"id":"group-board","type":"group","x":-80,"y":-100,"width":1820,"height":380,"label":"Board (Bespoke)"},
|
||||||
|
{"id":"group-liste","type":"group","x":1880,"y":-100,"width":540,"height":380,"label":"Listen-Ansicht"},
|
||||||
|
{"id":"group-dialoge","type":"group","x":-80,"y":460,"width":1120,"height":380,"label":"Won/Lost-Dialoge"},
|
||||||
|
{"id":"group-verw","type":"group","x":1200,"y":460,"width":1200,"height":380,"label":"Board-Verwaltung + Edit-Mode"},
|
||||||
|
{"id":"group-settings","type":"group","x":-80,"y":1120,"width":1820,"height":380,"label":"Einstellungen → Arbeitsweise (zweiter Einstieg)"},
|
||||||
|
{"id":"note-entry","type":"text","text":"# Einstieg\n\nSidebar → Pipelines (`/projects`) — öffnet das zuletzt genutzte Board.\n\nBoards = Views auf denselben Projekt-Datensatz (Pivot).","x":0,"y":0,"width":360,"height":200},
|
||||||
|
{"id":"s01","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S01 Kanban-Board.md","x":560,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s02","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S02 Projekt-Detailseite.md","x":1240,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s03","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S03 Projekt-Liste.md","x":1920,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"m01","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M01 Verloren-Dialog.md","x":0,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"m02","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M02 Board-Wechsel-Dialog.md","x":580,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"s04","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S04 Board-Einstellungen.md","x":1240,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"s05","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S05 Detail-Schablone Edit-Mode.md","x":1940,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"note-settings","type":"text","text":"# Einstieg 2\n\nEinstellungen → Arbeitsweise: alle Boards finden, neue anlegen, Verlust-Gründe pflegen.\n\nGleiche Board-Einstellungen wie im Tool — kein Duplikat.","x":0,"y":1220,"width":360,"height":200},
|
||||||
|
{"id":"s07","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S07 Boards-Uebersicht.md","x":560,"y":1220,"width":420,"height":200},
|
||||||
|
{"id":"s06","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S06 Verlust-Gruende.md","x":1240,"y":1220,"width":420,"height":200}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{"id":"e-entry","fromNode":"note-entry","fromSide":"right","toNode":"s01","toSide":"left","toEnd":"arrow","styleAttributes":{"path":"dotted"}},
|
||||||
|
{"id":"e-open","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","toEnd":"arrow","label":"Karte öffnen"},
|
||||||
|
{"id":"e-liste","fromNode":"s01","fromSide":"top","toNode":"s03","toSide":"top","toEnd":"arrow","label":"Umschalter Board ↔ Liste"},
|
||||||
|
{"id":"e-lost","fromNode":"s01","fromSide":"bottom","toNode":"m01","toSide":"top","toEnd":"arrow","label":"Verloren-Spalte (Grund Pflicht)"},
|
||||||
|
{"id":"e-won","fromNode":"s01","fromSide":"bottom","toNode":"m02","toSide":"top","toEnd":"arrow","label":"Gewonnen ohne Spalten-Regel"},
|
||||||
|
{"id":"e-verw","fromNode":"s02","fromSide":"bottom","toNode":"s04","toSide":"top","toEnd":"arrow","label":"Board verwalten (aus S01/S02)"},
|
||||||
|
{"id":"e-edit","fromNode":"s04","fromSide":"right","toNode":"s05","toSide":"left","toEnd":"arrow","label":"Edit-Mode öffnen"},
|
||||||
|
{"id":"e-link","fromNode":"s07","fromSide":"top","toNode":"s04","toSide":"bottom","toEnd":"arrow","label":"öffnet dieselbe Seite","styleAttributes":{"path":"long-dashed"}},
|
||||||
|
{"id":"e-set","fromNode":"note-settings","fromSide":"right","toNode":"s07","toSide":"left","toEnd":"arrow","styleAttributes":{"path":"dotted"}}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,142 @@
|
|||||||
|
---
|
||||||
|
kind: wireframe-package
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P8 + D-KANBAN
|
||||||
|
package: WF-P8 Pipelines
|
||||||
|
typ: Flow
|
||||||
|
status: Validiert
|
||||||
|
subframe: ""
|
||||||
|
canvas: "WF-P8 Pipelines.canvas"
|
||||||
|
---
|
||||||
|
|
||||||
|
# WF-P8 Pipelines
|
||||||
|
|
||||||
|
Status: Validiert (Screen-Liste)
|
||||||
|
Subframe-Link: -
|
||||||
|
Canvas: [Canvas](<WF-P8 Pipelines.canvas>)
|
||||||
|
Stand: 2026-07-08
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Kurzfassung
|
||||||
|
|
||||||
|
Das Herzstück des Vertriebs: **Kanban-Boards als Views auf den einen Projekt-Datensatz.** Karten ziehen = Status wechseln, gewonnen = Board-Wechsel (regel-basiert oder per Dialog), Umsatz nur für Berechtigte. Konfiguration lebt im Board (Edit-Mode für die Detailansicht) mit zweitem Einstieg über die Einstellungen. Deckt **beide Tickets** ab: D-KANBAN (Board, Bespoke) + D-P8 (Detail, Liste, Verwaltung).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Intent Check
|
||||||
|
|
||||||
|
| Frage | Antwort |
|
||||||
|
|---|---|
|
||||||
|
| Welches Ticket/Modul ist betroffen? | D-P8 + D-KANBAN (P8), Dev-Pendant R-P8a/R-P8b |
|
||||||
|
| Was soll der Nutzer am Ende schaffen? | Vertrieb im Blick (Board), Projekt-Details pflegen, Boards selbst zuschneiden (Spalten, Rechte, Felder) |
|
||||||
|
| Flow, Screen, Zustand oder Doku? | Bespoke-Board + Detail + Liste + Verwaltungs-Screens + 2 Dialoge |
|
||||||
|
| Welche Planning-Quellen wurden geprüft? | `ticket-docs/D-P8.md` + `D-KANBAN.md`, ENTITY-MODEL Domäne 5 (Pivot), HiveGrid Map |
|
||||||
|
| Was ist sicher im Scope? | Board, Projekt-Detail (Basis), Liste, Board-Einstellungen, Edit-Mode Detailansicht, Verlust-Gründe |
|
||||||
|
| Was ist sicher nicht im Scope? | Plantafel/Abnahme/Rechnungen-Reiter (P9), Forecast-Widgets als Screens (P11/D-DASH — hier nur Datenquellen), Karten-Layout-Editor (bewusst nicht, Davids Entscheidung) |
|
||||||
|
| Admin/Normalrolle-Unterschiede? | Board-Sichtbarkeit je Rolle (PipelineAccess); Umsatz field-level gegated; Verwaltung nur Admin |
|
||||||
|
| Unsichere Annahmen? | Spalten-Regel »Auto-Verschieben nach Board X« — technische Umsetzung (direkt oder via Automation-Engine) → Dev-Frage |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Scope
|
||||||
|
|
||||||
|
| Punkt | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| Ticket/Modul | D-P8 + D-KANBAN · Sidebar-Punkt »Pipelines« |
|
||||||
|
| Nutzerrolle | Maximalansicht (Admin) |
|
||||||
|
| Startpunkt | Sidebar »Pipelines« → zuletzt genutztes Board |
|
||||||
|
| Ziel | Projekt durchs Board bewegt; gewonnen → Auftrags-Board |
|
||||||
|
| Haupt-Archetyp | **BESPOKE Board** · A3 Detail (P6-Muster) · A2 Liste · A5/A6 Verwaltung |
|
||||||
|
| Bespoke-Anteil | Das Board selbst (ein Board für alle Pipeline-Typen) |
|
||||||
|
| Out of scope | P9-Sub-Areas, KWP, getrennte Sales-/Projekt-Kanbans (Pivot: EIN Board-System) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Entscheidungen (validiert 2026-07-08)
|
||||||
|
|
||||||
|
| Entscheidung | Status | Notiz |
|
||||||
|
|---|---|---|
|
||||||
|
| EIN Paket für beide Tickets | genommen | Board = Bespoke-Kern, Rest Baukasten |
|
||||||
|
| **Boards = Views auf Projekte** | genommen | Pivot AD-20: ein Datensatz, »Deal«/»Auftrag« = Board-Typen, kein Kopieren beim Gewinnen, Status immer board-intern |
|
||||||
|
| **Edit-Mode: NUR die Detailansicht** | genommen | Vom Board aus umschaltbar: alle Felder der Projekt-Detailansicht als leere Schablone — verschieben, hinzufügen (nutzt Eigene Felder aus P6), sichtbar/Pflicht, Berechtigung je Feld. **Karten-Layout bewusst NICHT editierbar (v1)** |
|
||||||
|
| **Zwei Einstiege zu den Board-Einstellungen** | genommen | (1) im Board: »Board verwalten« + Edit-Mode-Umschalter · (2) Einstellungen → Arbeitsweise → Boards: Liste aller Boards, Springen in deren Einstellungen, »+ Neues Board« — gleiche Ziele, kein Duplikat |
|
||||||
|
| **Gewonnen-Moment regel-basiert** | genommen — Davids Delta | Spalten-Regel: »Beim Einzug in diese Spalte automatisch verschieben nach [Board, Spalte]« → kein Dialog. Ohne Regel → Auswahl-Dialog »Wohin verschieben?«. Umsetzung (direkt vs. Automation-Engine) = Dev-Frage |
|
||||||
|
| Verloren = Grund Pflicht | genommen | Dialog mit Verlust-Grund-Auswahl (SHK-Vorlagen geseedet) |
|
||||||
|
| Projekt-Detail nach P6-Karteikarten-Muster | genommen | Zweispalter + Reiter, Status-Leiste im Kopf |
|
||||||
|
| Umsatz-Gating | genommen | Ohne Recht »—« (field-level via Feld-Konfiguration + Rechte) |
|
||||||
|
|
||||||
|
### Happy Path
|
||||||
|
|
||||||
|
1. Sidebar »Pipelines« → zuletzt genutztes Board; Wechsler oben (Vertrieb/Auftrag/eigene — nur die, die man sehen darf).
|
||||||
|
2. Karten ziehen; Spaltenköpfe zeigen Anzahl + Summe + Win-%.
|
||||||
|
3. In »Gewonnen« ziehen → Regel greift (auto-verschoben, Toast) ODER Dialog »Wohin?«.
|
||||||
|
4. In »Verloren« ziehen → Grund-Pflicht-Dialog.
|
||||||
|
5. Karte öffnen → Projekt-Detail (P6-Muster) mit klickbarer Status-Leiste + Historie.
|
||||||
|
6. Admin: Edit-Mode → Detailansicht-Schablone anpassen (Felder, Sichtbarkeit, Pflicht, Rechte); »Board verwalten« → Spalten, Rollen-Zugriff, Spalten-Regeln.
|
||||||
|
|
||||||
|
### Meldungs-/Error-States (validiert)
|
||||||
|
|
||||||
|
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Verloren ohne Grund | Pflicht-Dialog | ja | Bauen (M01) | Grund-Auswahl + Freitext |
|
||||||
|
| Gewonnen/Verloren gesetzt | 24-h-Rückgängig-Banner | nein | Nur dokumentieren | am Projekt + Board-Toast |
|
||||||
|
| Umsatz ohne Recht | »—« in Karte/Kopf/Liste | nein | Nur dokumentieren | field-level |
|
||||||
|
| Ziehen in unerlaubte Spalte | Klartext-Hinweis, Karte springt zurück | ja (Aktion) | Nur dokumentieren | Validation |
|
||||||
|
| Live-Verbindung weg | Inline-Hinweis | nein | Nur dokumentieren | »aktualisiert sich gerade nicht« |
|
||||||
|
| Leeres Board | Leer-Zustand + CTA | nein | Nur dokumentieren | »Noch keine Projekte — aus Lead-Eingang konvertieren oder anlegen« |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Validierte Screen-Liste
|
||||||
|
|
||||||
|
| ID | Screen/Zustand | Typ | Umsetzung | Ort | Status |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| S01 | Kanban-Board ⭐ | BESPOKE | Bauen | `/projects` | Validiert |
|
||||||
|
| S02 | Projekt-Detailseite | Detail (P6-Muster) | Bauen | `/projects/:id` | Validiert |
|
||||||
|
| S03 | Projekt-Liste (alle Boards) | Liste | Bauen | `/projects/list` | Validiert |
|
||||||
|
| S04 | Board-Einstellungen (Spalten, Rollen-Zugriff, Spalten-Regeln) | Verwaltung | Bauen | aus Board + aus Einstellungen | Validiert |
|
||||||
|
| S05 | Detail-Schablone (Edit-Mode) | Modus/Variante | Bauen | aus Board/S04 | Validiert |
|
||||||
|
| S06 | Verlust-Gründe | Settings-Liste | Bauen | `/admin/pipelines/lost-reasons` | Validiert |
|
||||||
|
| S07 | Boards-Übersicht (Einstellungen) | Settings-Liste | Bauen | Einstellungen → Arbeitsweise | Validiert |
|
||||||
|
| M01 | Verloren-Dialog (Grund Pflicht) | Modal | Bauen | aus S01/S02 | Validiert |
|
||||||
|
| M02 | Board-Wechsel-Dialog (»Wohin?« ohne Regel) | Modal | Bauen | aus S01 | Validiert |
|
||||||
|
| D01 | KPI-/Forecast-Datenquellen | Doku | Nur dokumentieren | Widgets in D-DASH | Validiert |
|
||||||
|
| D02–D06 | Zustände (s. Tabelle) | Inline/Banner | Nur dokumentieren | — | Validiert |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Grid
|
||||||
|
|
||||||
|
```text
|
||||||
|
Sidebar -> S01 (Board) -> S02 (Projekt-Detail)
|
||||||
|
S01 -> S03 (Listen-Ansicht) [Umschalter]
|
||||||
|
S01 -> M01 (Verloren) / M02 (Board-Wechsel ohne Regel)
|
||||||
|
S01 -> S04 (Board verwalten) -> S05 (Edit-Mode Detailansicht)
|
||||||
|
Einstellungen -> S07 (Boards-Uebersicht) -> S04
|
||||||
|
Einstellungen -> S06 (Verlust-Gruende)
|
||||||
|
S02 nutzt P6-Muster + bettet ein: Aufgaben V01, Datei-Sektion, Verlauf-Drawer
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Screen-Pakete
|
||||||
|
|
||||||
|
- [[S01 Kanban-Board]] · [[S02 Projekt-Detailseite]] · [[S03 Projekt-Liste]]
|
||||||
|
- [[S04 Board-Einstellungen]] · [[S05 Detail-Schablone Edit-Mode]]
|
||||||
|
- [[S06 Verlust-Gruende]] · [[S07 Boards-Uebersicht]]
|
||||||
|
- [[M01 Verloren-Dialog]] · [[M02 Board-Wechsel-Dialog]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Offene Fragen
|
||||||
|
|
||||||
|
- **Dev-Frage (Davids Delta):** Spalten-Regel »Auto-Verschieben nach Board X, Spalte Y« — direkt am Board-Modell oder als vereinfachte Oberfläche über die Automation-Engine (P12)? Beim Handoff klären
|
||||||
|
- Karten-Inhalt fix definiert (Titel, Umsatz gegated, Avatar, Datum, max. 3 Tags, Hänger-Marker) — Feinschliff beim Subframe-Bau
|
||||||
|
- Projekt anlegen direkt aus dem Board (+ auf Spalte)? → beim Subframe-Bau entscheiden (Anfragen kommen primär aus dem Lead-Eingang)
|
||||||
|
|
||||||
|
## Handoff-Check
|
||||||
|
|
||||||
|
- [x] Jeder Screen ist mit Umsetzung markiert.
|
||||||
|
- [x] Meldungs-/Error-State-Matrix ist ausgefüllt.
|
||||||
|
- [ ] Subframe-Link ist eingetragen. *(Subframe erst nach explizitem OK)*
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-ABN
|
||||||
|
package: WF-P9 Abnahme
|
||||||
|
id: S01
|
||||||
|
screen: Abnahme-Liste
|
||||||
|
typ: Liste
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/projects/:id/acceptance"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S01 — Abnahme-Liste
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Alle (Teil-)Abnahmen eines Projekts im Blick — mit PDF-Zugriff.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Je Protokoll: Datum · Ergebnis (erfolgt / mit Vorbehalt / verweigert) · Unterzeichner · **PDF-Link** · Mängel-Status
|
||||||
|
- Teil-/Mehrfach-Abnahmen; die letzte **Voll**-Abnahme löst den Spalten-Wechsel-Vorschlag aus
|
||||||
|
- »Neue Abnahme« → [[S02 Schritt Pruefungen]]
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A2 Liste (im Abnahmen-Reiter der Projekt-Akte).
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Leer | »Noch keine Abnahme« + Start-Knopf | Nur dokumentieren |
|
||||||
|
| Laden / Fehler | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-ABN
|
||||||
|
package: WF-P9 Abnahme
|
||||||
|
id: S02
|
||||||
|
screen: Schritt Pruefungen
|
||||||
|
typ: BESPOKE-Mobile (Workflow 1/3)
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/projects/:id/acceptance/new"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S02 — Schritt 1: Prüfungen 📱
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Die technische Abnahme erfassen — Feld für Feld, mit Handschuhen bedienbar.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Kopf: Projekt, Datum, Anwesende
|
||||||
|
- **Druckprobe** (ja/nein + Wert) · **Funktionsprüfung** · **Zählerstände** · Inbetriebnahme-/Garantie-Datum
|
||||||
|
- **Übergebene Dokumente** als Abhak-Liste
|
||||||
|
- Felder kommen aus der zugewiesenen Vorlage (SHK-Standard als Referenz)
|
||||||
|
- Offline: alles lokal gespeichert, Fortschritt bleibt erhalten
|
||||||
|
- Fortschritts-Anzeige (1/3) · Weiter → [[S03 Schritt Maengel]]
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
BESPOKE-Mobile Formular-Schritt (große Touch-Ziele).
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Pflichtfeld fehlt | Schritt-Validierung beim Weiter | Nur dokumentieren |
|
||||||
|
| Offline | Banner + lokal gespeichert | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-ABN
|
||||||
|
package: WF-P9 Abnahme
|
||||||
|
id: S03
|
||||||
|
screen: Schritt Maengel
|
||||||
|
typ: BESPOKE-Mobile (Workflow 2/3)
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "Workflow-Schritt 2"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S03 — Schritt 2: Mängel 📱
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Jeden Mangel festhalten — mit Foto, in Sekunden.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Mängel-Repeater**: je Mangel Beschreibung + **Foto direkt aus der Kamera** + Einstufung
|
||||||
|
- **Einstufung bestimmt das Ergebnis**: kritisch = Abnahme verweigert · klein = mit Vorbehalt · kosmetisch = erfolgt
|
||||||
|
- Live-Hinweis, welches Ergebnis die aktuelle Einstufung ergibt (»Mit diesem Mangel wird die Abnahme verweigert«)
|
||||||
|
- »Keine Mängel« als schneller Pfad
|
||||||
|
- Bemerkungen Kunde / Monteur (Freitext)
|
||||||
|
- Fortschritt (2/3) · Weiter → [[S04 Schritt Unterschriften]]
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
BESPOKE-Mobile Repeater-Schritt.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Kritischer Mangel erfasst | Hinweis »wird verweigert« | Nur dokumentieren |
|
||||||
|
| Foto wartet auf Upload | Warteschlangen-Marker (offline) | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-ABN
|
||||||
|
package: WF-P9 Abnahme
|
||||||
|
id: S04
|
||||||
|
screen: Schritt Unterschriften
|
||||||
|
typ: BESPOKE-Mobile (Workflow 3/3)
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "Workflow-Schritt 3"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S04 — Schritt 3: Zusammenfassung + Unterschriften 📱
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Bewusst abschließen: alles nochmal sehen, dann rechtsgültig unterschreiben.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Zusammenfassung**: Prüfungen, Mängel mit Einstufung, das daraus folgende **Ergebnis groß sichtbar** (erfolgt / mit Vorbehalt / verweigert)
|
||||||
|
- **Touch-Unterschrift Kunde** (Name eingebbar, darf vom Kontakt abweichen) + **Touch-Unterschrift Monteur** — IP + Zeitstempel automatisch
|
||||||
|
- »Abschließen« → PDF wird erzeugt + automatisch an den Kunden gemailt · bei »mit Vorbehalt« werden Mängel zu Aufgaben · bei »verweigert« geht das Projekt zurück in Ausführung + Meldung an den Projektleiter
|
||||||
|
- Danach **unveränderbar** (Gesperrt-Banner beim späteren Öffnen)
|
||||||
|
- Offline: Abschluss lokal, PDF/Mail gehen nach Sync raus (Klartext-Hinweis)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
BESPOKE-Mobile Abschluss-Schritt mit Unterschriften-Feld (Baukasten-Primitive).
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Unterschrift fehlt | »Abschließen« gesperrt bis beide da | Nur dokumentieren |
|
||||||
|
| Offline-Abschluss | »Gespeichert — PDF + Mail gehen raus, sobald Verbindung da ist« | Nur dokumentieren |
|
||||||
|
| Später geöffnet | Gesperrt-Banner »Rechtsgültig abgeschlossen« | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"md-paket","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.md","x":-80,"y":-440,"width":460,"height":280},
|
||||||
|
{"id":"group-flow","type":"group","x":-80,"y":-100,"width":2500,"height":380,"label":"Abnahme-Workflow 📱 (mehrstufig, offline)"},
|
||||||
|
{"id":"group-notes","type":"group","x":-80,"y":460,"width":2500,"height":340,"label":"Regeln"},
|
||||||
|
{"id":"s01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md","x":0,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s02","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md","x":640,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s03","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md","x":1240,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s04","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md","x":1880,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"note-rules","type":"text","text":"# Regeln (nur Doku)\n\n- Einstufung bestimmt Ergebnis: kritisch = verweigert (zurück in Ausführung + PL-Meldung) · klein = mit Vorbehalt (Mängel → Aufgaben) · kosmetisch = erfolgt\n- Nach Abschluss: PDF + Auto-Mail an Kunden, danach UNVERÄNDERBAR (6 Jahre, Gesperrt-Banner)\n- Offline komplett ausfüllbar inkl. Fotos + Unterschriften; Sync bei Verbindung\n- Teil-Abnahmen möglich; letzte Voll-Abnahme → Spalten-Wechsel-Vorschlag","x":0,"y":540,"width":1100,"height":240}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{"id":"e-neu","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","toEnd":"arrow","label":"Neue Abnahme"},
|
||||||
|
{"id":"e-w1","fromNode":"s02","fromSide":"right","toNode":"s03","toSide":"left","toEnd":"arrow","label":"Weiter"},
|
||||||
|
{"id":"e-w2","fromNode":"s03","fromSide":"right","toNode":"s04","toSide":"left","toEnd":"arrow","label":"Weiter"}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
---
|
||||||
|
kind: wireframe-package
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-ABN
|
||||||
|
package: WF-P9 Abnahme
|
||||||
|
typ: Flow
|
||||||
|
status: Validiert
|
||||||
|
subframe: ""
|
||||||
|
canvas: "WF-P9 Abnahme.canvas"
|
||||||
|
---
|
||||||
|
|
||||||
|
# WF-P9 Abnahme
|
||||||
|
|
||||||
|
Status: Validiert (Screen-Liste)
|
||||||
|
Subframe-Link: -
|
||||||
|
Canvas: [Canvas](<WF-P9 Abnahme.canvas>)
|
||||||
|
Stand: 2026-07-09
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Kurzfassung
|
||||||
|
|
||||||
|
Das Baustellen-Protokoll: mehrstufiger Mobile-Ablauf (Prüfungen → Mängel → Unterschriften), Touch-Signatur Kunde + Monteur, PDF + Auto-Mail, danach unveränderbar (6 Jahre) — offline-fähig mit Sync. Plus Abnahme-Liste je Projekt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Intent Check
|
||||||
|
|
||||||
|
| Frage | Antwort |
|
||||||
|
|---|---|
|
||||||
|
| Ticket/Modul | D-ABN, Dev-Pendant R-P9a/R-P9b |
|
||||||
|
| Nutzer-Ziel | Monteur schließt die Baustelle rechtssicher ab — auch ohne Netz |
|
||||||
|
| Quellen geprüft | `ticket-docs/D-ABN.md`, ENTITY-MODEL Domäne 5 (immutable, Mängel = Checkliste), HiveGrid Map |
|
||||||
|
| Sicher im Scope | Mehrstufiger Workflow, Mängel-Repeater mit Foto, Signaturen, PDF, Liste, Teil-Abnahmen |
|
||||||
|
| Sicher nicht im Scope | Plantafel (eigenes Paket); Vorlagen-Editor (Formular-Baukasten, D-FORM) |
|
||||||
|
| Unsichere Annahmen | — |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Scope
|
||||||
|
|
||||||
|
| Punkt | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| Startpunkt | Abnahme-Knopf (Projekt-Mobil-Modus / Abnahmen-Reiter) |
|
||||||
|
| Ziel | Unterschriebenes Protokoll als PDF beim Kunden, Mängel als Aufgaben |
|
||||||
|
| Haupt-Archetyp | **BESPOKE-Mobile** (Workflow) + A2 (Liste) |
|
||||||
|
| Out of scope | Nachträgliches Bearbeiten (immutable!) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Entscheidungen (validiert 2026-07-09)
|
||||||
|
|
||||||
|
| Entscheidung | Status | Notiz |
|
||||||
|
|---|---|---|
|
||||||
|
| **Mehrstufiger Ablauf** statt langem Scroll-Screen | genommen | Schritte: 1 Prüfungen → 2 Mängel → 3 Zusammenfassung + Unterschriften. Fortschritt sichtbar, Unterschrift bewusst am Ende |
|
||||||
|
| Ergebnis folgt aus der Mängel-Einstufung | genommen | kritisch = **verweigert** (zurück in Ausführung + Meldung an PL) · klein = **mit Vorbehalt** (Mängel werden Aufgaben) · kosmetisch/keine = **erfolgt** |
|
||||||
|
| Touch-Signaturen Kunde + Monteur | genommen | Name eingebbar (darf vom Kontakt abweichen); IP + Zeitstempel automatisch |
|
||||||
|
| Nach Speichern unveränderbar | genommen | 6 Jahre, nur archivierbar; Gesperrt-Banner |
|
||||||
|
| Offline-fähig | genommen | komplett ausfüllbar inkl. Fotos + Unterschriften; Sync bei Verbindung |
|
||||||
|
| Teil-Abnahmen möglich | genommen | mehrere Protokolle je Projekt; letzte Voll-Abnahme → Spalten-Wechsel-Vorschlag |
|
||||||
|
|
||||||
|
### Meldungs-/Error-States (validiert)
|
||||||
|
|
||||||
|
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Gespeichertes Protokoll geöffnet | Gesperrt-Banner | ja (Edit) | Nur dokumentieren | »Rechtsgültig abgeschlossen — nicht änderbar« |
|
||||||
|
| Offline beim Abschließen | Hinweis: gespeichert, wird gesendet | nein | Nur dokumentieren | PDF/Mail gehen nach Sync raus |
|
||||||
|
| Pflichtfeld fehlt beim Weiter | Schritt-Validierung | ja (Schritt) | Nur dokumentieren | Klartext je Feld |
|
||||||
|
| Kritischer Mangel erfasst | Hinweis »Abnahme wird verweigert« | nein | Nur dokumentieren | vor der Unterschrift sichtbar |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Validierte Screen-Liste
|
||||||
|
|
||||||
|
| ID | Screen/Zustand | Typ | Umsetzung | Ort | Status |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| S01 | Abnahme-Liste (je Projekt) | Liste | Bauen | `/projects/:id/acceptance` | Validiert |
|
||||||
|
| S02 | Schritt 1 — Prüfungen 📱 | BESPOKE-Mobile | Bauen | `/projects/:id/acceptance/new` | Validiert |
|
||||||
|
| S03 | Schritt 2 — Mängel 📱 | BESPOKE-Mobile | Bauen | Workflow | Validiert |
|
||||||
|
| S04 | Schritt 3 — Zusammenfassung + Unterschriften 📱 | BESPOKE-Mobile | Bauen | Workflow | Validiert |
|
||||||
|
| D01–D04 | Gesperrt/Offline/Validierung (s. Tabelle) | Inline/Banner | Nur dokumentieren | — | Validiert |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Grid
|
||||||
|
|
||||||
|
```text
|
||||||
|
Projekt (Abnahmen-Reiter / Mobil-Modus) -> S01 (Liste) -> Neue Abnahme
|
||||||
|
S02 (Pruefungen) -> S03 (Maengel) -> S04 (Zusammenfassung + Unterschriften) -> PDF + Auto-Mail
|
||||||
|
S03: kritisch -> verweigert (PL-Meldung) · klein -> Maengel werden Aufgaben
|
||||||
|
Nach Abschluss: immutable; letzte Voll-Abnahme -> Spalten-Wechsel-Vorschlag
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Screen-Pakete
|
||||||
|
|
||||||
|
- [[S01 Abnahme-Liste]] · [[S02 Schritt Pruefungen]] · [[S03 Schritt Maengel]] · [[S04 Schritt Unterschriften]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Offene Fragen
|
||||||
|
|
||||||
|
- Formular-Felder kommen aus der zugewiesenen Vorlage (WF-P9 Projekt-Akte S03); SHK-Standard ist die Referenz fürs Design
|
||||||
|
- PDF-Layout: Dev/Standard — Design liefert nur die Bildschirm-Flächen
|
||||||
|
|
||||||
|
## Handoff-Check
|
||||||
|
|
||||||
|
- [x] Jeder Screen ist mit Umsetzung markiert.
|
||||||
|
- [x] Meldungs-/Error-State-Matrix ist ausgefüllt.
|
||||||
|
- [ ] Subframe-Link ist eingetragen. *(Subframe erst nach explizitem OK)*
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-PLAN
|
||||||
|
package: WF-P9 Plantafel
|
||||||
|
id: M01
|
||||||
|
screen: Konflikt-Dialog
|
||||||
|
typ: Modal
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "aus S01 bei Konflikt"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# M01 — Konflikt-Dialog (»Trotzdem zuweisen?«)
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Konflikte nicht verhindern, sondern **bewusst machen** — das Büro entscheidet informiert.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Klartext-Grund: »Max ist an dem Tag im Urlaub« / »Max ist bereits bei Projekt X verplant (9–12 Uhr)« / »außerhalb der Arbeitszeit«
|
||||||
|
- Bei Doppelbelegung: der andere Einsatz verlinkt
|
||||||
|
- Entscheidung: **»Trotzdem zuweisen«** oder abbrechen (Block springt zurück)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A5 Dialog (echtes Modal).
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-PLAN
|
||||||
|
package: WF-P9 Plantafel
|
||||||
|
id: M02
|
||||||
|
screen: Einsatz-Dialog
|
||||||
|
typ: Modal/Panel
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "aus S01 (leerer Slot / Einsatz-Klick)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# M02 — Einsatz anlegen/bearbeiten
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Einsatz in Sekunden anlegen — Mitarbeiter und Zeit sind vom Slot schon vorbelegt.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Vorbelegt: Mitarbeiter + Zeitraum (vom angeklickten Slot)
|
||||||
|
- **Projekt wählen** (Auto-Complete) · Zeitraum anpassen · Notiz
|
||||||
|
- Status setzen (Default: geplant)
|
||||||
|
- Konflikt-Prüfung beim Speichern → ggf. [[M01 Konflikt-Dialog]]
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A5 Dialog (echtes Modal).
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-PLAN
|
||||||
|
package: WF-P9 Plantafel
|
||||||
|
id: S01
|
||||||
|
screen: Plantafel
|
||||||
|
typ: BESPOKE Grid
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/projects/plantafel"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S01 — Plantafel (Desktop-Raster) ⭐
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Das Büro verplant alle Monteure kollisionsfrei — auf einen Blick.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Raster: **Zeilen = Mitarbeiter, Spalten = Zeit** (Umschalter Tag/Woche/Monat)
|
||||||
|
- Einsatz-Blöcke: Projekt-Titel, Status-Farbe (vom Board-Status), Adresse kurz
|
||||||
|
- **Ziehen = verschieben, Kante ziehen = verlängern/kürzen**; Klick auf leeren Slot → [[M02 Einsatz-Dialog]]
|
||||||
|
- **Konflikt-Marker** am Block (doppelt / Urlaub/krank aus HR / außerhalb Arbeitszeit); Zuweisung trotzdem möglich via [[M01 Konflikt-Dialog]]
|
||||||
|
- Status-Kette je Einsatz: geplant → bestätigt → unterwegs → fertig/abgesagt
|
||||||
|
- Mehrfachauswahl → **Bulk-Umplanung** auf anderen Monteur
|
||||||
|
- Filter: Mitarbeiter (Rolle/Gruppe/Verfügbarkeit) + Projekt · Kalender-Sync-Marker je Einsatz
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
**BESPOKE** — Scheduling-Grid.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Leer | »Noch keine Einsätze in diesem Zeitraum« | Nur dokumentieren |
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-PLAN
|
||||||
|
package: WF-P9 Plantafel
|
||||||
|
id: S02
|
||||||
|
screen: Meine Termine
|
||||||
|
typ: BESPOKE-Mobile (offline)
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "Handy / Bottom-Nav »Heute«"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S02 — Meine Termine 📱 (Heute ↔ Woche)
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Der Monteur weiß immer, wo er als Nächstes hin muss — auch im Keller ohne Netz.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Heute-Liste** (Hauptansicht): je Einsatz Projekt, Zeit, **Adresse + Navi-Link**, Ansprechpartner mit Anruf-Knopf
|
||||||
|
- **Status per Tipp**: bestätigt → unterwegs → fertig
|
||||||
|
- Umschalter oben: **Heute ↔ Woche** (kompakte Wochen-Sicht) — ein Frame, validiert
|
||||||
|
- Einsatz antippen → Projekt-Mobil-Modus (WF-P9 Projekt-Akte S02)
|
||||||
|
- **Offline-fähig**: Liste gecacht, Status-Tipps werden bei Verbindung nachgereicht (Sync-Status sichtbar)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
📱 BESPOKE-Mobile, große Touch-Ziele, Bottom-Nav-Einstieg »Heute«.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Offline | Banner »offline — Änderungen werden nachgereicht« + Sync-Status | Nur dokumentieren |
|
||||||
|
| Keine Termine heute | »Heute keine Einsätze« | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"md-paket","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.md","x":-80,"y":-440,"width":460,"height":280},
|
||||||
|
{"id":"group-desktop","type":"group","x":-80,"y":-100,"width":1140,"height":380,"label":"Büro (Desktop, Bespoke)"},
|
||||||
|
{"id":"group-dialoge","type":"group","x":-80,"y":460,"width":1140,"height":380,"label":"Dialoge"},
|
||||||
|
{"id":"group-mobil","type":"group","x":1200,"y":-100,"width":1120,"height":380,"label":"Monteur 📱 (offline)"},
|
||||||
|
{"id":"note-entry","type":"text","text":"# Einstieg\n\nSidebar → Plantafel.\n\nKonflikte gespeist aus HR (Urlaub/krank) + Kalender-Abgleich.","x":0,"y":0,"width":360,"height":200},
|
||||||
|
{"id":"s01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/S01 Plantafel.md","x":560,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"m02","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md","x":0,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"m01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md","x":580,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"s02","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/S02 Meine Termine.md","x":1240,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"note-mobil","type":"text","text":"# Monteur-Einstieg\n\nBottom-Nav »Heute«. Ein Frame mit Umschalter Heute ↔ Woche (validiert). Tipp auf Einsatz → Projekt-Mobil-Modus.","x":1800,"y":0,"width":460,"height":200}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{"id":"e-entry","fromNode":"note-entry","fromSide":"right","toNode":"s01","toSide":"left","toEnd":"arrow","styleAttributes":{"path":"dotted"}},
|
||||||
|
{"id":"e-slot","fromNode":"s01","fromSide":"bottom","toNode":"m02","toSide":"top","toEnd":"arrow","label":"Slot-Klick / Einsatz öffnen"},
|
||||||
|
{"id":"e-konflikt","fromNode":"m02","fromSide":"right","toNode":"m01","toSide":"left","toEnd":"arrow","label":"bei Konflikt"},
|
||||||
|
{"id":"e-drag","fromNode":"s01","fromSide":"bottom","toNode":"m01","toSide":"top","toEnd":"arrow","label":"Drag&Drop bei Konflikt","styleAttributes":{"path":"long-dashed"}},
|
||||||
|
{"id":"e-mobil","fromNode":"note-mobil","fromSide":"left","toNode":"s02","toSide":"right","toEnd":"arrow","styleAttributes":{"path":"dotted"}}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
---
|
||||||
|
kind: wireframe-package
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-PLAN
|
||||||
|
package: WF-P9 Plantafel
|
||||||
|
typ: Flow
|
||||||
|
status: Validiert
|
||||||
|
subframe: ""
|
||||||
|
canvas: "WF-P9 Plantafel.canvas"
|
||||||
|
---
|
||||||
|
|
||||||
|
# WF-P9 Plantafel
|
||||||
|
|
||||||
|
Status: Validiert (Screen-Liste)
|
||||||
|
Subframe-Link: -
|
||||||
|
Canvas: [Canvas](<WF-P9 Plantafel.canvas>)
|
||||||
|
Stand: 2026-07-09
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Kurzfassung
|
||||||
|
|
||||||
|
Die Einsatzplanung: Raster Mitarbeiter × Zeit mit Drag&Drop, Konflikt-Warnungen (Doppelbelegung, Urlaub/krank aus HR, Arbeitszeit) — und der offline-fähige Monteur-Handy-Modus »Meine Termine heute/Woche«. **Bespoke, höchste Priorität nach dem Flow-Editor.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Intent Check
|
||||||
|
|
||||||
|
| Frage | Antwort |
|
||||||
|
|---|---|
|
||||||
|
| Ticket/Modul | D-PLAN, Dev-Pendant R-P9a/R-P9b |
|
||||||
|
| Nutzer-Ziel | Büro: Monteure kollisionsfrei verplanen · Monteur: wissen, wo er heute hin muss — auch ohne Netz |
|
||||||
|
| Quellen geprüft | `ticket-docs/D-PLAN.md`, ENTITY-MODEL Domäne 5, HiveGrid Map |
|
||||||
|
| Sicher im Scope | Desktop-Raster, Einsatz-Dialog, Konflikt-Dialog, Monteur-Modus (Heute + Woche), Kalender-Sync-Marker |
|
||||||
|
| Sicher nicht im Scope | Material-Ausgang, Zeiterfassung, Leistungspositionen (v2); Abnahme (eigenes Paket) |
|
||||||
|
| Unsichere Annahmen | — |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Scope
|
||||||
|
|
||||||
|
| Punkt | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| Startpunkt | Sidebar »Plantafel« (Desktop) · Bottom-Nav »Heute« (Monteur) |
|
||||||
|
| Ziel | Einsatz geplant/verschoben ohne Konflikt · Monteur beim Kunden |
|
||||||
|
| Haupt-Archetyp | **BESPOKE** (Grid) + 📱 offline |
|
||||||
|
| Out of scope | v2-Themen s. o. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Entscheidungen (validiert 2026-07-09)
|
||||||
|
|
||||||
|
| Entscheidung | Status | Notiz |
|
||||||
|
|---|---|---|
|
||||||
|
| Monteur-Modus als EIN Frame mit Umschalter Heute ↔ Woche | genommen | Heute-Liste ist die Hauptansicht |
|
||||||
|
| Konflikt-Dialog »Trotzdem zuweisen?« wird gebaut | genommen | Klartext-Grund (doppelt / Urlaub / krank / außerhalb Arbeitszeit) + bewusste Entscheidung |
|
||||||
|
| Einsatz-Dialog (Klick auf leeren Slot / Einsatz) | genommen | Projekt wählen, Zeitraum, Notiz; Status-Kette geplant→bestätigt→unterwegs→fertig/abgesagt |
|
||||||
|
| Status-Farbe der Einsätze = Board-Status des Projekts | genommen | Ticket-Vorgabe (pipeline-basiert) |
|
||||||
|
| Konflikte kommen aus HR (Urlaub/krank) + Kalender | genommen | Querverbindungen aus der Map |
|
||||||
|
|
||||||
|
### Happy Path
|
||||||
|
|
||||||
|
1. Büro öffnet Plantafel (Woche), sieht alle Monteure als Zeilen.
|
||||||
|
2. Einsatz per Klick auf freien Slot anlegen oder per Ziehen verschieben/verlängern.
|
||||||
|
3. Konflikt? Dialog erklärt in Klartext, warum — zuweisen geht trotzdem (bewusst).
|
||||||
|
4. Monteur am Handy: »Heute« — Liste mit Adresse + Navi-Link, Status per Tipp (unterwegs → fertig). Funktioniert offline, synct später.
|
||||||
|
|
||||||
|
### Meldungs-/Error-States (validiert)
|
||||||
|
|
||||||
|
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Konflikt beim Zuweisen | Dialog »Trotzdem zuweisen?« | ja (Aktion) | Bauen (M01) | Klartext-Grund |
|
||||||
|
| Offline (Monteur) | Hinweis + Sync-Status | nein | Nur dokumentieren | Status-Tipps werden nachgereicht |
|
||||||
|
| Kalender-Sync aktiv | kleiner Marker am Einsatz | nein | Nur dokumentieren | — |
|
||||||
|
| Leere Tafel | Leer-Zustand + CTA | nein | Nur dokumentieren | — |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Validierte Screen-Liste
|
||||||
|
|
||||||
|
| ID | Screen/Zustand | Typ | Umsetzung | Ort | Status |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| S01 | Plantafel (Desktop-Raster) ⭐ | BESPOKE | Bauen | `/projects/plantafel` | Validiert |
|
||||||
|
| S02 | Meine Termine 📱 (Heute ↔ Woche) | BESPOKE-Mobile, offline | Bauen | Handy / Bottom-Nav »Heute« | Validiert |
|
||||||
|
| M01 | Konflikt-Dialog (»Trotzdem zuweisen?«) | Modal | Bauen | aus S01 | Validiert |
|
||||||
|
| M02 | Einsatz anlegen/bearbeiten | Modal/Panel | Bauen | aus S01 (Slot-Klick) | Validiert |
|
||||||
|
| D01–D03 | Offline/Sync-Marker/Leer (s. Tabelle) | Inline | Nur dokumentieren | — | Validiert |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Grid
|
||||||
|
|
||||||
|
```text
|
||||||
|
Sidebar -> S01 (Raster: Y=Mitarbeiter, X=Zeit, Tag/Woche/Monat)
|
||||||
|
S01 -> M02 (Slot-Klick: Einsatz anlegen/bearbeiten)
|
||||||
|
M02/Drag&Drop -> M01 (bei Konflikt)
|
||||||
|
Monteur-Handy -> S02 (Heute <-> Woche, offline) -> Projekt-Mobil-Modus (WF-P9 Projekt-Akte S02)
|
||||||
|
Konflikte gespeist aus: HR (Urlaub/krank) + Kalender-Abgleich
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Screen-Pakete
|
||||||
|
|
||||||
|
- [[S01 Plantafel]] · [[S02 Meine Termine]] · [[M01 Konflikt-Dialog]] · [[M02 Einsatz-Dialog]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Offene Fragen
|
||||||
|
|
||||||
|
- Bulk-Reassign-UX (mehrere Einsätze auf anderen Monteur): Auswahl-Modus im Raster — Feinschliff beim Subframe-Bau
|
||||||
|
- Zeitraster-Granularität (Stunden vs. Halbtage) → Dev/Subframe-Bau
|
||||||
|
|
||||||
|
## Handoff-Check
|
||||||
|
|
||||||
|
- [x] Jeder Screen ist mit Umsetzung markiert.
|
||||||
|
- [x] Meldungs-/Error-State-Matrix ist ausgefüllt.
|
||||||
|
- [ ] Subframe-Link ist eingetragen. *(Subframe erst nach explizitem OK)*
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P9
|
||||||
|
package: WF-P9 Projekt-Akte
|
||||||
|
id: M01
|
||||||
|
screen: Rechnung anlegen
|
||||||
|
typ: Modal
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "aus dem Rechnungen-Reiter (S01)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# M01 — Rechnung anlegen
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Rechnung am Projekt festhalten — einfaches Sub-Entity, kein Rechnungs-Generator.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Nummer automatisch (fortlaufend) · Betrag · Status (Entwurf/gestellt/bezahlt/storniert) · Datum + fällig am · PDF anhängen (Dropzone-Baustein)
|
||||||
|
- Status später direkt in der Liste umschaltbar (z. B. »als bezahlt markieren«)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A5 Dialog (echtes Modal).
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Betrag fehlt | Inline-Validierung | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P9
|
||||||
|
package: WF-P9 Projekt-Akte
|
||||||
|
id: S01
|
||||||
|
screen: Auftrags-Reiter
|
||||||
|
typ: Detail-Erweiterung
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/projects/:id (Auftrags-Board)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S01 — Auftrags-Reiter am Projekt
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Die Projekt-Akte für die Bau-Phase: alles zum Auftrag an einem Ort. Erweitert die P8-Detailseite (gleiche Seite, gleiche Daten).
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- **Team-Reiter:** Mitglieder mit Rollen (Monteur/Projektleiter/zuständig/Beobachter), ganze Gruppe auf einmal zuweisen
|
||||||
|
- **Termine-Reiter:** Projekt-Termine (speisen die Plantafel)
|
||||||
|
- **Rechnungen-Reiter (v1 neu):** Liste (Nummer automatisch, Betrag, Status entwurf/gestellt/bezahlt/storniert, fällig am, PDF) + [[M01 Rechnung anlegen]]
|
||||||
|
- **Checklisten-Reiter:** Checklisten inkl. Mängel (mit Einstufung + Foto, kommen aus der Abnahme)
|
||||||
|
- **Abnahmen-Reiter:** Einstieg in die Abnahme-Liste/den Workflow (WF-P9 Abnahme)
|
||||||
|
- Adress-Slots: Baustelle / Rechnung / Bauherr
|
||||||
|
- Roter **Offene-Mängel-Banner**; Spaltenwechsel ohne Pflicht-Abnahme blockiert (Klartext + Abnahme-Knopf)
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A3 — Reiter-Erweiterung der [[../../P8 Pipelines/WF-P8 Pipelines/Screens/S02 Projekt-Detailseite|P8-Projekt-Detailseite]] (P6-Muster).
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Offene Mängel | roter Banner | Nur dokumentieren |
|
||||||
|
| Stage-Block ohne Abnahme | Klartext + Knopf | Nur dokumentieren |
|
||||||
|
| Laden / Fehler / 404 | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P9
|
||||||
|
package: WF-P9 Projekt-Akte
|
||||||
|
id: S02
|
||||||
|
screen: Mobil-Modus
|
||||||
|
typ: Variante 📱
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/projects/:id (Handy)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S02 — Mobil-Modus 📱
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Der Monteur auf der Baustelle: nur das Nötigste, mit einem Daumen bedienbar.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Stammdaten kompakt (Titel, Adresse mit **Navi-Link**, Ansprechpartner mit Anruf-Knopf)
|
||||||
|
- **Meine heutigen Aufgaben** an diesem Projekt (abhakbar)
|
||||||
|
- **Abnahme-Knopf** (startet WF-P9 Abnahme)
|
||||||
|
- **One-Tap-Foto-Upload** (Kamera → hängt direkt am Projekt)
|
||||||
|
- Offline-tauglich: Hinweis + Sync-Status
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
📱 Mobile-Variante der Projekt-Detailseite (reduziert, große Touch-Ziele).
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Offline | Hinweis + »wird synchronisiert, sobald Verbindung da ist« | Nur dokumentieren |
|
||||||
|
| Foto-Upload wartet | Warteschlangen-Hinweis | Nur dokumentieren |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P9
|
||||||
|
package: WF-P9 Projekt-Akte
|
||||||
|
id: S03
|
||||||
|
screen: Abnahme-Formular-Vorlagen
|
||||||
|
typ: Settings
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/admin/projects/acceptance-forms (Einstellungen -> Arbeitsweise)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S03 — Abnahme-Formular-Vorlagen
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Welche Felder das Abnahme-Protokoll hat, je Vorlage — SHK-Standard ist vorbefüllt.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Vorlagen-Liste (Name, in Nutzung bei X Boards, Status)
|
||||||
|
- Zuweisung: welche Vorlage gilt für welches Board/welche Spalte (Verbindung zur Abnahme-Pflicht-Option)
|
||||||
|
- Bearbeiten öffnet den **Formular-Baukasten** (kommt mit D-FORM/P16) — bis dahin: Verwaltung + Zuweisung
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A6 unter Einstellungen → Arbeitsweise.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
kind: screen
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P9
|
||||||
|
package: WF-P9 Projekt-Akte
|
||||||
|
id: S04
|
||||||
|
screen: Projekt-Vorlagen
|
||||||
|
typ: Settings-Liste
|
||||||
|
umsetzung: Bauen
|
||||||
|
status: Validiert
|
||||||
|
route: "/admin/projects/templates (Einstellungen -> Arbeitsweise)"
|
||||||
|
subframe: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
# S04 — Projekt-Vorlagen
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Wiederkehrende Auftrags-Typen (z. B. »Heizungstausch«) einmal definieren, immer wieder nutzen.
|
||||||
|
|
||||||
|
## Was das Tool können muss
|
||||||
|
|
||||||
|
- Vorlagen-Liste + Editor: Standard-Board + Start-Spalte · Standard-Team (Rollen) · Standard-Aufgaben · Standard-Termine/Einsätze · vorbelegte eigene Felder
|
||||||
|
- Beim Projekt-Anlegen wählbar
|
||||||
|
|
||||||
|
## Pattern / Archetyp
|
||||||
|
|
||||||
|
A2 unter Einstellungen → Arbeitsweise.
|
||||||
|
|
||||||
|
## Zustände
|
||||||
|
|
||||||
|
| Zustand | Beschreibung | Umsetzung |
|
||||||
|
|---|---|---|
|
||||||
|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
|
||||||
|
|
||||||
|
## Subframe
|
||||||
|
|
||||||
|
- (erst nach explizitem OK)
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"nodes":[
|
||||||
|
{"id":"md-paket","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md","x":-80,"y":-440,"width":460,"height":280},
|
||||||
|
{"id":"group-akte","type":"group","x":-80,"y":-100,"width":1820,"height":380,"label":"Projekt-Akte (erweitert P8-Detailseite)"},
|
||||||
|
{"id":"group-settings","type":"group","x":-80,"y":460,"width":1820,"height":380,"label":"Rechnung + Vorlagen (Einstellungen → Arbeitsweise)"},
|
||||||
|
{"id":"note-entry","type":"text","text":"# Einstieg\n\nAuftrags-Board → Projekt öffnen. Gleiche Detailseite wie im Vertrieb (P8) — die Auftrags-Reiter kommen dazu.","x":0,"y":0,"width":360,"height":200},
|
||||||
|
{"id":"s01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md","x":560,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"s02","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md","x":1240,"y":0,"width":420,"height":200},
|
||||||
|
{"id":"m01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md","x":0,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"s03","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md","x":580,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"s04","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md","x":1160,"y":560,"width":420,"height":200},
|
||||||
|
{"id":"note-rules","type":"text","text":"# Regeln (nur Doku)\n\n- Board-Auftragsoptionen (Abnahme-Pflicht je Spalte, Auto-Archiv) erweitern die Board-Einstellungen aus WF-P8 (S04)\n- Offene Mängel → roter Banner; Spaltenwechsel ohne Pflicht-Abnahme blockiert\n- Abnahmen-Reiter → Paket WF-P9 Abnahme · Termine speisen die Plantafel","x":1900,"y":0,"width":460,"height":760}
|
||||||
|
],
|
||||||
|
"edges":[
|
||||||
|
{"id":"e-entry","fromNode":"note-entry","fromSide":"right","toNode":"s01","toSide":"left","toEnd":"arrow","styleAttributes":{"path":"dotted"}},
|
||||||
|
{"id":"e-mobil","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","toEnd":"arrow","label":"Handy-Variante","styleAttributes":{"path":"short-dashed"}},
|
||||||
|
{"id":"e-rechnung","fromNode":"s01","fromSide":"bottom","toNode":"m01","toSide":"top","toEnd":"arrow","label":"+ Rechnung"},
|
||||||
|
{"id":"e-vorlage","fromNode":"s03","fromSide":"top","toNode":"s01","toSide":"bottom","toEnd":"arrow","label":"Vorlage gilt je Board/Spalte","styleAttributes":{"path":"long-dashed"}}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
---
|
||||||
|
kind: wireframe-package
|
||||||
|
project: HiveGrid Screen Project
|
||||||
|
ticket: D-P9
|
||||||
|
package: WF-P9 Projekt-Akte
|
||||||
|
typ: Flow
|
||||||
|
status: Validiert
|
||||||
|
subframe: ""
|
||||||
|
canvas: "WF-P9 Projekt-Akte.canvas"
|
||||||
|
---
|
||||||
|
|
||||||
|
# WF-P9 Projekt-Akte
|
||||||
|
|
||||||
|
Status: Validiert (Screen-Liste)
|
||||||
|
Subframe-Link: -
|
||||||
|
Canvas: [Canvas](<WF-P9 Projekt-Akte.canvas>)
|
||||||
|
Stand: 2026-07-09
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Kurzfassung
|
||||||
|
|
||||||
|
Die Projekt-Detailseite wächst für die Auftrags-Phase: Reiter Team / Termine / **Rechnungen (v1 neu)** / Checklisten & Mängel / Abnahmen, Adress-Slots, Mängel-Banner — plus Handy-Modus für Monteure und die Vorlagen-Verwaltung. **Gleicher Projekt-Datensatz wie im Vertrieb (Pivot, kein zweites Objekt).**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Intent Check
|
||||||
|
|
||||||
|
| Frage | Antwort |
|
||||||
|
|---|---|
|
||||||
|
| Ticket/Modul | D-P9, Dev-Pendant R-P9a/R-P9b |
|
||||||
|
| Nutzer-Ziel | Alles zum Auftrag an einem Ort: Team, Termine, Geld, Mängel, Abnahmen |
|
||||||
|
| Quellen geprüft | `ticket-docs/D-P9.md`, ENTITY-MODEL Domäne 5 (Pivot), HiveGrid Map |
|
||||||
|
| Sicher im Scope | Auftrags-Reiter, Rechnung-Sub-Entity, Mobil-Modus, Vorlagen, Board-Auftragsoptionen |
|
||||||
|
| Sicher nicht im Scope | Plantafel (WF-P9 Plantafel), Abnahme-Workflow (WF-P9 Abnahme), Material/Zeiterfassung/Leistungspositionen/KWP (v2) |
|
||||||
|
| Unsichere Annahmen | — |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Scope
|
||||||
|
|
||||||
|
| Punkt | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| Startpunkt | Projekt-Detailseite (P8-Basis), Auftrags-Board |
|
||||||
|
| Ziel | Auftrag komplett dokumentiert bis zur Abnahme + Rechnung |
|
||||||
|
| Haupt-Archetyp | A3 Sub-Areas + 📱-Variante · A2/A5 Rechnung · A6 Vorlagen |
|
||||||
|
| Out of scope | KWP-Felder (v1 nicht vorhanden), Material/Lagerist, Zeiterfassung (v2) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Entscheidungen (validiert 2026-07-09)
|
||||||
|
|
||||||
|
| Entscheidung | Status | Notiz |
|
||||||
|
|---|---|---|
|
||||||
|
| Drei P9-Pakete (Akte / Plantafel / Abnahme) | genommen | deckt sich mit der Feature-Map |
|
||||||
|
| Auftrags-Reiter erweitern die P8-Detailseite | genommen | gleicher Datensatz, gleiche Seite — Reiter kommen dazu: Team · Termine · Rechnungen · Checklisten & Mängel · Abnahmen |
|
||||||
|
| Rechnung = einfaches Sub-Entity am Projekt | genommen | Nummer (automatisch), Betrag, Status entwurf/gestellt/bezahlt/storniert, Datum, fällig am, PDF-Datei |
|
||||||
|
| Mobil-Modus als eigener Frame | genommen | Stammdaten + heutige Aufgaben + Abnahme-Knopf + One-Tap-Foto |
|
||||||
|
| Board-Auftragsoptionen erweitern die P8-Board-Einstellungen | genommen | je Spalte: »Abnahme Pflicht« (Wechsel blockiert ohne Abnahme), Abnahme-Vorlagen-Zuweisung, Auto-Archiv nach N Tagen — dokumentiert als Erweiterung von WF-P8 S04, kein neuer Screen |
|
||||||
|
| Team-Reiter mit Rollen | genommen | Monteur / Projektleiter / zuständig / Beobachter; ganze Gruppe auf einmal zuweisbar |
|
||||||
|
|
||||||
|
### Meldungs-/Error-States (validiert)
|
||||||
|
|
||||||
|
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Offene Mängel | roter Banner am Projekt | nein | Nur dokumentieren | mit Sprung zur Mängel-Checkliste |
|
||||||
|
| Spaltenwechsel ohne Pflicht-Abnahme | blockiert + Klartext | ja | Nur dokumentieren | »Erst Abnahme durchführen« + Abnahme-Knopf |
|
||||||
|
| Offline (Mobil-Modus) | Hinweis + Sync-Status | nein | Nur dokumentieren | A7-offline |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Validierte Screen-Liste
|
||||||
|
|
||||||
|
| ID | Screen/Zustand | Typ | Umsetzung | Ort | Status |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| S01 | Auftrags-Reiter am Projekt (Team/Termine/Rechnungen/Checklisten/Abnahmen + Adress-Slots) | Detail-Erweiterung | Bauen | `/projects/:id` | Validiert |
|
||||||
|
| S02 | Mobil-Modus 📱 | Variante | Bauen | gleiche Route, Handy | Validiert |
|
||||||
|
| M01 | Rechnung anlegen | Modal | Bauen | aus Rechnungen-Reiter | Validiert |
|
||||||
|
| S03 | Abnahme-Formular-Vorlagen | Settings | Bauen | `/admin/projects/acceptance-forms` | Validiert |
|
||||||
|
| S04 | Projekt-Vorlagen | Settings-Liste | Bauen | `/admin/projects/templates` | Validiert |
|
||||||
|
| D01 | Board-Auftragsoptionen (Abnahme-Pflicht/Auto-Archiv) | Doku | Nur dokumentieren | in WF-P8 S04 | Validiert |
|
||||||
|
| D02–D04 | Banner/Blockade/Offline (s. Tabelle) | Inline | Nur dokumentieren | — | Validiert |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Grid
|
||||||
|
|
||||||
|
```text
|
||||||
|
Auftrags-Board -> Projekt-Detail (P8-S02) + Auftrags-Reiter (S01)
|
||||||
|
Rechnungen-Reiter -> M01 (Rechnung anlegen)
|
||||||
|
Abnahmen-Reiter -> WF-P9 Abnahme (S01 Liste / Workflow)
|
||||||
|
Handy -> S02 (Mobil-Modus) -> Abnahme-Workflow
|
||||||
|
Einstellungen -> S03 (Abnahme-Vorlagen, nutzt Formular-Baukasten P16) / S04 (Projekt-Vorlagen)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Screen-Pakete
|
||||||
|
|
||||||
|
- [[S01 Auftrags-Reiter]] · [[S02 Mobil-Modus]] · [[M01 Rechnung anlegen]]
|
||||||
|
- [[S03 Abnahme-Formular-Vorlagen]] · [[S04 Projekt-Vorlagen]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Offene Fragen
|
||||||
|
|
||||||
|
- Abnahme-Formular-Vorlagen basieren auf dem Formular-Baukasten (P16/D-FORM) — solange der nicht geplant ist, hier nur Verwaltung/Zuweisung; Editor kommt mit D-FORM
|
||||||
|
- Rechnungs-PDF: nur Datei-Anhang (v1) — kein Rechnungs-Generator (nicht beauftragt)
|
||||||
|
|
||||||
|
## Handoff-Check
|
||||||
|
|
||||||
|
- [x] Jeder Screen ist mit Umsetzung markiert.
|
||||||
|
- [x] Meldungs-/Error-State-Matrix ist ausgefüllt.
|
||||||
|
- [ ] Subframe-Link ist eingetragen. *(Subframe erst nach explizitem OK)*
|
||||||
@@ -42,6 +42,12 @@ Diese Datei ist der erste Ort, um zu sehen:
|
|||||||
| WF-P5 Integrationen | D-P5 | Integrationen | Validiert | [MD](<P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.md>) | [Canvas](<P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Sync-Verlauf als eigene Seiten; Connection-Card = Muster fuer P14/P15/P16 |
|
| WF-P5 Integrationen | D-P5 | Integrationen | Validiert | [MD](<P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.md>) | [Canvas](<P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Sync-Verlauf als eigene Seiten; Connection-Card = Muster fuer P14/P15/P16 |
|
||||||
| WF-P6 Kontakte und Organisationen | D-CRM | Kontakte | Validiert | [MD](<P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md>) | [Canvas](<P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Karteikarte = Muster-Vorlage fuer alle Detailseiten (Zweispalter + Reiter) |
|
| WF-P6 Kontakte und Organisationen | D-CRM | Kontakte | Validiert | [MD](<P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md>) | [Canvas](<P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Karteikarte = Muster-Vorlage fuer alle Detailseiten (Zweispalter + Reiter) |
|
||||||
| WF-P7 Leads | D-P7 | Leads | Validiert | [MD](<P7 Leads/WF-P7 Leads/WF-P7 Leads.md>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Lead->Projekt als grosses Modal (+Bulk); CSV-Import = Davids Delta/CR |
|
| WF-P7 Leads | D-P7 | Leads | Validiert | [MD](<P7 Leads/WF-P7 Leads/WF-P7 Leads.md>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Lead->Projekt als grosses Modal (+Bulk); CSV-Import = Davids Delta/CR |
|
||||||
|
| WF-P8 Pipelines | D-P8 + D-KANBAN | Pipelines | Validiert | [MD](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.md>) | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Edit-Mode nur Detailansicht; Gewonnen regel-basiert (Spalten-Regel = Davids Delta) |
|
||||||
|
| WF-P9 Projekt-Akte | D-P9 | Auftrag | Validiert | [MD](<P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md>) | [Canvas](<P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Rechnung v1 neu; Board-Auftragsoptionen erweitern WF-P8 S04 |
|
||||||
|
| WF-P9 Plantafel | D-PLAN | Auftrag | Validiert | [MD](<P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.md>) | [Canvas](<P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Monteur-Modus = 1 Frame Heute<->Woche; Konflikt-Dialog wird gebaut |
|
||||||
|
| WF-P9 Abnahme | D-ABN | Auftrag | Validiert | [MD](<P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.md>) | [Canvas](<P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; mehrstufiger Mobile-Workflow; immutable nach Abschluss |
|
||||||
|
| WF-P12 Flow-Editor | D-FLOW | Automationen | Validiert | [MD](<P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md>) | [Canvas](<P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Katalog links/Canvas Mitte/Konfig rechts; Start-Auswahl mit Vorlagen; Langlaeufer |
|
||||||
|
| WF-P12 Verwaltung | D-P12 | Automationen | Validiert | [MD](<P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.md>) | [Canvas](<P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Klartext-Timeline + 24h-Undo; Konfig-Panels hier, Editor bettet ein |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -151,6 +157,37 @@ Diese Datei ist der erste Ort, um zu sehen:
|
|||||||
| M03 | CSV-Import-Wizard | WF-P7 Leads | Modal/Wizard | Bauen | Validiert (Delta) | aus S01 | [MD](<P7 Leads/WF-P7 Leads/Screens/M03 CSV-Import.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
|
| M03 | CSV-Import-Wizard | WF-P7 Leads | Modal/Wizard | Bauen | Validiert (Delta) | aus S01 | [MD](<P7 Leads/WF-P7 Leads/Screens/M03 CSV-Import.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
|
||||||
| S04 | Quellen-Verwaltung | WF-P7 Leads | Settings-Liste | Bauen | Validiert | `/admin/lead-sources` | [MD](<P7 Leads/WF-P7 Leads/Screens/S04 Quellen-Verwaltung.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
|
| S04 | Quellen-Verwaltung | WF-P7 Leads | Settings-Liste | Bauen | Validiert | `/admin/lead-sources` | [MD](<P7 Leads/WF-P7 Leads/Screens/S04 Quellen-Verwaltung.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
|
||||||
| S05 | Spam-Schutz | WF-P7 Leads | Settings | Bauen | Validiert | `/admin/lead-anti-spam` | [MD](<P7 Leads/WF-P7 Leads/Screens/S05 Spam-Schutz.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
|
| S05 | Spam-Schutz | WF-P7 Leads | Settings | Bauen | Validiert | `/admin/lead-anti-spam` | [MD](<P7 Leads/WF-P7 Leads/Screens/S05 Spam-Schutz.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
|
||||||
|
| S01 | Kanban-Board (Bespoke) | WF-P8 Pipelines | Board | Bauen | Validiert | `/projects` | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S01 Kanban-Board.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| S02 | Projekt-Detailseite (P6-Muster) | WF-P8 Pipelines | Detail | Bauen | Validiert | `/projects/:id` | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S02 Projekt-Detailseite.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| S03 | Projekt-Liste (alle Boards) | WF-P8 Pipelines | Liste | Bauen | Validiert | `/projects/list` | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S03 Projekt-Liste.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| S04 | Board-Einstellungen | WF-P8 Pipelines | Verwaltung | Bauen | Validiert | aus Board + Einstellungen | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S04 Board-Einstellungen.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| S05 | Detail-Schablone (Edit-Mode) | WF-P8 Pipelines | Modus | Bauen | Validiert | aus S01/S04 | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S05 Detail-Schablone Edit-Mode.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| S06 | Verlust-Gruende | WF-P8 Pipelines | Settings-Liste | Bauen | Validiert | `/admin/pipelines/lost-reasons` | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S06 Verlust-Gruende.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| S07 | Boards-Uebersicht (Einstellungen) | WF-P8 Pipelines | Settings-Liste | Bauen | Validiert | `/admin/pipelines` | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S07 Boards-Uebersicht.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| M01 | Verloren-Dialog (Grund Pflicht) | WF-P8 Pipelines | Modal | Bauen | Validiert | aus S01/S02 | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/M01 Verloren-Dialog.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| M02 | Board-Wechsel-Dialog | WF-P8 Pipelines | Modal | Bauen | Validiert | Spalte ohne Auto-Regel | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/M02 Board-Wechsel-Dialog.md>) | - | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
|
||||||
|
| S01 | Auftrags-Reiter am Projekt | WF-P9 Projekt-Akte | Detail-Erweiterung | Bauen | Validiert | `/projects/:id` | [MD](<P9 Auftrag/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas>) |
|
||||||
|
| S02 | Mobil-Modus | WF-P9 Projekt-Akte | Variante 📱 | Bauen | Validiert | `/projects/:id` (Handy) | [MD](<P9 Auftrag/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas>) |
|
||||||
|
| M01 | Rechnung anlegen | WF-P9 Projekt-Akte | Modal | Bauen | Validiert | Rechnungen-Reiter | [MD](<P9 Auftrag/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas>) |
|
||||||
|
| S03 | Abnahme-Formular-Vorlagen | WF-P9 Projekt-Akte | Settings | Bauen | Validiert | `/admin/projects/acceptance-forms` | [MD](<P9 Auftrag/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas>) |
|
||||||
|
| S04 | Projekt-Vorlagen | WF-P9 Projekt-Akte | Settings-Liste | Bauen | Validiert | `/admin/projects/templates` | [MD](<P9 Auftrag/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas>) |
|
||||||
|
| S01 | Plantafel (Desktop-Raster) | WF-P9 Plantafel | BESPOKE Grid | Bauen | Validiert | `/projects/plantafel` | [MD](<P9 Auftrag/WF-P9 Plantafel/Screens/S01 Plantafel.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas>) |
|
||||||
|
| S02 | Meine Termine (Heute<->Woche) | WF-P9 Plantafel | BESPOKE-Mobile offline | Bauen | Validiert | Bottom-Nav »Heute« | [MD](<P9 Auftrag/WF-P9 Plantafel/Screens/S02 Meine Termine.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas>) |
|
||||||
|
| M01 | Konflikt-Dialog (Trotzdem zuweisen?) | WF-P9 Plantafel | Modal | Bauen | Validiert | aus S01 | [MD](<P9 Auftrag/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas>) |
|
||||||
|
| M02 | Einsatz-Dialog | WF-P9 Plantafel | Modal/Panel | Bauen | Validiert | Slot-Klick in S01 | [MD](<P9 Auftrag/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas>) |
|
||||||
|
| S01 | Abnahme-Liste | WF-P9 Abnahme | Liste | Bauen | Validiert | `/projects/:id/acceptance` | [MD](<P9 Auftrag/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas>) |
|
||||||
|
| S02 | Abnahme Schritt 1: Pruefungen | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | `/projects/:id/acceptance/new` | [MD](<P9 Auftrag/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas>) |
|
||||||
|
| S03 | Abnahme Schritt 2: Maengel | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | Workflow | [MD](<P9 Auftrag/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas>) |
|
||||||
|
| S04 | Abnahme Schritt 3: Unterschriften | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | Workflow | [MD](<P9 Auftrag/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md>) | - | [Canvas](<P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas>) |
|
||||||
|
| S01 | Flow-Editor (Katalog/Canvas/Konfig) | WF-P12 Flow-Editor | BESPOKE | Bauen | Validiert | `/automations/:id/edit` | [MD](<P12 Automationen/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md>) | - | [Canvas](<P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas>) |
|
||||||
|
| M01 | Probelauf (Dry-Run) | WF-P12 Flow-Editor | Modal | Bauen | Validiert | aus S01 | [MD](<P12 Automationen/WF-P12 Flow-Editor/Screens/M01 Probelauf.md>) | - | [Canvas](<P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas>) |
|
||||||
|
| M02 | Schleifen-Warnung | WF-P12 Flow-Editor | Modal | Bauen | Validiert | aus S01 | [MD](<P12 Automationen/WF-P12 Flow-Editor/Screens/M02 Schleifen-Warnung.md>) | - | [Canvas](<P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas>) |
|
||||||
|
| M03 | Start-Auswahl (leer/Vorlage) | WF-P12 Flow-Editor | Modal | Bauen | Validiert | + Neue Automation | [MD](<P12 Automationen/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md>) | - | [Canvas](<P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas>) |
|
||||||
|
| S01 | Automation-Liste | WF-P12 Verwaltung | Liste | Bauen | Validiert | `/automations` | [MD](<P12 Automationen/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md>) | - | [Canvas](<P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas>) |
|
||||||
|
| S02 | Lauf-Liste | WF-P12 Verwaltung | Liste | Bauen | Validiert | `.../executions` | [MD](<P12 Automationen/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md>) | - | [Canvas](<P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas>) |
|
||||||
|
| S03 | Lauf-Detail (Timeline, 24h-Undo) | WF-P12 Verwaltung | Detail | Bauen | Validiert | `.../executions/:id` | [MD](<P12 Automationen/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md>) | - | [Canvas](<P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas>) |
|
||||||
|
| S04 | Vorlagen-Katalog | WF-P12 Verwaltung | Karten-Liste | Bauen | Validiert | `/automations/templates` | [MD](<P12 Automationen/WF-P12 Verwaltung/Screens/S04 Vorlagen-Katalog.md>) | - | [Canvas](<P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas>) |
|
||||||
|
| S05 | Baustein-Konfig-Panels (Muster) | WF-P12 Verwaltung | Compose-Panel | Bauen | Validiert | im Flow-Editor | [MD](<P12 Automationen/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md>) | - | [Canvas](<P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas>) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -228,6 +265,15 @@ Diese Datei ist der erste Ort, um zu sehen:
|
|||||||
| WF-P7 Leads | Lead->Projekt-Form | Genommen | Grosses Modal mit 3 Sektionen (Vererbungs-Vorschau, Board+Spalte, Kontakt verknuepfen); auch als Bulk-Variante (Massen-Konvertierung). | Bulk-Machbarkeit mit Dev bestaetigen |
|
| WF-P7 Leads | Lead->Projekt-Form | Genommen | Grosses Modal mit 3 Sektionen (Vererbungs-Vorschau, Board+Spalte, Kontakt verknuepfen); auch als Bulk-Variante (Massen-Konvertierung). | Bulk-Machbarkeit mit Dev bestaetigen |
|
||||||
| WF-P7 Leads | CSV-Import-Wizard | Genommen (Delta) | Datei -> Spalten zuordnen -> Vorschau/Duplikat-Regel -> Import im Hintergrund. Steht nicht im Dev-Ticket. | Change-Request an Dev |
|
| WF-P7 Leads | CSV-Import-Wizard | Genommen (Delta) | Datei -> Spalten zuordnen -> Vorschau/Duplikat-Regel -> Import im Hintergrund. Steht nicht im Dev-Ticket. | Change-Request an Dev |
|
||||||
| WF-P7 Leads | Anfrage anlegen | Genommen | Modal (wie Kontakt anlegen); Inline-Anlegen (Plus -> Zeile) als gemeinsames Spaeter-Muster mit P6 dokumentiert. | Validiert 2026-07-08 |
|
| WF-P7 Leads | Anfrage anlegen | Genommen | Modal (wie Kontakt anlegen); Inline-Anlegen (Plus -> Zeile) als gemeinsames Spaeter-Muster mit P6 dokumentiert. | Validiert 2026-07-08 |
|
||||||
|
| WF-P8 Pipelines | Edit-Mode | Genommen | NUR die Detailansicht als WYSIWYG-Schablone (Felder verschieben/hinzufuegen/sichtbar/Pflicht/Berechtigung); Karten-Layout bewusst NICHT editierbar (v1). | Validiert 2026-07-08 |
|
||||||
|
| WF-P8 Pipelines | Zwei Einstiege zur Board-Verwaltung | Genommen | Im Board (Board verwalten + Edit-Mode) UND Einstellungen -> Arbeitsweise -> Boards (Liste, neues Board). Gleiche Seiten, kein Duplikat. | Validiert 2026-07-08 |
|
||||||
|
| WF-P8 Pipelines | Gewonnen regel-basiert | Genommen (Delta) | Spalten-Regel "Auto-Verschieben nach Board X, Spalte Y" -> kein Dialog; ohne Regel -> Auswahl-Dialog. | Dev-Frage: direkt am Board-Modell oder via Automation-Engine |
|
||||||
|
| WF-P9 Plantafel | Monteur-Modus | Genommen | EIN Frame mit Umschalter Heute <-> Woche; offline mit Sync-Status. | Validiert 2026-07-09 |
|
||||||
|
| WF-P9 Abnahme | Workflow-Form | Genommen | Mehrstufig (Pruefungen -> Maengel -> Unterschriften) statt langem Scroll-Screen. | Validiert 2026-07-09 |
|
||||||
|
| WF-P9 Projekt-Akte | Board-Auftragsoptionen | Genommen | Abnahme-Pflicht je Spalte, Vorlagen-Zuweisung, Auto-Archiv -> erweitern WF-P8 S04 (kein neuer Screen). | Validiert 2026-07-09 |
|
||||||
|
| WF-P12 Flow-Editor | Editor-Anordnung | Genommen | Katalog links, Canvas Mitte, Konfig-Panel rechts (n8n-Muster); Katalog einklappbar. | Validiert 2026-07-09 |
|
||||||
|
| WF-P12 Flow-Editor | Anlegen-Flow | Genommen | Start-Auswahl-Modal: leer ODER Vorlage (Katalog eingebettet). | Validiert 2026-07-09 |
|
||||||
|
| WF-D-FORM | Formulare zurueckgestellt | Offen | Davids Mitarbeiter:in arbeitet daran; Infos folgen von David. | 2026-07-09 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+100
-655
@@ -1,605 +1,86 @@
|
|||||||
{
|
{
|
||||||
"nodes":[
|
"nodes":[
|
||||||
{
|
{"id":"904c5ece127e2e4c","type":"group","x":5497,"y":3020,"width":1540,"height":1400,"label":"VERWALTUNG (WORKSPACE-EINSTELLUNGEN)"},
|
||||||
"id": "904c5ece127e2e4c",
|
{"id":"88792c50986c93db","type":"group","x":1950,"y":960,"width":2587,"height":740,"color":"2","label":"VERTRIEB — vom Anruf zum Auftrag"},
|
||||||
"type": "group",
|
{"id":"77c19412215a977c","type":"group","x":5037,"y":960,"width":2260,"height":740,"color":"2","label":"AUFTRAG & BAUSTELLE"},
|
||||||
"x": 5497,
|
{"id":"41b8d85d3bb8d47d","type":"group","x":-160,"y":0,"width":1850,"height":740,"color":"6","label":"BASIS — gilt für alle Features"},
|
||||||
"y": 3020,
|
{"id":"ca7223940f6e1d29","type":"group","x":2520,"y":2080,"width":2317,"height":520,"label":"TERMINE & FORMULARE"},
|
||||||
"width": 1540,
|
{"id":"e97e13901e405fcd","type":"group","x":5037,"y":2080,"width":1540,"height":740,"label":"KOMMUNIKATION"},
|
||||||
"height": 1400,
|
{"id":"8acc5d7d61317076","type":"group","x":2110,"y":3020,"width":1450,"height":740,"label":"AUTOMATIONEN"},
|
||||||
"label": "VERWALTUNG (WORKSPACE-EINSTELLUNGEN)"
|
{"id":"070f258760fab4e9","type":"group","x":760,"y":3020,"width":1190,"height":740,"label":"AUFGABEN & DATEIEN — stecken in jedem Feature"},
|
||||||
},
|
{"id":"db7d9db3cd7939b0","type":"group","x":3997,"y":0,"width":1040,"height":740,"label":"SUCHE & DASHBOARD"},
|
||||||
{
|
{"id":"c3172228336521df","type":"group","x":7197,"y":3020,"width":540,"height":1400,"label":"PLATTFORM-ADMIN — unsere interne Verwaltung"},
|
||||||
"id": "88792c50986c93db",
|
{"id":"00d6b92d3845c185","type":"group","x":1160,"y":2080,"width":1190,"height":520,"label":"E-MAIL-MARKETING"},
|
||||||
"type": "group",
|
{"id":"7a26f88c260892eb","type":"group","x":1950,"y":0,"width":557,"height":740,"color":"3","label":"WEBSITE 🌐"},
|
||||||
"x": 1950,
|
{"id":"2025c7621bb63c98","type":"group","x":2737,"y":0,"width":540,"height":740,"color":"4","label":"LOGIN & ZUGÄNGE"},
|
||||||
"y": 960,
|
{"id":"3c6e5b1ea4a27913","type":"group","x":7977,"y":3020,"width":540,"height":740,"label":"HR (MITARBEITER)"},
|
||||||
"width": 2587,
|
{"id":"d9868dadb782f253","type":"text","text":"## Kontakte & Organisationen\n**Ticket:** `D-CRM` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/contacts`\n\n**Was drin ist:** Kontakt-Liste, Organisations-Liste, Kontakt-Detailseite (die Vorlage für ALLE Detailseiten), eigene Felder, Tags, Duplikate zusammenführen\n\n**So funktioniert's:** Ein Kontakt ist Privatperson oder Organisation und hat einen Status (Kontakt → Kunde → Bestandskunde). Auf der Detailseite sieht man alles: Projekte, Mails, Anrufe, Aufgaben, Dateien, Notizen.","x":3077,"y":1040,"width":460,"height":360,"color":"5"},
|
||||||
"height": 740,
|
{"id":"a-kontakte-pkg","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas","x":3077,"y":1440,"width":460,"height":220},
|
||||||
"color": "2",
|
{"id":"e10a35560a461111","type":"text","text":"## Kanban-Board & Pipelines (Projekte)\n**Ticket:** `D-P8` + `D-KANBAN` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/projects` + Admin\n\n**Was drin ist:** Kanban-Board mit Spalten je Status (Karten ziehen = Status wechseln), Projekt-Liste, Projekt-Detailseite, Pipeline-Einstellungen (Spalten, Rechte, Pflichtfelder), Verlust-Gründe\n\n**So funktioniert's:** Ein Projekt wandert durch Boards — »Vertrieb« und »Auftrag« sind nur zwei Boards für denselben Datensatz. Gewonnen = wechselt aufs Auftrags-Board. Wer welche Felder sieht (z. B. Umsatz), ist einstellbar.","x":4037,"y":1040,"width":460,"height":360,"color":"2"},
|
||||||
"label": "VERTRIEB — vom Anruf zum Auftrag"
|
{"id":"a-pipelines-pkg","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas","x":4037,"y":1440,"width":460,"height":220},
|
||||||
},
|
{"id":"8272764aa65537b0","type":"text","text":"## Lead-Eingang (Anfragen)\n**Ticket:** `D-P7` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/leads`\n\n**Was drin ist:** Eingangs-Liste aller Anfragen (mit Quelle, Spam-Verdacht, Duplikat-Hinweis), Anfrage-Detail, »Zu Projekt machen«, Statistiken, Quellen-Verwaltung, Spam-Schutz-Einstellungen\n\n**So funktioniert's:** Alle Anfragen (Website, Formulare, Anrufe, Buchungen) landen hier. Wer sie bearbeiten darf (Freigabe = ja), macht daraus ein Projekt und hängt den Kontakt dran.","x":2007,"y":1040,"width":460,"height":360,"color":"5"},
|
||||||
{
|
{"id":"a-leads-pkg","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas","x":2007,"y":1440,"width":460,"height":220},
|
||||||
"id": "77c19412215a977c",
|
{"id":"77ebfde5a3a05b8a","type":"text","text":"## Online-Terminbuchung 🌐\n**Ticket:** `D-BOOK` + `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** 🌐 Buchungslink + `/bookings`\n\n**Was drin ist:** 🌐 Buchungs-Seite für Kunden (freien Termin wählen → Formular → Bestätigung mit Kalender-Datei), intern: Buchungs-Liste (verschieben, stornieren, No-Show), Buchungsseiten-Editor, Verfügbarkeits-Zeiten\n\n**So funktioniert's:** Kunde bucht selbst, der erste freie Mitarbeiter bekommt den Termin, die Anfrage landet im Lead-Eingang. Muss am schönsten aussehen — ist öffentlich.","x":3067,"y":2160,"width":460,"height":360,"color":"2"},
|
||||||
"type": "group",
|
{"id":"28bd46ecb4eaa069","type":"text","text":"## Kalender\n**Ticket:** `D-BOOK` + `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** `/calendar` + Einstellungen\n\n**Was drin ist:** Monats-/Wochen-Ansicht mit allen Terminen (Google-Kalender + Buchungen + Plantafel, je mit Herkunfts-Marker), Google-Kalender verbinden, Konflikt-Übersicht\n\n**So funktioniert's:** Läuft in beide Richtungen mit Google (Outlook kommt in v2). Fremde private Termine erscheinen nur als »belegt«.","x":3837,"y":2160,"width":460,"height":360,"color":"2"},
|
||||||
"x": 5037,
|
{"id":"6b8c7d3bc3ee7449","type":"text","text":"## Formulare (Baukasten) 🌐\n**Ticket:** `D-FORM` + `D-P16` (Teil) · **Status:** ⬜ zurückgestellt (Davids Mitarbeiter:in arbeitet daran, Infos folgen)\n**Wo:** `/forms` + öffentlicher Link\n\n**Was drin ist:** Formular-Baukasten (Felder per Ziehen anordnen, Wenn-Dann-Logik »zeige Feld X wenn …«, Live-Vorschau), 🌐 öffentliches Formular zum Teilen (Link, QR-Code, Einbetten), Antworten-Übersicht\n\n**So funktioniert's:** Was nach dem Absenden passiert, ist einstellbar: Anfrage/Aufgabe anlegen, Mail senden, Automation starten. Dieselben Formulare stecken auch in HR-Anträgen und der Terminbuchung.","x":2560,"y":2160,"width":460,"height":360,"color":"1"},
|
||||||
"y": 960,
|
{"id":"4cce52e2e3bd8823","type":"text","text":"## Versand-Technik & Statistiken 🌐\n**Ticket:** `D-P14` · **Status:** ⬜ offen\n**Wo:** `/email-marketing` + Einstellungen\n\n**Was drin ist:** Eigene Absender-Domain einrichten (mit Copy-Paste-Anleitung), Kampagnen-Übersicht + Statistiken (zugestellt/geöffnet/geklickt), gesperrte Empfänger, Vorlagen, 🌐 Abmelde-Seite\n\n**So funktioniert's:** Mails an Kunden tauchen automatisch am Kontakt auf (BCC-Trick, kein Postfach-Anschluss nötig — der kommt in v2).","x":1850,"y":2160,"width":460,"height":360,"color":"2"},
|
||||||
"width": 2260,
|
{"id":"b789fc765f833f45","type":"text","text":"## Digital unterschreiben (E-Signatur)\n**Ticket:** `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Angebot als PDF hochladen → Unterzeichner festlegen → Kunde unterschreibt per Link (mit SMS/Mail-Code) oder direkt auf dem Gerät → Status je Unterzeichner, Erinnerung, Widerruf\n\n**So funktioniert's:** Hängt direkt am Projekt (»Angebot zur Signatur senden«). Eigene Lösung, kein Pflicht-Drittanbieter.","x":4337,"y":2160,"width":460,"height":360,"color":"5"},
|
||||||
"height": 740,
|
{"id":"903e3384b0a5e623","type":"text","text":"**Detail-Flows:** 9 Wireframe-Pakete mit eigenen Canvases in `02 Wireframes/P2 Auth/` (Login, Signup, Reset, Set Password, 2FA, RBAC …) — siehe Tracker","x":2777,"y":480,"width":460,"height":220},
|
||||||
"color": "2",
|
{"id":"ab16fe58ff28c0ac","type":"text","text":"## Kampagnen & Empfängerlisten\n**Ticket:** `D-KAMP` · **Status:** ⬜ offen\n**Wo:** `/email-marketing`\n\n**Was drin ist:** Kampagne erstellen in 6 Schritten (Absender → Inhalt → Empfänger → Test-Mail → Zeitpunkt → Check) · Empfängerlisten (Segmente) mit Filtern bauen\n\n**So funktioniert's:** Vor dem Versand prüft eine Checkliste alles Rechtliche (Domain bestätigt? Abmelde-Link? Impressum?) — bei Rot wird nicht gesendet.","x":1200,"y":2160,"width":460,"height":360,"color":"2"},
|
||||||
"label": "AUFTRAG & BAUSTELLE"
|
{"id":"401d8270854bebac","type":"text","text":"## Team-Chat 📱\n**Ticket:** `D-CHAT` · **Status:** ⬜ offen\n**Wo:** `/chat`\n\n**Was drin ist:** Channel-Liste, Chat-Verlauf (Antwort-Threads, Emoji-Reaktionen, gelesen-von, Anhänge), Erwähnungen mit @, angepinnte Nachrichten, Suche, Direktnachrichten\n\n**So funktioniert's:** Jedes Projekt kann seinen eigenen Channel haben (Team wird automatisch synchron gehalten). Monteure: vereinfachte Handy-Ansicht mit Foto-Direktupload. Admin kann DMs nur mit Begründung einsehen.","x":5077,"y":2160,"width":460,"height":360,"color":"2"},
|
||||||
},
|
{"id":"4bb807ef5e3c8dee","type":"text","text":"## Projekt-Akte (Auftrag) 📱\n**Ticket:** `D-P9` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Reiter am Projekt: Team-Mitglieder, Termine, **Rechnungen (neu in v1)**, Checklisten & Mängel, Aufgaben, Dateien, Abnahmen · dazu Projekt-Vorlagen und Abnahme-Formular-Vorlagen\n\n**So funktioniert's:** Alles zum Auftrag an einem Ort. Am Handy reduziert: Stammdaten, heutige Aufgaben, Abnahme-Knopf, Foto direkt hochladen.","x":5077,"y":1040,"width":460,"height":360,"color":"2"},
|
||||||
{
|
{"id":"3e27875daca5713d","type":"text","text":"## Login, Registrierung & Workspace\n**Ticket:** `D-P2` · **Status:** ✅ validiert / in Subframe\n**Wo:** Login-Seiten + Einstellungen\n\n**Was drin ist:** Registrierung, Login + 2FA, Passwort vergessen/ändern, Workspace-Auswahl + neuer Workspace, Profil & Sicherheit, Mitarbeiter & Rollen (Admin)\n\n**Stand:** 9 Wireframe-Pakete fertig gebaut. Konto/Workspace löschen bewusst geparkt. → `02 Wireframes/P2 Auth/`","x":2777,"y":80,"width":460,"height":360,"color":"4"},
|
||||||
"id": "41b8d85d3bb8d47d",
|
{"id":"89c0813f7e139a88","type":"text","text":"## Dashboard (Startseite)\n**Ticket:** `D-DASH` (Teil) · **Status:** ⬜ offen\n**Wo:** `/dashboard`\n\n**Was drin ist:** 3 feste Ansichten je Rolle: Chef (Umsatz, Projekte, Auslastung) · Büro (Projekte, Aufgaben, Anrufe) · Monteur 📱 (meine Termine, Projekte, Aufgaben)\n\n**So funktioniert's:** Kacheln mit Zahlen, Listen und Trend-Charts, live aktualisiert. Kein freies Umbauen in v1 — nur Filter/Zeitraum einstellbar.","x":4037,"y":80,"width":460,"height":360,"color":"2"},
|
||||||
"type": "group",
|
{"id":"4a4e5be847a54e5f","type":"text","text":"## Suche (Cmd+K)\n**Ticket:** `D-DASH` (Teil) · **Status:** ⬜ offen\n**Wo:** überall + `/search`\n\n**Was drin ist:** Such-Fenster per Tastenkürzel: tippen, Treffer nach Typ gruppiert, mit Pfeiltasten navigieren · dazu große Such-Seite mit Filtern\n\n**So funktioniert's:** Findet Kontakte, Projekte, Dateien usw. — zeigt nur, was man sehen darf.","x":4537,"y":80,"width":460,"height":360,"color":"1"},
|
||||||
"x": -160,
|
{"id":"ce5632682989a6ca","type":"text","text":"## Website (Landing & Demo-Anfrage)\n**Ticket:** `D-WEB` · **Status:** ⬜ offen\n**Wo:** 🌐 hivegrid.de\n\n**Was drin ist:** Startseite, Features-Seite, Preise-Teaser, Demo-Anfrage-Formular\n\n**Warum wichtig:** Der erste Eindruck nach außen. Farben/Schriften sind dieselben wie in der App. Demo-Anfragen landen im Lead-Eingang.","x":2007,"y":80,"width":460,"height":360,"color":"2"},
|
||||||
"y": 0,
|
{"id":"c02969250252a3ab","type":"text","text":"## Feinschliff vor Launch\n**Ticket:** `D-POLISH` · **Status:** ⬜ offen\n**Wo:** 🌐 alles öffentlich Sichtbare\n\n**Was drin ist:** Letzter Polier-Durchgang: Terminbuchungs-Seite, öffentliche Formulare, Marketing-Mails · danach Screenshots als »So muss es aussehen«-Referenz einfrieren\n\n**Warum wichtig:** Kommt ganz am Ende, direkt vor dem Launch. Braucht Terminbuchung + Dashboard fertig.","x":1190,"y":80,"width":460,"height":360,"color":"3"},
|
||||||
"width": 1850,
|
{"id":"d48196ed3e229be5","type":"text","text":"**Standards:** `04 Standards/Subframe UI Standards/` — validierte Layout-Regeln","x":690,"y":480,"width":460,"height":220},
|
||||||
"height": 740,
|
{"id":"d53e7ea48a9b1e6c","type":"text","text":"## UI-Baukasten (Listen, Formulare, Modals …)\n**Ticket:** `D-D0b` · **Status:** ✅ validiert\n**Wo:** überall in der App\n\n**Was drin ist:** Fertige Bausteine: Listen mit Filter, Detail-Seiten, Formular-Felder (12 Typen), Dialoge/Wizards, Settings-Seiten, Leer-/Lade-/Fehler-Zustände + Kleinteile (Buttons, Tags, Charts, Unterschriften-Feld …)\n\n**Warum wichtig:** Einmal designen, überall wiederverwenden. Layout-Standards liegen in `04 Standards`. ✅ Bereits erledigt.","x":690,"y":80,"width":460,"height":360,"color":"4"},
|
||||||
"color": "6",
|
{"id":"e21930b7073823f8","type":"text","text":"## Aufgaben\n**Ticket:** `D-P4` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/tasks` + überall als Reiter\n\n**Was drin ist:** Aufgaben-Liste (Meine / von mir erstellt / Alle), Aufgabe mit Frist, Priorität, Zuständigem (Person oder Gruppe), Beobachtern und Verknüpfung (Kontakt/Projekt/…)\n\n**So funktioniert's:** Einmal gebaut, überall eingebettet — jede Detailseite hat einen Aufgaben-Reiter. Aufgaben können auch aus Chat, Formularen oder Automationen entstehen (Herkunft sichtbar). Erinnerung vor/nach Frist.","x":800,"y":3100,"width":460,"height":360,"color":"5"},
|
||||||
"label": "BASIS — gilt für alle Features"
|
{"id":"036e2a807223753d","type":"text","text":"## Dateien\n**Ticket:** `D-P4` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/files` + überall als Reiter\n\n**Was drin ist:** Datei-Übersicht (Tabelle oder Kacheln, Filter, Mehrfach-Aktionen inkl. ZIP), Upload per Drag&Drop (mehrere gleichzeitig, mit Fortschritt), Datei-Detail mit Vorschau\n\n**So funktioniert's:** Dateien hängen an Kontakten/Projekten/… mit Rolle (z. B. »Angebot«). iPhone-Fotos (HEIC) werden automatisch zu JPG. Versionen kommen in v2.","x":1450,"y":3100,"width":460,"height":360,"color":"5"},
|
||||||
},
|
{"id":"8f3127f03a5bab96","type":"text","text":"## Automations-Baukasten (Flow-Editor)\n**Ticket:** `D-FLOW` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/automations/:id/edit`\n\n**Was drin ist:** Zeichenfläche mit Bausteinen: Auslöser (neue Anfrage, Formular abgeschickt, Zeitplan …) und Aktionen (Aufgabe anlegen, Mail senden, Wenn-Dann, Warten …) per Ziehen verbinden\n\n**So funktioniert's:** Alles in verständlichem Deutsch beschriftet. Vor dem Aktivieren zeigt eine Probe-Vorschau »trifft X Datensätze« — erst bestätigen, dann läuft's. Warnt vor Endlos-Schleifen. **Aufwendigste UI der ganzen App.**","x":2150,"y":3100,"width":460,"height":360,"color":"1"},
|
||||||
{
|
{"id":"e6d8c36a0f89d954","type":"text","text":"## Automationen: Übersicht & Verläufe\n**Ticket:** `D-P12` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/automations`\n\n**Was drin ist:** Liste aller Automationen (aktiv/pausiert/Entwurf), Lauf-Protokolle Schritt für Schritt in Klartext, Vorlagen-Katalog (SHK-Vorlagen + eigene)\n\n**So funktioniert's:** Jeder Lauf ist nachvollziehbar; 24 h lang rückgängig machbar (Countdown-Knopf), fehlgeschlagene Schritte neu anstoßen.","x":3067,"y":3100,"width":460,"height":360,"color":"2"},
|
||||||
"id": "ca7223940f6e1d29",
|
{"id":"5c72e7b04059503a","type":"text","text":"## Integrationen (Apps verbinden)\n**Ticket:** `D-P5` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/admin/integrations`\n\n**Was drin ist:** App-Katalog (nach Kategorie, mit Status-Ampel), Verbindung einrichten per Schritt-für-Schritt-Assistent, Verbindungs-Zustand + Sync-Verlauf in Klartext\n\n**So funktioniert's:** Das gemeinsame Gerüst für alle Anbindungen — E-Mail, Telefonie, Kalender, Signatur nutzen alle dieselben Verbindungs-Karten.","x":5537,"y":3100,"width":460,"height":360,"color":"5"},
|
||||||
"type": "group",
|
{"id":"29ca06733a9b243b","type":"text","text":"## Telefonie (Anrufe)\n**Ticket:** `D-P15` · **Status:** ⬜ offen\n**Wo:** `/calls` + Einstellungen\n\n**Was drin ist:** AirCall verbinden (Telefon-Nutzer zuordnen), Anruf-Liste + Detail (Notiz, Aufnahme), Anruf-Knopf direkt an Kontakt/Anfrage/Projekt\n\n**So funktioniert's:** Anrufe werden automatisch dem richtigen Kontakt zugeordnet. Unbekannte Nummer ruft an → wird automatisch eine Anfrage im Lead-Eingang.","x":5577,"y":2160,"width":460,"height":360,"color":"5"},
|
||||||
"x": 2520,
|
{"id":"3f83fa1a16ae69df","type":"text","text":"## Plantafel (Einsatzplanung) 📱\n**Ticket:** `D-PLAN` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/projects/plantafel`\n\n**Was drin ist:** Planungs-Raster: Zeilen = Mitarbeiter, Spalten = Zeit. Einsätze per Ziehen verschieben/verlängern, Klick auf freien Slot = neuer Einsatz\n\n**So funktioniert's:** Warnt bei Konflikten (doppelt verplant, Urlaub/krank, außerhalb Arbeitszeit) — zuweisen geht trotzdem. Monteure sehen am Handy »Meine Termine heute« mit Adresse + Navi, auch offline.","x":5897,"y":1040,"width":460,"height":360,"color":"1"},
|
||||||
"y": 2080,
|
{"id":"0f6acf7087283c0c","type":"text","text":"## Aktivitäts-Protokoll (Audit-Log)\n**Ticket:** `D-P3` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/admin/audit`\n\n**Was drin ist:** Wer hat wann was geändert — als deutscher Klartext-Satz, mit Filter und Vorher/Nachher-Vergleich, Export mit Zweck-Angabe\n\n**So funktioniert's:** Der gleiche Verlauf ist auch an jedem Datensatz einblendbar (»Verlauf dieses Objekts«). Unterscheidet Mensch / Automation / Agent / Admin.","x":6037,"y":3100,"width":460,"height":360,"color":"5"},
|
||||||
"width": 2317,
|
{"id":"50945ed6e43505ce","type":"text","text":"## Benachrichtigungen\n**Ticket:** `D-P3` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** Glocke oben + Einstellungen\n\n**Was drin ist:** Glocke mit Ungelesen-Zähler + aufklappbare Liste (Klick springt zur Sache), eigene Seite mit allen Meldungen, Einstellungen: pro Ereignis-Typ wählen ob In-App und/oder E-Mail\n\n**So funktioniert's:** Wird von allen Features gespeist (neue Anfrage, Aufgabe fällig, Antrag genehmigt …). Master-Schalter »alle E-Mails aus«.","x":6077,"y":2160,"width":460,"height":360,"color":"5"},
|
||||||
"height": 520,
|
{"id":"43a26561f03f72da","type":"file","file":"02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas","x":6077,"y":2560,"width":460,"height":220},
|
||||||
"label": "TERMINE & FORMULARE"
|
{"id":"a1328943a7cef3b2","type":"file","file":"02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas","x":1450,"y":3500,"width":460,"height":220},
|
||||||
},
|
{"id":"98798c9044c1d4bc","type":"file","file":"02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas","x":800,"y":3500,"width":460,"height":220},
|
||||||
{
|
{"id":"a-integrationen-pkg","type":"file","file":"02 Wireframes/P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.canvas","x":5537,"y":3500,"width":460,"height":220},
|
||||||
"id": "e97e13901e405fcd",
|
{"id":"3864f1b74d665e1a","type":"file","file":"02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.canvas","x":6037,"y":3500,"width":460,"height":220},
|
||||||
"type": "group",
|
{"id":"6b3c0929759a607b","type":"text","text":"## Abo & Rechnungen (für HiveGrid)\n**Ticket:** `D-P20` (Teil) · **Status:** ⚠️ Ticket braucht Recut\n**Wo:** `/admin/subscription`\n\n**Was drin ist:** Abo-Übersicht (Plan, Plätze, gebuchte Module, Test-Countdown), Verbrauchs-Balken (Automations-Läufe, Speicher), Rechnungen + Zahlungsstatus\n\n**Achtung:** Das Ticket wird gerade umgeschnitten (neuer Abrechnungs-Unterbau) — erst planen, wenn der Brief neu steht. Kein Selbst-Upgrade in v1.","x":6537,"y":3100,"width":460,"height":360,"color":"5"},
|
||||||
"x": 5037,
|
{"id":"b3cad562971d30a5","type":"text","text":"## App-Gerüst (Sidebar, Topbar & Design)\n**Ticket:** `D-D0a` · **Status:** ✅ gebaut (David, in Subframe)\n**Wo:** überall in der App\n\n**Was drin ist:** Sidebar (Module ein-/ausblendbar je Abo, Handy-Variante 📱), Topbar (Workspace-Wechsler, Suche, Glocke, Profil-Menü), Breadcrumb, Warn-Banner (z. B. »Zahlung offen«), Erfolgs-/Fehlermeldungen\n\n**Stand:** Bereits gebaut und validiert. Der Rahmen, in dem jedes Feature steckt — inkl. Farben, Schriften, Hell/Dunkel.","x":-100,"y":80,"width":460,"height":360,"color":"4"},
|
||||||
"y": 2080,
|
{"id":"d5d3db1765287eef","type":"text","text":"# 🗺 HiveGrid Feature Map (v1)\nJede Karte = **ein Feature**. Das Ticket steht nur als Referenz dran. Übergreifende Sachen (App-Gerüst, UI-Baukasten, Feinschliff) liegen unter **Basis**.\n\n**Farben:**\n🟢 fertig/validiert · 🔴 Sonder-UI, wird von Hand designt (Tage) · 🔵 wird aus dem UI-Baukasten zusammengesteckt (Stunden) · 🟠 Mischung aus beidem · 🟣 Basis · 🟡 Feinschliff\n\n**Marker:** 🌐 öffentlich sichtbar (höchster Anspruch) · 📱 Monteur-Handy, teils offline\n\n**Unter jeder Karte:** Slot für die verknüpften Paket-Canvases (Detail-Flows aus `02 Wireframes`) — Karte anklicken öffnet den Flow.\n\n**Pfeile:** orange = Hauptkette (Anfrage → Auftrag → Geld) · grau = klare Querverbindung. Gilt etwas für **alle** Features (Automationen, Aufgaben/Dateien, Benachrichtigungen, Verbindungs-Gerüst), steht es als Text auf der Karte statt als Pfeil.\n\nAbhaklisten & Details: [[HiveGrid Map]]","x":-163,"y":-600,"width":1140,"height":380},
|
||||||
"width": 1540,
|
|
||||||
"height": 740,
|
|
||||||
"label": "KOMMUNIKATION"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "8acc5d7d61317076",
|
|
||||||
"type": "group",
|
|
||||||
"x": 2110,
|
|
||||||
"y": 3020,
|
|
||||||
"width": 1450,
|
|
||||||
"height": 740,
|
|
||||||
"label": "AUTOMATIONEN"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "070f258760fab4e9",
|
|
||||||
"type": "group",
|
|
||||||
"x": 760,
|
|
||||||
"y": 3020,
|
|
||||||
"width": 1190,
|
|
||||||
"height": 740,
|
|
||||||
"label": "AUFGABEN & DATEIEN — stecken in jedem Feature"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "db7d9db3cd7939b0",
|
|
||||||
"type": "group",
|
|
||||||
"x": 3997,
|
|
||||||
"y": 0,
|
|
||||||
"width": 1040,
|
|
||||||
"height": 740,
|
|
||||||
"label": "SUCHE & DASHBOARD"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "c3172228336521df",
|
|
||||||
"type": "group",
|
|
||||||
"x": 7197,
|
|
||||||
"y": 3020,
|
|
||||||
"width": 540,
|
|
||||||
"height": 1400,
|
|
||||||
"label": "PLATTFORM-ADMIN — unsere interne Verwaltung"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "00d6b92d3845c185",
|
|
||||||
"type": "group",
|
|
||||||
"x": 1160,
|
|
||||||
"y": 2080,
|
|
||||||
"width": 1190,
|
|
||||||
"height": 520,
|
|
||||||
"label": "E-MAIL-MARKETING"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "7a26f88c260892eb",
|
|
||||||
"type": "group",
|
|
||||||
"x": 1950,
|
|
||||||
"y": 0,
|
|
||||||
"width": 557,
|
|
||||||
"height": 740,
|
|
||||||
"color": "3",
|
|
||||||
"label": "WEBSITE 🌐"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "2025c7621bb63c98",
|
|
||||||
"type": "group",
|
|
||||||
"x": 2737,
|
|
||||||
"y": 0,
|
|
||||||
"width": 540,
|
|
||||||
"height": 740,
|
|
||||||
"color": "4",
|
|
||||||
"label": "LOGIN & ZUGÄNGE"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "3c6e5b1ea4a27913",
|
|
||||||
"type": "group",
|
|
||||||
"x": 7977,
|
|
||||||
"y": 3020,
|
|
||||||
"width": 540,
|
|
||||||
"height": 740,
|
|
||||||
"label": "HR (MITARBEITER)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "e21930b7073823f8",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Aufgaben\n**Ticket:** `D-P4` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/tasks` + überall als Reiter\n\n**Was drin ist:** Aufgaben-Liste (Meine / von mir erstellt / Alle), Aufgabe mit Frist, Priorität, Zuständigem (Person oder Gruppe), Beobachtern und Verknüpfung (Kontakt/Projekt/…)\n\n**So funktioniert's:** Einmal gebaut, überall eingebettet — jede Detailseite hat einen Aufgaben-Reiter. Aufgaben können auch aus Chat, Formularen oder Automationen entstehen (Herkunft sichtbar). Erinnerung vor/nach Frist.",
|
|
||||||
"x": 800,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "036e2a807223753d",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Dateien\n**Ticket:** `D-P4` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/files` + überall als Reiter\n\n**Was drin ist:** Datei-Übersicht (Tabelle oder Kacheln, Filter, Mehrfach-Aktionen inkl. ZIP), Upload per Drag&Drop (mehrere gleichzeitig, mit Fortschritt), Datei-Detail mit Vorschau\n\n**So funktioniert's:** Dateien hängen an Kontakten/Projekten/… mit Rolle (z. B. »Angebot«). iPhone-Fotos (HEIC) werden automatisch zu JPG. Versionen kommen in v2.",
|
|
||||||
"x": 1450,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "a1328943a7cef3b2",
|
|
||||||
"type": "file",
|
|
||||||
"file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas",
|
|
||||||
"x": 1450,
|
|
||||||
"y": 3500,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "98798c9044c1d4bc",
|
|
||||||
"type": "file",
|
|
||||||
"file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas",
|
|
||||||
"x": 800,
|
|
||||||
"y": 3500,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "8f3127f03a5bab96",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Automations-Baukasten (Flow-Editor)\n**Ticket:** `D-FLOW` · **Status:** ⬜ offen\n**Wo:** `/automations/:id/edit`\n\n**Was drin ist:** Zeichenfläche mit Bausteinen: Auslöser (neue Anfrage, Formular abgeschickt, Zeitplan …) und Aktionen (Aufgabe anlegen, Mail senden, Wenn-Dann, Warten …) per Ziehen verbinden\n\n**So funktioniert's:** Alles in verständlichem Deutsch beschriftet. Vor dem Aktivieren zeigt eine Probe-Vorschau »trifft X Datensätze« — erst bestätigen, dann läuft's. Warnt vor Endlos-Schleifen. **Aufwendigste UI der ganzen App.**",
|
|
||||||
"x": 2150,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "e6d8c36a0f89d954",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Automationen: Übersicht & Verläufe\n**Ticket:** `D-P12` · **Status:** ⬜ offen\n**Wo:** `/automations`\n\n**Was drin ist:** Liste aller Automationen (aktiv/pausiert/Entwurf), Lauf-Protokolle Schritt für Schritt in Klartext, Vorlagen-Katalog (SHK-Vorlagen + eigene)\n\n**So funktioniert's:** Jeder Lauf ist nachvollziehbar; 24 h lang rückgängig machbar (Countdown-Knopf), fehlgeschlagene Schritte neu anstoßen.",
|
|
||||||
"x": 3067,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "77ebfde5a3a05b8a",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Online-Terminbuchung 🌐\n**Ticket:** `D-BOOK` + `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** 🌐 Buchungslink + `/bookings`\n\n**Was drin ist:** 🌐 Buchungs-Seite für Kunden (freien Termin wählen → Formular → Bestätigung mit Kalender-Datei), intern: Buchungs-Liste (verschieben, stornieren, No-Show), Buchungsseiten-Editor, Verfügbarkeits-Zeiten\n\n**So funktioniert's:** Kunde bucht selbst, der erste freie Mitarbeiter bekommt den Termin, die Anfrage landet im Lead-Eingang. Muss am schönsten aussehen — ist öffentlich.",
|
|
||||||
"x": 3067,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "28bd46ecb4eaa069",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Kalender\n**Ticket:** `D-BOOK` + `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** `/calendar` + Einstellungen\n\n**Was drin ist:** Monats-/Wochen-Ansicht mit allen Terminen (Google-Kalender + Buchungen + Plantafel, je mit Herkunfts-Marker), Google-Kalender verbinden, Konflikt-Übersicht\n\n**So funktioniert's:** Läuft in beide Richtungen mit Google (Outlook kommt in v2). Fremde private Termine erscheinen nur als »belegt«.",
|
|
||||||
"x": 3837,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "b789fc765f833f45",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Digital unterschreiben (E-Signatur)\n**Ticket:** `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Angebot als PDF hochladen → Unterzeichner festlegen → Kunde unterschreibt per Link (mit SMS/Mail-Code) oder direkt auf dem Gerät → Status je Unterzeichner, Erinnerung, Widerruf\n\n**So funktioniert's:** Hängt direkt am Projekt (»Angebot zur Signatur senden«). Eigene Lösung, kein Pflicht-Drittanbieter.",
|
|
||||||
"x": 4337,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "6b8c7d3bc3ee7449",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Formulare (Baukasten) 🌐\n**Ticket:** `D-FORM` + `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** `/forms` + öffentlicher Link\n\n**Was drin ist:** Formular-Baukasten (Felder per Ziehen anordnen, Wenn-Dann-Logik »zeige Feld X wenn …«, Live-Vorschau), 🌐 öffentliches Formular zum Teilen (Link, QR-Code, Einbetten), Antworten-Übersicht\n\n**So funktioniert's:** Was nach dem Absenden passiert, ist einstellbar: Anfrage/Aufgabe anlegen, Mail senden, Automation starten. Dieselben Formulare stecken auch in HR-Anträgen und der Terminbuchung.",
|
|
||||||
"x": 2560,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "ab16fe58ff28c0ac",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Kampagnen & Empfängerlisten\n**Ticket:** `D-KAMP` · **Status:** ⬜ offen\n**Wo:** `/email-marketing`\n\n**Was drin ist:** Kampagne erstellen in 6 Schritten (Absender → Inhalt → Empfänger → Test-Mail → Zeitpunkt → Check) · Empfängerlisten (Segmente) mit Filtern bauen\n\n**So funktioniert's:** Vor dem Versand prüft eine Checkliste alles Rechtliche (Domain bestätigt? Abmelde-Link? Impressum?) — bei Rot wird nicht gesendet.",
|
|
||||||
"x": 1200,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "4cce52e2e3bd8823",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Versand-Technik & Statistiken 🌐\n**Ticket:** `D-P14` · **Status:** ⬜ offen\n**Wo:** `/email-marketing` + Einstellungen\n\n**Was drin ist:** Eigene Absender-Domain einrichten (mit Copy-Paste-Anleitung), Kampagnen-Übersicht + Statistiken (zugestellt/geöffnet/geklickt), gesperrte Empfänger, Vorlagen, 🌐 Abmelde-Seite\n\n**So funktioniert's:** Mails an Kunden tauchen automatisch am Kontakt auf (BCC-Trick, kein Postfach-Anschluss nötig — der kommt in v2).",
|
|
||||||
"x": 1850,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "401d8270854bebac",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Team-Chat 📱\n**Ticket:** `D-CHAT` · **Status:** ⬜ offen\n**Wo:** `/chat`\n\n**Was drin ist:** Channel-Liste, Chat-Verlauf (Antwort-Threads, Emoji-Reaktionen, gelesen-von, Anhänge), Erwähnungen mit @, angepinnte Nachrichten, Suche, Direktnachrichten\n\n**So funktioniert's:** Jedes Projekt kann seinen eigenen Channel haben (Team wird automatisch synchron gehalten). Monteure: vereinfachte Handy-Ansicht mit Foto-Direktupload. Admin kann DMs nur mit Begründung einsehen.",
|
|
||||||
"x": 5077,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "5c72e7b04059503a",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Integrationen (Apps verbinden)\n**Ticket:** `D-P5` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/admin/integrations`\n\n**Was drin ist:** App-Katalog (nach Kategorie, mit Status-Ampel), Verbindung einrichten per Schritt-für-Schritt-Assistent, Verbindungs-Zustand + Sync-Verlauf in Klartext\n\n**So funktioniert's:** Das gemeinsame Gerüst für alle Anbindungen — E-Mail, Telefonie, Kalender, Signatur nutzen alle dieselben Verbindungs-Karten.",
|
|
||||||
"x": 5537,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "b334f15bdd19d9ad",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Erste Schritte & Demo-Daten\n**Ticket:** `D-P20` (Teil) · **Status:** ⬜ offen\n**Wo:** `/onboarding` + Admin\n\n**Was drin ist:** Erste-Schritte-Checkliste (mit Direkt-Links, abhakbar, ausblendbar), Beispieldaten-Knopf (anlegen, zählen, wieder löschen, »Demo ausblenden«-Filter), Hell/Dunkel-Umschalter\n\n**So funktioniert's:** Kein Einrichtungs-Assistent — beim Registrieren wird alles SHK-typisch vorbefüllt, die Checkliste führt danach durch.",
|
|
||||||
"x": 5537,
|
|
||||||
"y": 3760,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "a-integrationen-pkg",
|
|
||||||
"type": "file",
|
|
||||||
"file": "02 Wireframes/P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.canvas",
|
|
||||||
"x": 5537,
|
|
||||||
"y": 3500,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "29ca06733a9b243b",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Telefonie (Anrufe)\n**Ticket:** `D-P15` · **Status:** ⬜ offen\n**Wo:** `/calls` + Einstellungen\n\n**Was drin ist:** AirCall verbinden (Telefon-Nutzer zuordnen), Anruf-Liste + Detail (Notiz, Aufnahme), Anruf-Knopf direkt an Kontakt/Anfrage/Projekt\n\n**So funktioniert's:** Anrufe werden automatisch dem richtigen Kontakt zugeordnet. Unbekannte Nummer ruft an → wird automatisch eine Anfrage im Lead-Eingang.",
|
|
||||||
"x": 5577,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "0f6acf7087283c0c",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Aktivitäts-Protokoll (Audit-Log)\n**Ticket:** `D-P3` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/admin/audit`\n\n**Was drin ist:** Wer hat wann was geändert — als deutscher Klartext-Satz, mit Filter und Vorher/Nachher-Vergleich, Export mit Zweck-Angabe\n\n**So funktioniert's:** Der gleiche Verlauf ist auch an jedem Datensatz einblendbar (»Verlauf dieses Objekts«). Unterscheidet Mensch / Automation / Agent / Admin.",
|
|
||||||
"x": 6037,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "3864f1b74d665e1a",
|
|
||||||
"type": "file",
|
|
||||||
"file": "02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.canvas",
|
|
||||||
"x": 6037,
|
|
||||||
"y": 3500,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "6533d410b309a48f",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Datenschutz (Export & Löschung)\n**Ticket:** `D-P21` (Teil) · **Status:** ⬜ offen\n**Wo:** `/admin/privacy` + Einstellungen\n\n**Was drin ist:** Daten-Export als ZIP (für einen Nutzer oder den ganzen Workspace), Workspace-Löschung (mehrstufig, 30 Tage Schonfrist, Passwort + 2FA), Konto-Löschung, Liste der Unterauftragsverarbeiter, AVV-Vertrag\n\n**So funktioniert's:** Letzter Baustein vor dem Launch. DSGVO-Auskunftsanfragen laufen in v1 als manuelle Anleitung, ohne eigenen Assistenten.",
|
|
||||||
"x": 6037,
|
|
||||||
"y": 3760,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "50945ed6e43505ce",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Benachrichtigungen\n**Ticket:** `D-P3` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** Glocke oben + Einstellungen\n\n**Was drin ist:** Glocke mit Ungelesen-Zähler + aufklappbare Liste (Klick springt zur Sache), eigene Seite mit allen Meldungen, Einstellungen: pro Ereignis-Typ wählen ob In-App und/oder E-Mail\n\n**So funktioniert's:** Wird von allen Features gespeist (neue Anfrage, Aufgabe fällig, Antrag genehmigt …). Master-Schalter »alle E-Mails aus«.",
|
|
||||||
"x": 6077,
|
|
||||||
"y": 2160,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "43a26561f03f72da",
|
|
||||||
"type": "file",
|
|
||||||
"file": "02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas",
|
|
||||||
"x": 6077,
|
|
||||||
"y": 2560,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "6b3c0929759a607b",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Abo & Rechnungen (für HiveGrid)\n**Ticket:** `D-P20` (Teil) · **Status:** ⚠️ Ticket braucht Recut\n**Wo:** `/admin/subscription`\n\n**Was drin ist:** Abo-Übersicht (Plan, Plätze, gebuchte Module, Test-Countdown), Verbrauchs-Balken (Automations-Läufe, Speicher), Rechnungen + Zahlungsstatus\n\n**Achtung:** Das Ticket wird gerade umgeschnitten (neuer Abrechnungs-Unterbau) — erst planen, wenn der Brief neu steht. Kein Selbst-Upgrade in v1.",
|
|
||||||
"x": 6537,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "db76161d24fb0c1d",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Feedback & Hilfe\n**Ticket:** `D-P21` (Teil) · **Status:** ⬜ offen\n**Wo:** überall + `/help`\n\n**Was drin ist:** Schwebender Feedback-Knopf (Fehler melden / Idee / Frage, optional mit Screenshot), kleine FAQ-Seite\n\n**So funktioniert's:** Meldungen landen direkt in unserer Support-Inbox im Plattform-Admin.",
|
|
||||||
"x": 6537,
|
|
||||||
"y": 3760,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "c8d8914e45e1497e",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Plattform-Admin\n**Ticket:** `D-ADMIN` · **Status:** ⬜ offen\n**Wo:** admin.hivegrid.de\n\n**Was drin ist:** Eigener Login (2FA Pflicht), Übersichts-Dashboard (Kunden, Nutzer, Umsatz, System-Zustand), Kunden-Verwaltung (Module freischalten = Abo-Baukasten, Test verlängern, »als Kunde einloggen« mit Begründung), Nutzer-Hilfen (2FA-Reset), Feature-Schalter, Warteschlangen-Monitor, Support-Inbox, Protokoll\n\n**So funktioniert's:** Komplett eigene Welt für uns als Betreiber — Kunden sehen davon nichts. Muss funktionieren, nicht hübsch sein.",
|
|
||||||
"x": 7237,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "abf5f779c1463715",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Hinweis\nDieses eine Ticket enthält viele kleine Features (Kunden, Schalter, Support …).\n\nBeim atomaren Durchgehen behandeln wir es als eigenen Bereich und teilen es bei Bedarf in Unter-Pakete auf. Priorität liegt aber hinter der Vertriebs-/Auftrags-Kette.",
|
|
||||||
"x": 7237,
|
|
||||||
"y": 3760,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "d9868dadb782f253",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Kontakte & Organisationen\n**Ticket:** `D-CRM` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/contacts`\n\n**Was drin ist:** Kontakt-Liste, Organisations-Liste, Kontakt-Detailseite (die Vorlage für ALLE Detailseiten), eigene Felder, Tags, Duplikate zusammenführen\n\n**So funktioniert's:** Ein Kontakt ist Privatperson oder Organisation und hat einen Status (Kontakt → Kunde → Bestandskunde). Auf der Detailseite sieht man alles: Projekte, Mails, Anrufe, Aufgaben, Dateien, Notizen.",
|
|
||||||
"x": 3077,
|
|
||||||
"y": 1040,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "e10a35560a461111",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Kanban-Board & Pipelines (Projekte)\n**Ticket:** `D-P8` + `D-KANBAN` · **Status:** ⬜ offen\n**Wo:** `/projects` + Admin\n\n**Was drin ist:** Kanban-Board mit Spalten je Status (Karten ziehen = Status wechseln), Projekt-Liste, Projekt-Detailseite, Pipeline-Einstellungen (Spalten, Rechte, Pflichtfelder), Verlust-Gründe\n\n**So funktioniert's:** Ein Projekt wandert durch Boards — »Vertrieb« und »Auftrag« sind nur zwei Boards für denselben Datensatz. Gewonnen = wechselt aufs Auftrags-Board. Wer welche Felder sieht (z. B. Umsatz), ist einstellbar.",
|
|
||||||
"x": 4037,
|
|
||||||
"y": 1040,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "4bb807ef5e3c8dee",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Projekt-Akte (Auftrag) 📱\n**Ticket:** `D-P9` · **Status:** ⬜ offen\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Reiter am Projekt: Team-Mitglieder, Termine, **Rechnungen (neu in v1)**, Checklisten & Mängel, Aufgaben, Dateien, Abnahmen · dazu Projekt-Vorlagen und Abnahme-Formular-Vorlagen\n\n**So funktioniert's:** Alles zum Auftrag an einem Ort. Am Handy reduziert: Stammdaten, heutige Aufgaben, Abnahme-Knopf, Foto direkt hochladen.",
|
|
||||||
"x": 5077,
|
|
||||||
"y": 1040,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "3f83fa1a16ae69df",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Plantafel (Einsatzplanung) 📱\n**Ticket:** `D-PLAN` · **Status:** ⬜ offen\n**Wo:** `/projects/plantafel`\n\n**Was drin ist:** Planungs-Raster: Zeilen = Mitarbeiter, Spalten = Zeit. Einsätze per Ziehen verschieben/verlängern, Klick auf freien Slot = neuer Einsatz\n\n**So funktioniert's:** Warnt bei Konflikten (doppelt verplant, Urlaub/krank, außerhalb Arbeitszeit) — zuweisen geht trotzdem. Monteure sehen am Handy »Meine Termine heute« mit Adresse + Navi, auch offline.",
|
|
||||||
"x": 5897,
|
|
||||||
"y": 1040,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "d9ad572ae83b4d0a",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Abnahme (Baustellen-Protokoll) 📱\n**Ticket:** `D-ABN` · **Status:** ⬜ offen\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Abnahme-Formular (Druckprobe, Funktionsprüfung, Zählerstände, übergebene Dokumente), Mängel mit Foto festhalten, Unterschrift Kunde + Monteur direkt am Handy, Liste aller Abnahmen je Projekt\n\n**So funktioniert's:** Nach dem Speichern unveränderbar (6 Jahre Aufbewahrung), PDF geht automatisch per Mail an den Kunden. Funktioniert offline, lädt später hoch. Mängel werden automatisch Aufgaben.",
|
|
||||||
"x": 6767,
|
|
||||||
"y": 1040,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "903e3384b0a5e623",
|
|
||||||
"type": "text",
|
|
||||||
"text": "**Detail-Flows:** 9 Wireframe-Pakete mit eigenen Canvases in `02 Wireframes/P2 Auth/` (Login, Signup, Reset, Set Password, 2FA, RBAC …) — siehe Tracker",
|
|
||||||
"x": 2777,
|
|
||||||
"y": 480,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "3e27875daca5713d",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Login, Registrierung & Workspace\n**Ticket:** `D-P2` · **Status:** ✅ validiert / in Subframe\n**Wo:** Login-Seiten + Einstellungen\n\n**Was drin ist:** Registrierung, Login + 2FA, Passwort vergessen/ändern, Workspace-Auswahl + neuer Workspace, Profil & Sicherheit, Mitarbeiter & Rollen (Admin)\n\n**Stand:** 9 Wireframe-Pakete fertig gebaut. Konto/Workspace löschen bewusst geparkt. → `02 Wireframes/P2 Auth/`",
|
|
||||||
"x": 2777,
|
|
||||||
"y": 80,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "89c0813f7e139a88",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Dashboard (Startseite)\n**Ticket:** `D-DASH` (Teil) · **Status:** ⬜ offen\n**Wo:** `/dashboard`\n\n**Was drin ist:** 3 feste Ansichten je Rolle: Chef (Umsatz, Projekte, Auslastung) · Büro (Projekte, Aufgaben, Anrufe) · Monteur 📱 (meine Termine, Projekte, Aufgaben)\n\n**So funktioniert's:** Kacheln mit Zahlen, Listen und Trend-Charts, live aktualisiert. Kein freies Umbauen in v1 — nur Filter/Zeitraum einstellbar.",
|
|
||||||
"x": 4037,
|
|
||||||
"y": 80,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "4a4e5be847a54e5f",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Suche (Cmd+K)\n**Ticket:** `D-DASH` (Teil) · **Status:** ⬜ offen\n**Wo:** überall + `/search`\n\n**Was drin ist:** Such-Fenster per Tastenkürzel: tippen, Treffer nach Typ gruppiert, mit Pfeiltasten navigieren · dazu große Such-Seite mit Filtern\n\n**So funktioniert's:** Findet Kontakte, Projekte, Dateien usw. — zeigt nur, was man sehen darf.",
|
|
||||||
"x": 4537,
|
|
||||||
"y": 80,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "ce5632682989a6ca",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Website (Landing & Demo-Anfrage)\n**Ticket:** `D-WEB` · **Status:** ⬜ offen\n**Wo:** 🌐 hivegrid.de\n\n**Was drin ist:** Startseite, Features-Seite, Preise-Teaser, Demo-Anfrage-Formular\n\n**Warum wichtig:** Der erste Eindruck nach außen. Farben/Schriften sind dieselben wie in der App. Demo-Anfragen landen im Lead-Eingang.",
|
|
||||||
"x": 2007,
|
|
||||||
"y": 80,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "c02969250252a3ab",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Feinschliff vor Launch\n**Ticket:** `D-POLISH` · **Status:** ⬜ offen\n**Wo:** 🌐 alles öffentlich Sichtbare\n\n**Was drin ist:** Letzter Polier-Durchgang: Terminbuchungs-Seite, öffentliche Formulare, Marketing-Mails · danach Screenshots als »So muss es aussehen«-Referenz einfrieren\n\n**Warum wichtig:** Kommt ganz am Ende, direkt vor dem Launch. Braucht Terminbuchung + Dashboard fertig.",
|
|
||||||
"x": 1190,
|
|
||||||
"y": 80,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "d48196ed3e229be5",
|
|
||||||
"type": "text",
|
|
||||||
"text": "**Standards:** `04 Standards/Subframe UI Standards/` — validierte Layout-Regeln",
|
|
||||||
"x": 690,
|
|
||||||
"y": 480,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "d53e7ea48a9b1e6c",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## UI-Baukasten (Listen, Formulare, Modals …)\n**Ticket:** `D-D0b` · **Status:** ✅ validiert\n**Wo:** überall in der App\n\n**Was drin ist:** Fertige Bausteine: Listen mit Filter, Detail-Seiten, Formular-Felder (12 Typen), Dialoge/Wizards, Settings-Seiten, Leer-/Lade-/Fehler-Zustände + Kleinteile (Buttons, Tags, Charts, Unterschriften-Feld …)\n\n**Warum wichtig:** Einmal designen, überall wiederverwenden. Layout-Standards liegen in `04 Standards`. ✅ Bereits erledigt.",
|
|
||||||
"x": 690,
|
|
||||||
"y": 80,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "b3cad562971d30a5",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## App-Gerüst (Sidebar, Topbar & Design)\n**Ticket:** `D-D0a` · **Status:** ✅ gebaut (David, in Subframe)\n**Wo:** überall in der App\n\n**Was drin ist:** Sidebar (Module ein-/ausblendbar je Abo, Handy-Variante 📱), Topbar (Workspace-Wechsler, Suche, Glocke, Profil-Menü), Breadcrumb, Warn-Banner (z. B. »Zahlung offen«), Erfolgs-/Fehlermeldungen\n\n**Stand:** Bereits gebaut und validiert. Der Rahmen, in dem jedes Feature steckt — inkl. Farben, Schriften, Hell/Dunkel.",
|
|
||||||
"x": -100,
|
|
||||||
"y": 80,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "8272764aa65537b0",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## Lead-Eingang (Anfragen)\n**Ticket:** `D-P7` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/leads`\n\n**Was drin ist:** Eingangs-Liste aller Anfragen (mit Quelle, Spam-Verdacht, Duplikat-Hinweis), Anfrage-Detail, »Zu Projekt machen«, Statistiken, Quellen-Verwaltung, Spam-Schutz-Einstellungen\n\n**So funktioniert's:** Alle Anfragen (Website, Formulare, Anrufe, Buchungen) landen hier. Wer sie bearbeiten darf (Freigabe = ja), macht daraus ein Projekt und hängt den Kontakt dran.",
|
|
||||||
"x": 2007,
|
|
||||||
"y": 1040,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "03e8e03ef11606a0",
|
|
||||||
"type": "text",
|
|
||||||
"text": "## HR-Bereich 📱\n**Ticket:** `D-HR` · **Status:** ⬜ offen\n**Wo:** `/hr` + HR-Admin\n\n**Was drin ist:** Startseite (Ankündigungen, offene Anträge, wer ist heute da), Urlaub & Krankmeldung (mit Genehmigung), Lohnabrechnungen, Anträge (Spesen, Hardware …), Passwort-Safe, Umfragen, Mitarbeiter-Verzeichnis, Standorte, eigene Dokumente\n\n**So funktioniert's:** Mitarbeiter-Sicht und HR-Verwaltung sind strikt getrennt; sensible Daten verschlüsselt, jedes Aufdecken protokolliert. Urlaub/krank fließt direkt in die Plantafel-Konflikte.",
|
|
||||||
"x": 8017,
|
|
||||||
"y": 3100,
|
|
||||||
"width": 460,
|
|
||||||
"height": 360,
|
|
||||||
"color": "5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "d5d3db1765287eef",
|
|
||||||
"type": "text",
|
|
||||||
"text": "# 🗺 HiveGrid Feature Map (v1)\nJede Karte = **ein Feature**. Das Ticket steht nur als Referenz dran. Übergreifende Sachen (App-Gerüst, UI-Baukasten, Feinschliff) liegen unter **Basis**.\n\n**Farben:**\n🟢 fertig/validiert · 🔴 Sonder-UI, wird von Hand designt (Tage) · 🔵 wird aus dem UI-Baukasten zusammengesteckt (Stunden) · 🟠 Mischung aus beidem · 🟣 Basis · 🟡 Feinschliff\n\n**Marker:** 🌐 öffentlich sichtbar (höchster Anspruch) · 📱 Monteur-Handy, teils offline\n\n**Unter jeder Karte:** Slot für die verknüpften Paket-Canvases (Detail-Flows aus `02 Wireframes`) — Karte anklicken öffnet den Flow.\n\n**Pfeile:** orange = Hauptkette (Anfrage → Auftrag → Geld) · grau = klare Querverbindung. Gilt etwas für **alle** Features (Automationen, Aufgaben/Dateien, Benachrichtigungen, Verbindungs-Gerüst), steht es als Text auf der Karte statt als Pfeil.\n\nAbhaklisten & Details: [[HiveGrid Map]]",
|
|
||||||
"x": -163,
|
|
||||||
"y": -600,
|
|
||||||
"width": 1140,
|
|
||||||
"height": 380
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id":"a4f86f7bfc24194b",
|
"id":"a4f86f7bfc24194b",
|
||||||
"type":"text",
|
"type":"text",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"border":"dashed"},
|
||||||
"border": "dashed"
|
|
||||||
},
|
|
||||||
"text":"# 📏 Canvas-Regelwerk\n**Karten:** 1 Karte = 1 Feature · Farbe = Aufwand/Status (siehe Legende links) · unter der Karte hängen die Paket-Canvases (Detail-Flows).\n\n**Verbindungen:**\n- 🟠 **durchgezogen** — Hauptkette: so fließt ein Auftrag durchs System\n- 🔵 **durchgezogen** — erzeugt Anfrage/Termin (Wege in den Lead-Eingang)\n- **grau, lang gestrichelt** — speist/beeinflusst (Daten fließen rüber)\n- **grau, kurz gestrichelt** — Werkzeug-Paar (gehört fachlich zusammen)\n- 🟣 **gepunktet** — Basis/Einstieg (Design-Grundlage, nach dem Login)\n- **kein Pfeil** — gilt für ALLE Features (steht als Text auf der Karte)\n\n**Pfadführung:** nur gerade (direkt) oder Standard-Kurve — keine verwinkelten Wege. Wenn ein ganzer Bereich zu einem anderen gehört, wird Gruppe↔Gruppe (oder Gruppe↔Karte) verbunden statt vieler Einzel-Pfeile.\n\n**Label-Regel:** Zwischen verbundenen Karten bleibt mindestens Label-Breite Platz (≈ 8 px pro Zeichen + Rand), sonst wird der Text abgeschnitten.",
|
"text":"# 📏 Canvas-Regelwerk\n**Karten:** 1 Karte = 1 Feature · Farbe = Aufwand/Status (siehe Legende links) · unter der Karte hängen die Paket-Canvases (Detail-Flows).\n\n**Verbindungen:**\n- 🟠 **durchgezogen** — Hauptkette: so fließt ein Auftrag durchs System\n- 🔵 **durchgezogen** — erzeugt Anfrage/Termin (Wege in den Lead-Eingang)\n- **grau, lang gestrichelt** — speist/beeinflusst (Daten fließen rüber)\n- **grau, kurz gestrichelt** — Werkzeug-Paar (gehört fachlich zusammen)\n- 🟣 **gepunktet** — Basis/Einstieg (Design-Grundlage, nach dem Login)\n- **kein Pfeil** — gilt für ALLE Features (steht als Text auf der Karte)\n\n**Pfadführung:** nur gerade (direkt) oder Standard-Kurve — keine verwinkelten Wege. Wenn ein ganzer Bereich zu einem anderen gehört, wird Gruppe↔Gruppe (oder Gruppe↔Karte) verbunden statt vieler Einzel-Pfeile.\n\n**Label-Regel:** Zwischen verbundenen Karten bleibt mindestens Label-Breite Platz (≈ 8 px pro Zeichen + Rand), sonst wird der Text abgeschnitten.",
|
||||||
"x":1187,
|
"x":1187,
|
||||||
"y":-640,
|
"y":-640,
|
||||||
"width":820,
|
"width":820,
|
||||||
"height":420
|
"height":420
|
||||||
},
|
},
|
||||||
{
|
{"id":"b334f15bdd19d9ad","type":"text","text":"## Erste Schritte & Demo-Daten\n**Ticket:** `D-P20` (Teil) · **Status:** ⬜ offen\n**Wo:** `/onboarding` + Admin\n\n**Was drin ist:** Erste-Schritte-Checkliste (mit Direkt-Links, abhakbar, ausblendbar), Beispieldaten-Knopf (anlegen, zählen, wieder löschen, »Demo ausblenden«-Filter), Hell/Dunkel-Umschalter\n\n**So funktioniert's:** Kein Einrichtungs-Assistent — beim Registrieren wird alles SHK-typisch vorbefüllt, die Checkliste führt danach durch.","x":5537,"y":3760,"width":460,"height":360,"color":"5"},
|
||||||
"id": "md-hivegrid-map",
|
{"id":"6533d410b309a48f","type":"text","text":"## Datenschutz (Export & Löschung)\n**Ticket:** `D-P21` (Teil) · **Status:** ⬜ offen\n**Wo:** `/admin/privacy` + Einstellungen\n\n**Was drin ist:** Daten-Export als ZIP (für einen Nutzer oder den ganzen Workspace), Workspace-Löschung (mehrstufig, 30 Tage Schonfrist, Passwort + 2FA), Konto-Löschung, Liste der Unterauftragsverarbeiter, AVV-Vertrag\n\n**So funktioniert's:** Letzter Baustein vor dem Launch. DSGVO-Auskunftsanfragen laufen in v1 als manuelle Anleitung, ohne eigenen Assistenten.","x":6037,"y":3760,"width":460,"height":360,"color":"5"},
|
||||||
"type": "file",
|
{"id":"db76161d24fb0c1d","type":"text","text":"## Feedback & Hilfe\n**Ticket:** `D-P21` (Teil) · **Status:** ⬜ offen\n**Wo:** überall + `/help`\n\n**Was drin ist:** Schwebender Feedback-Knopf (Fehler melden / Idee / Frage, optional mit Screenshot), kleine FAQ-Seite\n\n**So funktioniert's:** Meldungen landen direkt in unserer Support-Inbox im Plattform-Admin.","x":6537,"y":3760,"width":460,"height":360,"color":"5"},
|
||||||
"file": "05 HiveGrid Map/HiveGrid Map.md",
|
{"id":"d9ad572ae83b4d0a","type":"text","text":"## Abnahme (Baustellen-Protokoll) 📱\n**Ticket:** `D-ABN` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Abnahme-Formular (Druckprobe, Funktionsprüfung, Zählerstände, übergebene Dokumente), Mängel mit Foto festhalten, Unterschrift Kunde + Monteur direkt am Handy, Liste aller Abnahmen je Projekt\n\n**So funktioniert's:** Nach dem Speichern unveränderbar (6 Jahre Aufbewahrung), PDF geht automatisch per Mail an den Kunden. Funktioniert offline, lädt später hoch. Mängel werden automatisch Aufgaben.","x":6767,"y":1040,"width":460,"height":360,"color":"1"},
|
||||||
"x": -683,
|
{"id":"md-hivegrid-map","type":"file","file":"05 HiveGrid Map/HiveGrid Map.md","x":-683,"y":-600,"width":460,"height":300},
|
||||||
"y": -600,
|
{"id":"c8d8914e45e1497e","type":"text","text":"## Plattform-Admin\n**Ticket:** `D-ADMIN` · **Status:** ⬜ offen\n**Wo:** admin.hivegrid.de\n\n**Was drin ist:** Eigener Login (2FA Pflicht), Übersichts-Dashboard (Kunden, Nutzer, Umsatz, System-Zustand), Kunden-Verwaltung (Module freischalten = Abo-Baukasten, Test verlängern, »als Kunde einloggen« mit Begründung), Nutzer-Hilfen (2FA-Reset), Feature-Schalter, Warteschlangen-Monitor, Support-Inbox, Protokoll\n\n**So funktioniert's:** Komplett eigene Welt für uns als Betreiber — Kunden sehen davon nichts. Muss funktionieren, nicht hübsch sein.","x":7237,"y":3100,"width":460,"height":360,"color":"5"},
|
||||||
"width": 460,
|
{"id":"abf5f779c1463715","type":"text","text":"## Hinweis\nDieses eine Ticket enthält viele kleine Features (Kunden, Schalter, Support …).\n\nBeim atomaren Durchgehen behandeln wir es als eigenen Bereich und teilen es bei Bedarf in Unter-Pakete auf. Priorität liegt aber hinter der Vertriebs-/Auftrags-Kette.","x":7237,"y":3760,"width":460,"height":360,"color":"5"},
|
||||||
"height": 300
|
{"id":"03e8e03ef11606a0","type":"text","text":"## HR-Bereich 📱\n**Ticket:** `D-HR` · **Status:** ⬜ offen\n**Wo:** `/hr` + HR-Admin\n\n**Was drin ist:** Startseite (Ankündigungen, offene Anträge, wer ist heute da), Urlaub & Krankmeldung (mit Genehmigung), Lohnabrechnungen, Anträge (Spesen, Hardware …), Passwort-Safe, Umfragen, Mitarbeiter-Verzeichnis, Standorte, eigene Dokumente\n\n**So funktioniert's:** Mitarbeiter-Sicht und HR-Verwaltung sind strikt getrennt; sensible Daten verschlüsselt, jedes Aufdecken protokolliert. Urlaub/krank fließt direkt in die Plantafel-Konflikte.","x":8017,"y":3100,"width":460,"height":360,"color":"5"},
|
||||||
},
|
{"id":"a-akte-pkg","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas","x":5077,"y":1440,"width":460,"height":220},
|
||||||
{
|
{"id":"a-plantafel-pkg","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas","x":5897,"y":1440,"width":460,"height":220},
|
||||||
"id": "a-kontakte-pkg",
|
{"id":"a-abnahme-pkg","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas","x":6767,"y":1440,"width":460,"height":220},
|
||||||
"type": "file",
|
{"id":"a-flow-pkg","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas","x":2150,"y":3500,"width":460,"height":220},
|
||||||
"file": "02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas",
|
{"id":"a-autoverw-pkg","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas","x":3067,"y":3500,"width":460,"height":220}
|
||||||
"x": 3077,
|
|
||||||
"y": 1440,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "a-leads-pkg",
|
|
||||||
"type": "file",
|
|
||||||
"file": "02 Wireframes/P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas",
|
|
||||||
"x": 2007,
|
|
||||||
"y": 1440,
|
|
||||||
"width": 460,
|
|
||||||
"height": 220
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"edges":[
|
"edges":[
|
||||||
{
|
{
|
||||||
"id":"4ab78034e8253353",
|
"id":"4ab78034e8253353",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"dotted","pathfindingMethod":"direct"},
|
||||||
"path": "dotted",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"b3cad562971d30a5",
|
"fromNode":"b3cad562971d30a5",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"d53e7ea48a9b1e6c",
|
"toNode":"d53e7ea48a9b1e6c",
|
||||||
@@ -609,10 +90,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"493a2823934c45bb",
|
"id":"493a2823934c45bb",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"dotted","pathfindingMethod":"direct"},
|
||||||
"path": "dotted",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"3e27875daca5713d",
|
"fromNode":"3e27875daca5713d",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"89c0813f7e139a88",
|
"toNode":"89c0813f7e139a88",
|
||||||
@@ -622,9 +100,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"ec751d558a1aef74",
|
"id":"ec751d558a1aef74",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"pathfindingMethod":"direct"},
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"8272764aa65537b0",
|
"fromNode":"8272764aa65537b0",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"d9868dadb782f253",
|
"toNode":"d9868dadb782f253",
|
||||||
@@ -634,9 +110,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"154e632b2e5a645b",
|
"id":"154e632b2e5a645b",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"pathfindingMethod":"direct"},
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"d9868dadb782f253",
|
"fromNode":"d9868dadb782f253",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"e10a35560a461111",
|
"toNode":"e10a35560a461111",
|
||||||
@@ -646,9 +120,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"0c0d0ba4b21da4ee",
|
"id":"0c0d0ba4b21da4ee",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"pathfindingMethod":"direct"},
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"e10a35560a461111",
|
"fromNode":"e10a35560a461111",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"4bb807ef5e3c8dee",
|
"toNode":"4bb807ef5e3c8dee",
|
||||||
@@ -658,9 +130,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"b43edef178d41dd6",
|
"id":"b43edef178d41dd6",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"pathfindingMethod":"direct"},
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"4bb807ef5e3c8dee",
|
"fromNode":"4bb807ef5e3c8dee",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"3f83fa1a16ae69df",
|
"toNode":"3f83fa1a16ae69df",
|
||||||
@@ -670,9 +140,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"c45adb9c0c551e38",
|
"id":"c45adb9c0c551e38",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"pathfindingMethod":"direct"},
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"3f83fa1a16ae69df",
|
"fromNode":"3f83fa1a16ae69df",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"d9ad572ae83b4d0a",
|
"toNode":"d9ad572ae83b4d0a",
|
||||||
@@ -695,9 +163,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"2ec97abebcf1dcce",
|
"id":"2ec97abebcf1dcce",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"pathfindingMethod":"direct"},
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"ce5632682989a6ca",
|
"fromNode":"ce5632682989a6ca",
|
||||||
"fromSide":"bottom",
|
"fromSide":"bottom",
|
||||||
"toNode":"8272764aa65537b0",
|
"toNode":"8272764aa65537b0",
|
||||||
@@ -708,9 +174,10 @@
|
|||||||
{
|
{
|
||||||
"id":"4b89b1105393e48f",
|
"id":"4b89b1105393e48f",
|
||||||
"styleAttributes":{
|
"styleAttributes":{
|
||||||
"pathfindingMethod": "direct"
|
"pathfindingMethod":null
|
||||||
},
|
},
|
||||||
"toFloating":false,
|
"toFloating":false,
|
||||||
|
"fromFloating":false,
|
||||||
"fromNode":"6b8c7d3bc3ee7449",
|
"fromNode":"6b8c7d3bc3ee7449",
|
||||||
"fromSide":"top",
|
"fromSide":"top",
|
||||||
"toNode":"8272764aa65537b0",
|
"toNode":"8272764aa65537b0",
|
||||||
@@ -718,24 +185,13 @@
|
|||||||
"color":"5",
|
"color":"5",
|
||||||
"label":"Formular → Anfrage"
|
"label":"Formular → Anfrage"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"id": "bc139947ce483198",
|
|
||||||
"styleAttributes": {
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode": "77ebfde5a3a05b8a",
|
|
||||||
"fromSide": "top",
|
|
||||||
"toNode": "8272764aa65537b0",
|
|
||||||
"toSide": "bottom",
|
|
||||||
"color": "5",
|
|
||||||
"label": "Buchung → Anfrage/Termin"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id":"57a256b64d1a2d76",
|
"id":"57a256b64d1a2d76",
|
||||||
"styleAttributes":{
|
"styleAttributes":{
|
||||||
"pathfindingMethod": "direct"
|
"pathfindingMethod":null
|
||||||
},
|
},
|
||||||
"fromFloating":false,
|
"fromFloating":false,
|
||||||
|
"toFloating":false,
|
||||||
"fromNode":"29ca06733a9b243b",
|
"fromNode":"29ca06733a9b243b",
|
||||||
"fromSide":"top",
|
"fromSide":"top",
|
||||||
"toNode":"8272764aa65537b0",
|
"toNode":"8272764aa65537b0",
|
||||||
@@ -745,10 +201,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"78fca84da3e723b6",
|
"id":"78fca84da3e723b6",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"long-dashed","pathfindingMethod":"direct"},
|
||||||
"path": "long-dashed",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"00d6b92d3845c185",
|
"fromNode":"00d6b92d3845c185",
|
||||||
"fromSide":"top",
|
"fromSide":"top",
|
||||||
"toNode":"d9868dadb782f253",
|
"toNode":"d9868dadb782f253",
|
||||||
@@ -771,10 +224,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"ce4441bfdc6a11cc",
|
"id":"ce4441bfdc6a11cc",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"long-dashed","pathfindingMethod":"direct"},
|
||||||
"path": "long-dashed",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"28bd46ecb4eaa069",
|
"fromNode":"28bd46ecb4eaa069",
|
||||||
"fromSide":"top",
|
"fromSide":"top",
|
||||||
"toNode":"3f83fa1a16ae69df",
|
"toNode":"3f83fa1a16ae69df",
|
||||||
@@ -783,10 +233,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"77081523e546eebe",
|
"id":"77081523e546eebe",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"long-dashed","pathfindingMethod":"direct"},
|
||||||
"path": "long-dashed",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromFloating":false,
|
"fromFloating":false,
|
||||||
"fromNode":"b789fc765f833f45",
|
"fromNode":"b789fc765f833f45",
|
||||||
"fromSide":"top",
|
"fromSide":"top",
|
||||||
@@ -796,10 +243,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"e6c0f9dda77f8d85",
|
"id":"e6c0f9dda77f8d85",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"long-dashed","pathfindingMethod":"direct"},
|
||||||
"path": "long-dashed",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"401d8270854bebac",
|
"fromNode":"401d8270854bebac",
|
||||||
"fromSide":"top",
|
"fromSide":"top",
|
||||||
"toNode":"4bb807ef5e3c8dee",
|
"toNode":"4bb807ef5e3c8dee",
|
||||||
@@ -808,10 +252,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"65bd180bf263096e",
|
"id":"65bd180bf263096e",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"long-dashed","pathfindingMethod":"direct"},
|
||||||
"path": "long-dashed",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"e10a35560a461111",
|
"fromNode":"e10a35560a461111",
|
||||||
"fromSide":"top",
|
"fromSide":"top",
|
||||||
"toNode":"89c0813f7e139a88",
|
"toNode":"89c0813f7e139a88",
|
||||||
@@ -820,10 +261,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"dc15b80a5a4410c9",
|
"id":"dc15b80a5a4410c9",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"long-dashed","pathfindingMethod":"direct"},
|
||||||
"path": "long-dashed",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"db76161d24fb0c1d",
|
"fromNode":"db76161d24fb0c1d",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"c8d8914e45e1497e",
|
"toNode":"c8d8914e45e1497e",
|
||||||
@@ -832,10 +270,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"0bb07aa23fe6a9f2",
|
"id":"0bb07aa23fe6a9f2",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"short-dashed","pathfindingMethod":"direct"},
|
||||||
"path": "short-dashed",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"28bd46ecb4eaa069",
|
"fromNode":"28bd46ecb4eaa069",
|
||||||
"fromSide":"left",
|
"fromSide":"left",
|
||||||
"toNode":"77ebfde5a3a05b8a",
|
"toNode":"77ebfde5a3a05b8a",
|
||||||
@@ -844,15 +279,25 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id":"cc8ccd69ae4f9435",
|
"id":"cc8ccd69ae4f9435",
|
||||||
"styleAttributes": {
|
"styleAttributes":{"path":"short-dashed","pathfindingMethod":"direct"},
|
||||||
"path": "short-dashed",
|
|
||||||
"pathfindingMethod": "direct"
|
|
||||||
},
|
|
||||||
"fromNode":"8f3127f03a5bab96",
|
"fromNode":"8f3127f03a5bab96",
|
||||||
"fromSide":"right",
|
"fromSide":"right",
|
||||||
"toNode":"e6d8c36a0f89d954",
|
"toNode":"e6d8c36a0f89d954",
|
||||||
"toSide":"left",
|
"toSide":"left",
|
||||||
"label":"Baukasten ↔ Übersicht"
|
"label":"Baukasten ↔ Übersicht"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":"bc139947ce483198",
|
||||||
|
"styleAttributes":{
|
||||||
|
"pathfindingMethod":null
|
||||||
|
},
|
||||||
|
"fromFloating":false,
|
||||||
|
"fromNode":"77ebfde5a3a05b8a",
|
||||||
|
"fromSide":"top",
|
||||||
|
"toNode":"8272764aa65537b0",
|
||||||
|
"toSide":"bottom",
|
||||||
|
"color":"5",
|
||||||
|
"label":"Buchung → Anfrage/Termin"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata":{
|
"metadata":{
|
||||||
|
|||||||
@@ -45,13 +45,13 @@ Gesamtkarte aller HiveGrid-v1-Features. Eine Karte = **ein Feature** (so benannt
|
|||||||
| Suche (Cmd+K) | Suche & Dashboard | D-DASH (Teil) | 🔴 klein | ⬜ offen |
|
| Suche (Cmd+K) | Suche & Dashboard | D-DASH (Teil) | 🔴 klein | ⬜ offen |
|
||||||
| Lead-Eingang (Anfragen) | Vertrieb | D-P7 | 🔵 | 🟡 vorgeplant |
|
| Lead-Eingang (Anfragen) | Vertrieb | D-P7 | 🔵 | 🟡 vorgeplant |
|
||||||
| Kontakte & Organisationen | Vertrieb | D-CRM | 🔵 | 🟡 vorgeplant |
|
| Kontakte & Organisationen | Vertrieb | D-CRM | 🔵 | 🟡 vorgeplant |
|
||||||
| Kanban-Board & Pipelines (Projekte) | Vertrieb | D-P8 + D-KANBAN | 🟠 | ⬜ offen |
|
| Kanban-Board & Pipelines (Projekte) | Vertrieb | D-P8 + D-KANBAN | 🟠 | 🟡 vorgeplant |
|
||||||
| Projekt-Akte (Auftrag) 📱 | Auftrag & Baustelle | D-P9 | 🟠 | ⬜ offen |
|
| Projekt-Akte (Auftrag) 📱 | Auftrag & Baustelle | D-P9 | 🟠 | 🟡 vorgeplant |
|
||||||
| Plantafel (Einsatzplanung) 📱 | Auftrag & Baustelle | D-PLAN | 🔴 | ⬜ offen |
|
| Plantafel (Einsatzplanung) 📱 | Auftrag & Baustelle | D-PLAN | 🔴 | 🟡 vorgeplant |
|
||||||
| Abnahme (Baustellen-Protokoll) 📱 | Auftrag & Baustelle | D-ABN | 🔴 | ⬜ offen |
|
| Abnahme (Baustellen-Protokoll) 📱 | Auftrag & Baustelle | D-ABN | 🔴 | 🟡 vorgeplant |
|
||||||
| Kampagnen & Empfängerlisten | E-Mail-Marketing | D-KAMP | 🟠 | ⬜ offen |
|
| Kampagnen & Empfängerlisten | E-Mail-Marketing | D-KAMP | 🟠 | ⬜ offen |
|
||||||
| Versand-Technik & Statistiken 🌐 | E-Mail-Marketing | D-P14 | 🟠 | ⬜ offen |
|
| Versand-Technik & Statistiken 🌐 | E-Mail-Marketing | D-P14 | 🟠 | ⬜ offen |
|
||||||
| Formulare (Baukasten) 🌐 | Termine & Formulare | D-FORM + D-P16 (Teil) | 🔴 | ⬜ offen |
|
| Formulare (Baukasten) 🌐 | Termine & Formulare | D-FORM + D-P16 (Teil) | 🔴 | ⬜ zurückgestellt |
|
||||||
| Online-Terminbuchung 🌐 | Termine & Formulare | D-BOOK + D-P16 (Teil) | 🟠 | ⬜ offen |
|
| Online-Terminbuchung 🌐 | Termine & Formulare | D-BOOK + D-P16 (Teil) | 🟠 | ⬜ offen |
|
||||||
| Kalender | Termine & Formulare | D-BOOK + D-P16 (Teil) | 🔴 mittel | ⬜ offen |
|
| Kalender | Termine & Formulare | D-BOOK + D-P16 (Teil) | 🔴 mittel | ⬜ offen |
|
||||||
| Digital unterschreiben (E-Signatur) | Termine & Formulare | D-P16 (Teil) | 🔵 | ⬜ offen |
|
| Digital unterschreiben (E-Signatur) | Termine & Formulare | D-P16 (Teil) | 🔵 | ⬜ offen |
|
||||||
@@ -60,8 +60,8 @@ Gesamtkarte aller HiveGrid-v1-Features. Eine Karte = **ein Feature** (so benannt
|
|||||||
| Benachrichtigungen | Kommunikation | D-P3 (Teil) | 🔵 | 🟡 vorgeplant |
|
| Benachrichtigungen | Kommunikation | D-P3 (Teil) | 🔵 | 🟡 vorgeplant |
|
||||||
| Aufgaben | Aufgaben & Dateien | D-P4 (Teil) | 🔵 | 🟡 vorgeplant |
|
| Aufgaben | Aufgaben & Dateien | D-P4 (Teil) | 🔵 | 🟡 vorgeplant |
|
||||||
| Dateien | Aufgaben & Dateien | D-P4 (Teil) | 🔵 | 🟡 vorgeplant |
|
| Dateien | Aufgaben & Dateien | D-P4 (Teil) | 🔵 | 🟡 vorgeplant |
|
||||||
| Automations-Baukasten (Flow-Editor) | Automationen | D-FLOW | 🔴 schwerste UI | ⬜ offen |
|
| Automations-Baukasten (Flow-Editor) | Automationen | D-FLOW | 🔴 schwerste UI | 🟡 vorgeplant |
|
||||||
| Automationen: Übersicht & Verläufe | Automationen | D-P12 | 🟠 | ⬜ offen |
|
| Automationen: Übersicht & Verläufe | Automationen | D-P12 | 🟠 | 🟡 vorgeplant |
|
||||||
| HR-Bereich 📱 | HR | D-HR | 🔵 breit | ⬜ offen |
|
| HR-Bereich 📱 | HR | D-HR | 🔵 breit | ⬜ offen |
|
||||||
| Integrationen (Apps verbinden) | Verwaltung | D-P5 | 🔵 | 🟡 vorgeplant |
|
| Integrationen (Apps verbinden) | Verwaltung | D-P5 | 🔵 | 🟡 vorgeplant |
|
||||||
| Aktivitäts-Protokoll (Audit-Log) | Verwaltung | D-P3 (Teil) | 🔵 | 🟡 vorgeplant |
|
| Aktivitäts-Protokoll (Audit-Log) | Verwaltung | D-P3 (Teil) | 🔵 | 🟡 vorgeplant |
|
||||||
@@ -217,46 +217,56 @@ Abhaken = in der groben Planung berücksichtigt (Screens/Flow verortet). Quelle:
|
|||||||
- Davids Idee dokumentiert (Später): Inline-Anlegen in der Liste (Notion-Stil)
|
- Davids Idee dokumentiert (Später): Inline-Anlegen in der Liste (Notion-Stil)
|
||||||
- Paket: `02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/` (Screens validiert; Subframe steht aus)
|
- Paket: `02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/` (Screens validiert; Subframe steht aus)
|
||||||
|
|
||||||
#### Kanban-Board & Pipelines (Projekte) — `D-P8` + `D-KANBAN` — ⬜ offen
|
#### Kanban-Board & Pipelines (Projekte) — `D-P8` + `D-KANBAN` — 🟡 vorgeplant (2026-07-08)
|
||||||
- [ ] Kanban-Board: Spalten = Status, Karten ziehen = Status wechseln; Spaltenkopf mit Anzahl + Summe
|
- [x] Kanban-Board: Spalten = Status, Karten ziehen = Status wechseln; Spaltenkopf mit Anzahl + Summe + Win-%
|
||||||
- [ ] Karten: Titel, Summe (nur für Berechtigte), Avatar, Termin, max. 3 Tags, »hängt fest«-Marker
|
- [x] Karten: Titel, Summe (nur für Berechtigte, sonst »—«), Avatar, Termin, max. 3 Tags, »hängt fest«-Marker — Karten-Layout bewusst NICHT editierbar (v1)
|
||||||
- [ ] Gewonnen = kurze Bestätigung · Verloren = Grund ist Pflicht
|
- [x] Gewonnen **regel-basiert** (Davids Delta): Spalten-Regel »Auto-Verschieben nach Board X« → kein Dialog; ohne Regel → Auswahl-Dialog · Verloren = Grund ist Pflicht
|
||||||
- [ ] Board-Wechsler (Vertrieb / Auftrag / eigene), Filter + »nur meine«, live
|
- [x] Board-Wechsler (Vertrieb / Auftrag / eigene, rechte-gefiltert), Filter + »nur meine«, live
|
||||||
- [ ] Projekt-Liste über alle Boards (Filter, CSV)
|
- [x] Projekt-Liste über alle Boards (Filter, CSV)
|
||||||
- [ ] Projekt-Detailseite (klickbare Status-Leiste, Status-Verlauf, Herkunft »kam aus Anfrage X«, Gewonnen/Verloren-Banner mit 24-h-Rückgängig)
|
- [x] Projekt-Detailseite nach P6-Karteikarten-Muster (klickbare Status-Leiste, Verlauf mit Verweildauer, Herkunft, 24-h-Rückgängig, Kontakt-Rollen Auftraggeber/Bauherr/Rechnungsempfänger/Ansprechpartner)
|
||||||
- [ ] Board-Einstellungen (Spalten anlegen/sortieren/färben, Zugriff je Rolle, Pflichtfelder + Sichtbarkeit je Feld)
|
- [x] Board-Einstellungen mit **zwei Einstiegen** (im Board + Einstellungen → Arbeitsweise → Boards): Spalten, Rollen-Zugriff, Spalten-Regeln
|
||||||
- [ ] Verlust-Gründe verwalten (SHK-Vorlagen vorbefüllt)
|
- [x] **Edit-Mode (Davids Konzept):** Detailansicht als WYSIWYG-Schablone — Felder verschieben/hinzufügen, sichtbar/Pflicht, Berechtigung je Feld (nur Detailansicht, nicht die Karte)
|
||||||
- [ ] Zahlen-Grundlage fürs Dashboard (Prognose, Abschlussquoten) — kein eigener Screen
|
- [x] Verlust-Gründe verwalten (SHK-Vorlagen vorbefüllt)
|
||||||
|
- [x] Zahlen-Grundlage fürs Dashboard (Prognose, Abschlussquoten) — kein eigener Screen
|
||||||
- Merken: Ein Projekt-Datensatz, Boards sind nur Sichten (AD-20).
|
- Merken: Ein Projekt-Datensatz, Boards sind nur Sichten (AD-20).
|
||||||
|
- Paket: `02 Wireframes/P8 Pipelines/WF-P8 Pipelines/` (Screens validiert; Subframe steht aus)
|
||||||
|
|
||||||
### Auftrag & Baustelle
|
### Auftrag & Baustelle
|
||||||
|
|
||||||
#### Projekt-Akte (Auftrag) 📱 — `D-P9` — ⬜ offen
|
#### Projekt-Akte (Auftrag) 📱 — `D-P9` — 🟡 vorgeplant (2026-07-09)
|
||||||
- [ ] Reiter am Projekt: Team-Mitglieder / Termine / **Rechnungen (neu)** / Checklisten inkl. Mängel / Aufgaben / Dateien / Abnahmen
|
- [x] Reiter am Projekt: Team-Mitglieder / Termine / **Rechnungen (neu)** / Checklisten inkl. Mängel / Aufgaben / Dateien / Abnahmen
|
||||||
- [ ] Rechnung am Projekt (Nummer, Betrag, Status: Entwurf → gestellt → bezahlt/storniert, PDF)
|
- [x] Rechnung am Projekt (Nummer, Betrag, Status: Entwurf → gestellt → bezahlt/storniert, PDF)
|
||||||
- [ ] Board-Einstellung »Abnahme Pflicht vor Status X« + Auto-Archiv nach N Tagen
|
- [x] Board-Einstellung »Abnahme Pflicht vor Status X« + Auto-Archiv nach N Tagen
|
||||||
- [ ] Abnahme-Formular-Vorlagen (aus dem Formular-Baukasten, SHK-Vorlage vorbefüllt)
|
- [x] Abnahme-Formular-Vorlagen (aus dem Formular-Baukasten, SHK-Vorlage vorbefüllt)
|
||||||
- [ ] Projekt-Vorlagen (Standard-Board, Team, Aufgaben, Termine vorbefüllt)
|
- [x] Projekt-Vorlagen (Standard-Board, Team, Aufgaben, Termine vorbefüllt)
|
||||||
- [ ] Banner »offene Mängel«; Handy-Ansicht (Stammdaten, heutige Aufgaben, Abnahme-Knopf, Foto-Upload)
|
- [x] Banner »offene Mängel«; Handy-Ansicht (Stammdaten, heutige Aufgaben, Abnahme-Knopf, Foto-Upload)
|
||||||
- v2: Material, Zeiterfassung, Leistungspositionen, KWP.
|
- v2: Material, Zeiterfassung, Leistungspositionen, KWP.
|
||||||
|
|
||||||
#### Plantafel (Einsatzplanung) 📱 — `D-PLAN` — ⬜ offen
|
- Paket: `02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/` (Screens validiert; Subframe steht aus)
|
||||||
- [ ] Planungs-Raster: Zeilen = Mitarbeiter, Spalten = Zeit (Tag/Woche/Monat), Einsätze ziehen/verlängern
|
|
||||||
- [ ] Klick auf freien Slot = neuer Einsatz; Status-Kette geplant → bestätigt → unterwegs → fertig; mehrere auf einmal umplanen
|
|
||||||
- [ ] Konflikt-Warnung (doppelt verplant, Urlaub/krank, außerhalb Arbeitszeit) mit »Trotzdem zuweisen?«
|
|
||||||
- [ ] Kalender-Abgleich-Anzeige je Einsatz
|
|
||||||
- [ ] Monteur-Handy-Modus »Meine Termine heute« / »Meine Woche« (Adresse + Navi-Link, Status per Tipp, offline)
|
|
||||||
|
|
||||||
#### Abnahme (Baustellen-Protokoll) 📱 — `D-ABN` — ⬜ offen
|
#### Plantafel (Einsatzplanung) 📱 — `D-PLAN` — 🟡 vorgeplant (2026-07-09)
|
||||||
- [ ] Abnahme-Formular (Datum, Anwesende, Druckprobe, Funktionsprüfung, Zählerstände, übergebene Dokumente, Bemerkungen)
|
- [x] Planungs-Raster: Zeilen = Mitarbeiter, Spalten = Zeit (Tag/Woche/Monat), Einsätze ziehen/verlängern
|
||||||
- [ ] Mängel einzeln erfassen, je mit Foto + Einstufung (kritisch/klein/kosmetisch)
|
- [x] Klick auf freien Slot = neuer Einsatz; Status-Kette geplant → bestätigt → unterwegs → fertig; mehrere auf einmal umplanen
|
||||||
- [ ] Mit Mängeln abgenommen → Mängel werden Aufgaben · Abgelehnt → zurück in Ausführung + Meldung an Projektleiter
|
- [x] Konflikt-Warnung (doppelt verplant, Urlaub/krank, außerhalb Arbeitszeit) mit »Trotzdem zuweisen?«
|
||||||
- [ ] Unterschrift Kunde + Monteur direkt auf dem Gerät
|
- [x] Kalender-Abgleich-Anzeige je Einsatz
|
||||||
- [ ] PDF + automatische Mail an den Kunden; danach unveränderbar (6 Jahre)
|
- [x] Monteur-Handy-Modus »Meine Termine heute« / »Meine Woche« (Adresse + Navi-Link, Status per Tipp, offline)
|
||||||
- [ ] Offline ausfüllbar, lädt später hoch; mehrere (Teil-)Abnahmen je Projekt + Übersichts-Liste
|
|
||||||
|
- Validiert: Monteur-Modus = EIN Frame (Heute ↔ Woche); Konflikt-Dialog wird gebaut
|
||||||
|
- Paket: `02 Wireframes/P9 Auftrag/WF-P9 Plantafel/` (Screens validiert; Subframe steht aus)
|
||||||
|
|
||||||
|
#### Abnahme (Baustellen-Protokoll) 📱 — `D-ABN` — 🟡 vorgeplant (2026-07-09)
|
||||||
|
- [x] Abnahme-Formular (Datum, Anwesende, Druckprobe, Funktionsprüfung, Zählerstände, übergebene Dokumente, Bemerkungen)
|
||||||
|
- [x] Mängel einzeln erfassen, je mit Foto + Einstufung (kritisch/klein/kosmetisch)
|
||||||
|
- [x] Mit Mängeln abgenommen → Mängel werden Aufgaben · Abgelehnt → zurück in Ausführung + Meldung an Projektleiter
|
||||||
|
- [x] Unterschrift Kunde + Monteur direkt auf dem Gerät
|
||||||
|
- [x] PDF + automatische Mail an den Kunden; danach unveränderbar (6 Jahre)
|
||||||
|
- [x] Offline ausfüllbar, lädt später hoch; mehrere (Teil-)Abnahmen je Projekt + Übersichts-Liste
|
||||||
|
|
||||||
### E-Mail-Marketing
|
### E-Mail-Marketing
|
||||||
|
|
||||||
|
- Validiert: mehrstufiger Ablauf (Prüfungen → Mängel → Unterschriften)
|
||||||
|
- Paket: `02 Wireframes/P9 Auftrag/WF-P9 Abnahme/` (Screens validiert; Subframe steht aus)
|
||||||
|
|
||||||
#### Kampagnen & Empfängerlisten — `D-KAMP` — ⬜ offen
|
#### Kampagnen & Empfängerlisten — `D-KAMP` — ⬜ offen
|
||||||
- [ ] Kampagne in 6 Schritten: Absender → Inhalt (Editor, Platzhalter wie {Vorname}, Pflicht-Fußzeile, Desktop-/Handy-Vorschau) → Empfänger → Test-Mail (max. 5) → Zeitpunkt → letzter Check
|
- [ ] Kampagne in 6 Schritten: Absender → Inhalt (Editor, Platzhalter wie {Vorname}, Pflicht-Fußzeile, Desktop-/Handy-Vorschau) → Empfänger → Test-Mail (max. 5) → Zeitpunkt → letzter Check
|
||||||
- [ ] Letzter Check blockiert Versand bei Rot (Domain bestätigt? Abmelde-Link? Impressum? Tageslimit?)
|
- [ ] Letzter Check blockiert Versand bei Rot (Domain bestätigt? Abmelde-Link? Impressum? Tageslimit?)
|
||||||
@@ -274,7 +284,7 @@ Abhaken = in der groben Planung berücksichtigt (Screens/Flow verortet). Quelle:
|
|||||||
|
|
||||||
### Termine & Formulare
|
### Termine & Formulare
|
||||||
|
|
||||||
#### Formulare (Baukasten) 🌐 — `D-FORM` + `D-P16` (Teil) — ⬜ offen
|
#### Formulare (Baukasten) 🌐 — `D-FORM` + `D-P16` (Teil) — ⬜ zurückgestellt (2026-07-09: Davids Mitarbeiter:in arbeitet daran; Infos folgen von David)
|
||||||
- [ ] Formular-Baukasten: Felder per Ziehen anordnen (12 Feld-Typen), Feld-Einstellungen, Live-Vorschau
|
- [ ] Formular-Baukasten: Felder per Ziehen anordnen (12 Feld-Typen), Feld-Einstellungen, Live-Vorschau
|
||||||
- [ ] Wenn-Dann-Logik (»zeige Feld X, wenn Y = Z«)
|
- [ ] Wenn-Dann-Logik (»zeige Feld X, wenn Y = Z«)
|
||||||
- [ ] Veröffentlichen + Teilen: Link, QR-Code, Website-Einbettung
|
- [ ] Veröffentlichen + Teilen: Link, QR-Code, Website-Einbettung
|
||||||
@@ -357,23 +367,28 @@ Abhaken = in der groben Planung berücksichtigt (Screens/Flow verortet). Quelle:
|
|||||||
|
|
||||||
### Automationen
|
### Automationen
|
||||||
|
|
||||||
#### Automations-Baukasten (Flow-Editor) — `D-FLOW` — ⬜ offen
|
#### Automations-Baukasten (Flow-Editor) — `D-FLOW` — 🟡 vorgeplant (2026-07-09)
|
||||||
- [ ] Zeichenfläche: Bausteine setzen, verbinden, verschieben, duplizieren; rückgängig/wiederholen; Mini-Übersichtskarte; automatisch anordnen
|
- [x] Zeichenfläche: Bausteine setzen, verbinden, verschieben, duplizieren; rückgängig/wiederholen; Mini-Übersichtskarte; automatisch anordnen
|
||||||
- [ ] Baustein-Katalog nach Modul: Auslöser (neue Anfrage, Status-Wechsel, Formular, Buchung, Zeitplan, Webhook …) + Aktionen (Aufgabe, Mail, Benachrichtigung, Wenn-Dann, Warten, Schleife, HTTP)
|
- [x] Baustein-Katalog nach Modul: Auslöser (neue Anfrage, Status-Wechsel, Formular, Buchung, Zeitplan, Webhook …) + Aktionen (Aufgabe, Mail, Benachrichtigung, Wenn-Dann, Warten, Schleife, HTTP)
|
||||||
- [ ] Einstellungs-Panel je Baustein, alles in verständlichem Deutsch, mit Fehler-Hinweisen (nicht verbunden, unvollständig)
|
- [x] Einstellungs-Panel je Baustein, alles in verständlichem Deutsch, mit Fehler-Hinweisen (nicht verbunden, unvollständig)
|
||||||
- [ ] Probelauf-Vorschau: »trifft X Datensätze« + Beispiele — ab Schwelle Pflicht-Bestätigung vor dem Aktivieren
|
- [x] Probelauf-Vorschau: »trifft X Datensätze« + Beispiele — ab Schwelle Pflicht-Bestätigung vor dem Aktivieren
|
||||||
- [ ] Schleifen-Warnung mit Abhängigkeits-Bild + »Beheben«-Knopf; Auto-Pause bei Anomalien
|
- [x] Schleifen-Warnung mit Abhängigkeits-Bild + »Beheben«-Knopf; Auto-Pause bei Anomalien
|
||||||
- Sprach-Eingabe → gestrichen (keine KI in v1). **Aufwendigste UI der App, früh anfangen.**
|
- Sprach-Eingabe → gestrichen (keine KI in v1). **Aufwendigste UI der App, früh anfangen.**
|
||||||
|
|
||||||
#### Automationen: Übersicht & Verläufe — `D-P12` — ⬜ offen
|
- Validiert: Katalog links · Canvas Mitte · Konfig rechts; Start-Auswahl mit Vorlagen; Probelauf + Schleifen-Warnung als Modals
|
||||||
- [ ] Liste aller Automationen (aktiv/pausiert/Entwurf, Läufe der letzten 30 Tage, »nur meine«)
|
- Paket: `02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/` (Screens validiert; Subframe = Langläufer)
|
||||||
- [ ] Lauf-Liste + Lauf-Detail: Schritt für Schritt in Klartext (was, womit, wie lange, Ergebnis)
|
|
||||||
- [ ] 24 h rückgängig (Countdown-Knopf), fehlgeschlagenen Schritt neu anstoßen, ab Schritt X fortsetzen
|
#### Automationen: Übersicht & Verläufe — `D-P12` — 🟡 vorgeplant (2026-07-09)
|
||||||
- [ ] Vorlagen-Katalog (SHK-Vorlagen + eigene aus bestehender Automation erstellen)
|
- [x] Liste aller Automationen (aktiv/pausiert/Entwurf, Läufe der letzten 30 Tage, »nur meine«)
|
||||||
- [ ] Baustein-Einstellungs-Inhalte (werden im Flow-Editor eingeblendet)
|
- [x] Lauf-Liste + Lauf-Detail: Schritt für Schritt in Klartext (was, womit, wie lange, Ergebnis)
|
||||||
|
- [x] 24 h rückgängig (Countdown-Knopf), fehlgeschlagenen Schritt neu anstoßen, ab Schritt X fortsetzen
|
||||||
|
- [x] Vorlagen-Katalog (SHK-Vorlagen + eigene aus bestehender Automation erstellen)
|
||||||
|
- [x] Baustein-Einstellungs-Inhalte (werden im Flow-Editor eingeblendet)
|
||||||
|
|
||||||
### HR
|
### HR
|
||||||
|
|
||||||
|
- Paket: `02 Wireframes/P12 Automationen/WF-P12 Verwaltung/` (Screens validiert; Subframe steht aus)
|
||||||
|
|
||||||
#### HR-Bereich 📱 — `D-HR` — ⬜ offen
|
#### HR-Bereich 📱 — `D-HR` — ⬜ offen
|
||||||
- [ ] HR-Startseite (angepinnte Ankündigungen, offene Pflichten, meine Anträge, wer ist heute da, Geburtstage, Schnell-Knöpfe »krank melden / Urlaub beantragen«)
|
- [ ] HR-Startseite (angepinnte Ankündigungen, offene Pflichten, meine Anträge, wer ist heute da, Geburtstage, Schnell-Knöpfe »krank melden / Urlaub beantragen«)
|
||||||
- [ ] Ankündigungen (Bestätigungs-Knopf + Lese-Nachweis, Reaktionen, Kommentare) + Verwaltung
|
- [ ] Ankündigungen (Bestätigungs-Knopf + Lese-Nachweis, Reaktionen, Kommentare) + Verwaltung
|
||||||
|
|||||||
Reference in new issue
Block a user