Das Flow UI Toolkit ermöglicht die visuelle Erstellung und Bearbeitung von individuellem Workflow in der doorbit App und in doorbit Web. Sie können verschiedene UI-Elemente per Drag & Drop platzieren, deren Eigenschaften anpassen und mehrsprachige Inhalte verwalten.
Die Hauptnavigation bietet folgende Funktionen:
- Neu: Erstellt einen neuen, leeren Flow
- Öffnen: Lädt einen bestehenden Flow aus einer JSON-Datei
- Speichern: Speichert den aktuellen Flow als JSON-Datei
- Rückgängig/Wiederholen: Ermöglicht das Rückgängigmachen und Wiederholen von Änderungen
- Selektionsmodus: Aktiviert Multi-Selektion zum Gruppieren mehrerer Elemente
- Mehrere Seiten pro Flow verwalten
- Seiten über Tabs navigieren
- Seiten durch Drag & Drop neu anordnen
- Seiten hinzufügen, bearbeiten oder löschen
- Seitentitel in mehreren Sprachen anpassen
- Material Design Icons für Seiten auswählen
- Seiten aus externen JSON-Dateien importieren
- Klicken Sie auf das Bearbeiten-Symbol (Stift) neben dem Seiten-Tab
- Im Dialog können Sie folgende Eigenschaften anpassen:
- Titel in verschiedenen Sprachen (lang und kurz)
- Icon aus der Material Design Bibliothek
- Layout der Seite
- Verknüpfung mit korrespondierenden Seiten
- Klicken Sie im Seiten-Dialog auf "Icon auswählen"
- Wählen Sie eine Kategorie (z.B. "Haus & Gebäude", "Smart Home & HVAC")
- Nutzen Sie die Suchfunktion für spezifische Icons
- Klicken Sie auf ein Icon, um es auszuwählen
Sie können komplette Seiten aus einer anderen JSON-Datei in den aktuellen Flow importieren:
- Klicken Sie auf das Import-Symbol (Pfeil nach oben) neben dem „+"-Button in der Seitennavigation
- Im Import-Dialog klicken Sie auf „Datei auswählen" und wählen eine JSON-Datei aus
- Die verfügbaren Seiten der Quelldatei werden als Liste angezeigt
- Wählen Sie die gewünschten Seiten per Checkbox aus (oder nutzen Sie „Alle auswählen")
- Klicken Sie auf „Importieren"
Hinweise:
- Die importierten Seiten erhalten neue interne IDs (UUIDs), um Konflikte zu vermeiden
- Sowohl die Edit- als auch die zugehörigen View-Seiten werden automatisch als Paar importiert
- Die
field_id-Werte der Elemente bleiben erhalten, damit die Datenbindung innerhalb der importierten Seite intakt bleibt - Undo/Redo wird unterstützt – ein Import kann rückgängig gemacht werden
- Ungültige oder leere JSON-Dateien werden mit einer Fehlermeldung abgewiesen
-
Text (Anzeige) (
TextUIElement): Für statische Textanzeige wie Überschriften oder Absätze- Wird nicht vom Benutzer bearbeitet
- Dient zur Information und Strukturierung
- Unterstützt Überschriften (HEADING) und Absätze (PARAGRAPH)
-
Texteingabe (
StringUIElement): Für Benutzereingaben von Text- Ermöglicht Benutzereingabe von Textdaten
- Speichert eingegebene Werte in einem Feld
- Unterstützt einzeilige und mehrzeilige Eingaben
- Bietet Validierungsoptionen (Mindest-/Maximallänge, Muster)
- Kann Platzhaltertext und Standardwerte haben
Wichtig: Verwenden Sie Text (Anzeige) für statische Inhalte und Texteingabe wenn Benutzer Text eingeben sollen.
- Boolean: Ja/Nein-Auswahl (Checkbox/Toggle)
- Einzelauswahl: Dropdown oder Button-Gruppe
- Chip-Gruppe: Mehrere aktivierbare Optionen
- Nummern: Ganzzahlen oder Dezimalzahlen mit Min/Max-Werten
- Datum: Auswahl von Jahr, Monat, Tag, Stunde oder Minute
- Datei: Datei-Upload mit Typ-Beschränkungen
- Gruppe: Fasst mehrere Elemente zusammen
- Array: Ermöglicht wiederholbare Elementgruppen
- Benutzerdefiniert: Spezielle Komponenten für spezifische Anwendungsfälle:
- Scanner: Scan- und doorbit Studio Integration. Hier können die Screens während des Scans bearbeitet und individualisiert werden
- Adresse: Strukturierte Adresseingabe mit Validierung
- Standort: GPS-Koordinaten und Kartenintegration
- Umgebung: Statistiken für den Standort, wie Altersverteilung und das Bildungsniveau der Bevölkerung
- Element aus der Palette auswählen
- Per Drag & Drop im Editor platzieren
- Position durch Ziehen anpassen
- Titel und Beschreibungen (mehrsprachig)
- Pflichtfeld-Status
- Elementspezifische Einstellungen
- Sichtbarkeitsregeln
Sie können mehrere Elemente auswählen und zu einer neuen Gruppe zusammenfassen:
- Klicken Sie auf das Selektionsmodus-Symbol (Checkbox-Icon) in der Werkzeugleiste des Editors
- Im aktiven Selektionsmodus erscheinen Checkboxen neben jedem Element
- Wählen Sie die gewünschten Elemente per Checkbox aus
- Ein schwebender Aktionsbalken am unteren Bildschirmrand zeigt die Anzahl der selektierten Elemente an
- Aktivieren Sie den Selektionsmodus und wählen Sie mindestens ein Element aus
- Klicken Sie im Aktionsbalken auf „Zu Gruppe zusammenfassen"
- Geben Sie im Dialog einen Gruppentitel und eine field_id ein (wird automatisch vorgeschlagen)
- Klicken Sie auf „Zusammenfassen"
- Die ausgewählten Elemente werden in ein neues
GroupUIElementeingebettet
Validierungsregeln:
- Alle selektierten Elemente müssen sich auf derselben Hierarchieebene befinden
- Elemente innerhalb eines Arrays können nicht gruppiert werden
- Elemente innerhalb eines SubFlows können nicht gruppiert werden
- Chips innerhalb einer Chip-Gruppe können nicht gruppiert werden
- Bereits vorhandene Gruppen können nicht erneut in eine Gruppe eingebettet werden
- Bei Verstößen wird eine verständliche Fehlermeldung angezeigt
- Klicken Sie auf eine bestehende Gruppe im Editor
- Klicken Sie auf das Auflösen-Symbol (Ungroup-Icon) in der Elementkarte
- Die Gruppe wird entfernt und ihre Kinder-Elemente werden an der ursprünglichen Position der Gruppe eingefügt
Hinweise:
- Die
field_id-Werte der verschobenen Elemente bleiben unverändert - Undo/Redo wird vollständig unterstützt
- Der Selektionsmodus wird nach dem Gruppieren automatisch deaktiviert
Sie können ein Element (einschließlich aller verschachtelten Kinder) auf eine andere Seite innerhalb desselben Flows kopieren:
- Klicken Sie auf das Kopier-Symbol (zwei übereinanderliegende Seiten) in der Elementkarte
- Wählen Sie im Dialog die Zielseite aus der Liste aller verfügbaren Seiten
- Wählen Sie die Position: „Am Anfang der Seite" oder „Am Ende der Seite"
- Klicken Sie auf „Kopieren"
Hinweise:
- Das kopierte Element erhält neue UUIDs und neue
field_id-Werte, um Duplikat-Konflikte innerhalb desselben Flows zu vermeiden - Alle verschachtelten Elemente (Gruppen, Arrays, etc.) werden vollständig tief-kopiert
- Sichtbarkeitsbedingungen, die auf Felder anderer Seiten verweisen, bleiben funktionsfähig
- Ein Erfolgs-Snackbar bestätigt die Kopie
- Undo/Redo wird unterstützt
Sie können ein Element in eine externe JSON-Datei exportieren, ohne den aktuellen Flow zu verändern:
- Klicken Sie auf das Export-Symbol (Teilen-Icon) in der Elementkarte
- Klicken Sie im Dialog auf „Zieldatei auswählen" und wählen Sie eine JSON-Datei aus
- Die Seiten der Zieldatei werden angezeigt – wählen Sie die Zielseite aus
- Wählen Sie die Position: „Am Anfang der Seite" oder „Am Ende der Seite"
- Klicken Sie auf „Exportieren"
- Die modifizierte Zieldatei wird automatisch als
[Dateiname]_modified.jsonheruntergeladen
Hinweise:
- Der aktuelle Flow wird nicht verändert – nur die Zieldatei erhält das neue Element
- Die
field_id-Werte werden beibehalten (kein Konflikt, da unterschiedliche Flows) - UUIDs werden neu generiert, um Eindeutigkeit in der Zieldatei zu gewährleisten
- Falls das Element Sichtbarkeitsbedingungen mit Feldverweisen enthält, wird eine Warnung angezeigt, da diese Felder in der Zieldatei möglicherweise nicht existieren
- Unterstützt alle Elementtypen einschließlich verschachtelter Gruppen und Arrays
-
Strukturnavigator: Zeigt die hierarchische Struktur aller Elemente
- Einfache Navigation durch verschachtelte Elemente (bis zu 6 Ebenen)
- Direkte Auswahl von Unterelementen
- Übersichtliche Darstellung der Elementhierarchie
- Anzeige des Containertyps (Gruppe, Array, Chip-Gruppe, etc.)
- Farbliche Unterscheidung verschiedener Containertypen
- Anzeige der Anzahl von Unterelementen
-
EnhancedPropertyEditor: Verbesserte Eigenschaftsbearbeitung
- Tabs für verschiedene Kategorien (Allgemein, Sichtbarkeit, Unterelemente, JSON)
- Spezialisierte Editoren für jeden Elementtyp
- Umfassende Bearbeitung aller Elementeigenschaften
- Anzeige des Containertyps im Header
- Verbesserte Strukturnavigation für Unterelemente
- Unterstützung für komplexe JSON-Strukturen
-
ElementContextView: Kontextinformationen zum ausgewählten Element
- Anzeige des Elementpfads mit Containertyp-Informationen
- Schnellzugriff auf übergeordnete Elemente
- Kontextbezogene Aktionen je nach Containertyp
- Detaillierte Anzeige von Elementeigenschaften
- Verbesserte Darstellung von Unterelementen
- Containertyp-spezifische Aktionsschaltflächen
- Element auf andere Seite kopieren (Kopier-Symbol)
- Element in andere JSON-Datei exportieren (Export-Symbol)
- Gruppe auflösen (bei GroupUIElement-Elementen)
Elemente können verschachtelt werden:
- Gruppe oder Array-Element erstellen
- Weitere Elemente per Drag & Drop in das Container-Element ziehen
- Verschachtelungstiefe nach Bedarf erweitern (bis zu 6 Ebenen werden unterstützt)
- Gruppe (group): Fasst mehrere Elemente zusammen, kann alle Elementtypen enthalten
- Array (array): Ermöglicht wiederholbare Elementgruppen, kann alle Elementtypen enthalten
- Chip-Gruppe (chipgroup): Enthält nur Boolean-Elemente als Auswahloptionen
- Benutzerdefiniert (custom): Kann sowohl Elemente als auch Subflows enthalten
- Subflow (subflow): Spezielle Container für komplexe Workflows
- Nutzen Sie die Breadcrumb-Navigation oben im Editor, um durch die Hierarchie zu navigieren
- Verwenden Sie den Strukturnavigator, um direkt zu bestimmten Elementen zu springen
- Nutzen Sie die containertyp-spezifischen Schaltflächen in der ElementContextView
- Beachten Sie die farbliche Kennzeichnung der verschiedenen Containertypen
- Nutzen Sie Gruppenelemente als Container für zusammengehörige Elemente, die dann in der App und im Web auch eine optische Gruppierung bilden
- Duplizieren Sie ähnliche Elemente statt sie neu zu erstellen
- Verwenden Sie die JSON-Vorschau für technische Überprüfungen
- Verschieben Sie mit Pfeilelementen die Elemente bei Bedarf, um die Reihenfolge jederzeit zu ändern
- Seiten können Sie einfach mit Drag & Drop neu anordnen
- Nutzen Sie die Containertyp-Anzeige, um schnell zu erkennen, welche Art von Container Sie bearbeiten
- Verwenden Sie die verbesserte Strukturnavigation, um schnell durch komplexe Hierarchien zu navigieren
- Beachten Sie die farbliche Kennzeichnung der verschiedenen Containertypen für eine bessere Übersicht
- Nutzen Sie die Multi-Selektion, um mehrere Elemente gleichzeitig in eine Gruppe zusammenzufassen – schneller als einzelnes Drag & Drop
- Importieren Sie Seiten aus bestehenden Flows, um bewährte Seitenstrukturen wiederzuverwenden
- Kopieren Sie Elemente zwischen Seiten, um konsistente Formularstrukturen aufzubauen
- Exportieren Sie Elemente in andere JSON-Dateien, um Flows projektübergreifend zu standardisieren
- Füllen Sie alle Sprachversionen direkt aus
- Nutzen Sie konsistente Bezeichnungen
- Prüfen Sie die Textlängen in allen Sprachen
- Gruppieren Sie zusammengehörige Elemente
- Nutzen Sie aussagekräftige Titel
- Halten Sie die Verschachtelungstiefe überschaubar (max. 6 Ebenen werden optimal unterstützt)
- Verwenden Sie den passenden Containertyp für Ihre Anforderungen:
- Gruppen für statische Zusammenfassungen
- Arrays für wiederholbare Elemente
- Chip-Gruppen für Mehrfachauswahl
- Custom-Elemente für spezielle Funktionalitäten
- Subflows für komplexe Teilabläufe
- Nutzen Sie die Strukturnormalisierung für konsistente JSON-Ausgabe
- Achten Sie auf die Validierungshinweise bei der JSON-Vorschau
- Nutzen Sie den verbesserten VisibilityConditionEditor für komplexe Bedingungen
- Kombinieren Sie Bedingungen mit logischen Operatoren (UND, ODER, NICHT)
- Verwenden Sie feldbasierte Bedingungen für dynamische Anzeige
- Nutzen Sie kontextbasierte Bedingungen für verschiedene Anwendungsfälle (Erstellen, Bearbeiten, Ansicht)
- Logische Gruppierung verwandter Felder
- Klare Hierarchie der Informationen
- Konsistente Benennungen
- Eindeutige Beschriftungen
- Hilfreiche Beschreibungstexte
- Sinnvolle Default-Werte
-
Wie sichere ich meine Arbeit?
- Regelmäßig über "Speichern" als JSON exportieren
- Backups wichtiger Flows anlegen
-
Kann ich Änderungen rückgängig machen?
- Ja, über die Undo/Redo-Funktionen in der Werkzeugleiste
-
Welche Dateiformate werden unterstützt?
- Import/Export erfolgt im JSON-Format
- Falls Bilder gezeigt werden sollen in dem Workflow, dann müssen diese aktuell noch separat an uns übermittelt werden
-
Wie funktioniert die Mehrsprachigkeit?
- Texte werden in allen konfigurierten Sprachen gespeichert
- Sprachen können flexibel erweitert werden
-
Wie tief können Elemente verschachtelt werden?
- Bis zu 6 Ebenen werden optimal unterstützt
- Tiefere Verschachtelungen sind möglich, aber die Navigation wird komplexer
-
Was sind Containertypen und wie nutze ich sie?
- Containertypen (group, array, chipgroup, custom, subflow) definieren das Verhalten von Elementen
- Die Anzeige des Containertyps hilft bei der Navigation und Bearbeitung
- Jeder Containertyp hat spezifische Eigenschaften und Verwendungszwecke
-
Wie werden komplexe JSON-Strukturen unterstützt?
- Die Strukturnormalisierung sorgt für konsistente JSON-Ausgabe
- Die Validierung prüft die Struktur auf Fehler
- Komplexe Strukturen wie doorbit_original.json werden unterstützt
-
Wie kann ich mehrere Elemente gleichzeitig gruppieren?
- Aktivieren Sie den Selektionsmodus über das Checkbox-Symbol in der Werkzeugleiste
- Wählen Sie die gewünschten Elemente per Checkbox aus
- Klicken Sie auf „Zu Gruppe zusammenfassen" im schwebenden Aktionsbalken
- Alle Elemente müssen auf derselben Ebene liegen
-
Wie kann ich eine Gruppe wieder auflösen?
- Wählen Sie die Gruppe im Editor aus
- Klicken Sie auf das Auflösen-Symbol (Ungroup) in der Elementkarte
- Die Kinder-Elemente werden an der Position der Gruppe eingefügt
-
Wie kann ich Seiten aus einem anderen Flow übernehmen?
- Nutzen Sie die Import-Funktion neben dem „+"-Button in der Seitennavigation
- Wählen Sie die Quell-JSON-Datei aus und markieren Sie die gewünschten Seiten
- Die importierten Seiten erhalten neue IDs, behalten aber ihre interne Struktur bei
-
Was passiert mit field_ids beim Kopieren und Exportieren?
- Kopieren innerhalb desselben Flows:
field_id-Werte werden neu generiert, um Duplikate zu vermeiden - Exportieren in eine andere JSON-Datei:
field_id-Werte werden beibehalten, da kein Konflikt in einem anderen Flow besteht - Seitenimport:
field_id-Werte werden beibehalten, damit die Datenbindung innerhalb der Seite funktioniert
- Kopieren innerhalb desselben Flows:
-
Werden Sichtbarkeitsbedingungen beim Kopieren übernommen?
- Ja, Sichtbarkeitsbedingungen werden mitkopiert
- Beim Export in eine andere Datei wird eine Warnung angezeigt, falls Feldverweise existieren, die in der Zieldatei möglicherweise nicht vorhanden sind