Interaction
Mit dem Interaction-Modul hast du Button und Badge in einem. Denn während der Entwicklung dachten wir uns: Ist ein Button nicht einfach ein Badge mit Click-Action und anderem Styling? Um diese Styling-Unterschiede einfacher zu gestalten, haben wir die Nutzung von CSS-Klassen eingeführt.
Funktion und Aussehen
Das Interaction-Modul ist auf den ersten Blick dem Layout-Modul ziemlich ähnlich, hat aber einen entscheidenden Unterschied: Den Class-Key. Hierüber kannst du deinem Interaction-Element CSS-Klassen zuweisen, die von dir oder uns im Globalen Code definiert wurden. So kannst du beispielsweise ein einheitliches Erscheinungsbild für alle Buttons in deiner Anwendung erzielen.
Natürlich kannst du im Interaction-Modul nicht nur die Class, sondern auch den Style-Key für Inline-CSS nutzen. Beachte dabei, dass Inline-Styles immer Vorrang haben und die Class-Styles überschreiben, sofern sie dieselbe Property (z.B. background-color) betreffen.
Den Aufbau deines Interaction-Elements kannst du mithilfe von Blocks entweder horizontal (von links nach rechts) oder vertikal (von oben nach unten) anordnen. Der Inhalt der Blocks ist frei gestaltbar und kann beispielsweise Text, andere GIP- oder arcRider-Module sowie HTML-Elemente enthalten.
Nutzer-Interaktion
Der wichtigste Teil des Interaction-Moduls ist natürlich die Gestaltung der Nutzer-Interaktion. Auch hier lassen wir dir alle Freiheiten. Sowohl dem Interaction-Modul selbst, als auch den Blocks kannst du eine beliebige Anzahl an Actions zuweisen. Jede Action besteht aus einem auslösenden Trigger und einem Array von Scripts, die bei Auslösen des Triggers ausgeführt werden. Als Trigger können Klick, Mausbewegung und alle weiteren HTML Mouse Events eingesetzt werden. Je nach Anwendung können auch andere HTML Events funktionieren. Eine Liste solcher Events findest du beispielsweise hier. Weitere Infos zu Actions findest du in diesem Teil unserer Doku.
Warum gibt es ein Interaction-Modul, wenn es dem Layout so ähnlich ist?
Wir haben uns aus zwei Hauptgründen zur Unterscheidung zwischen Layout und Interaction entschieden:
- Übersichtlichere Ninox-Code-Strukturierung durch die unterschiedlichen Namen. Layout ist der Container, Interaction ein interaktives Element.
- Schlanker und performanter Layout-Code. Unser Layout Code besteht nur aus dem Nötigsten und ist sehr performant. Wenn du viele Layouts gleichzeitig nutzt, würde jede berechnete Class die Geschwindigkeit der Layouts etwas verlangsamen.
Modulcode
GIP_interaction({
uniqueId: "",
embedded: {
},
blocks: [{
value: *any*,
}],
})
html( raw(GIP_master({})) +
raw(GIP_interaction({
uniqueId: "",
embedded: {
height: "",
styleHtml: "",
styleStri: "",
},
direction: "",
class: "",
style: "",
blocks: [{
style: "",
value: *any*,
actions: [{
trigger: "",
scripts: [{
type: "",
tableId: "",
viewId: "",
recordId: "",
tab: "",
fieldId: "",
dialogId: "",
value: *any*,
changeFieldValues: [{
fieldId: "",
value: *any*,
}],
displayAfterCreate: "",
setNewRecordId: [{
recordId: "",
fieldId: "",
}],
showCloseButton: true,
showAsModal: true,
}],
}],
}],
actions: [{
trigger: "",
scripts: [{
type: "",
tableId: "",
viewId: "",
recordId: "",
tab: "",
fieldId: "",
dialogId: "",
value: *any*,
changeFieldValues: [{
fieldId: "",
value: *any*,
}],
displayAfterCreate: "",
setNewRecordId: [{
recordId: "",
fieldId: "",
}],
showCloseButton: true,
showAsModal: true,
}],
}],
})
))
Key-Table
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|