a67921ec7423ef3971ca35247a13156d12498623
Zentraler DirtyGuard (dirtyguard.ts) mit DirtyMaskHelper-Klasse und 3-Button-Bestätigungs-Modal (Speichern/Verwerden/Abbrechen). Form meldet Dirty-State via onDirtyChange nach oben; input-Event ergänzt change für frühzeitiges Dirty-Marking. Alle App-Navigationen (Breadcrumb, Menü, In-Masken-Buttons, Abbrechen) laufen über guardedNavigate. Auto-Redraw bei dirty per e.redraw=false unterbunden, damit DOM-Eingaben erhalten bleiben (Input-Widget hat kein Live-Binding). Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
kbcrm
[Kurzbeschreibung folgt – Zweck und Ziel der Applikation]
Authentifizierung vollständig an Zitadel delegiert. Lokale Datenhaltung, Benutzer- und Rollenverwaltung über SQLite.
Technologie-Stack
| Komponente | Technologie |
|---|---|
| Backend | Python Flask 2.x |
| OIDC-Client | Authlib |
| Datenbank | SQLite via SQLAlchemy |
| IdP | Zitadel |
| Produktion | Docker / waitress |
| web-js-frontend | mithril.js |
Lokale Entwicklung
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # Zitadel-Credentials eintragen
flask db-init # Schema initialisieren
flask seed-db # Testdaten einspielen
flask run # App startet auf http://localhost:5000
Languages
TypeScript
61.1%
Python
31.6%
CSS
4.3%
Shell
1.4%
Dockerfile
0.8%
Other
0.8%