Skip to content

Progress

Mit unserem Progress-Modul kannst du ganz einfach den Fortschritt deiner Prozesse in Ninox visualisieren. Gleichzeitig ist das Modul auch ein Slider-Input, sodass die Werte interaktiv verändert werden können. Es kombiniert eine intuitive Bedienung mit flexiblen Anpassungsmöglichkeiten für dein Design.

Funktion und Aussehen

Das Progress-Modul kann in zwei verschiedenen Modi betrieben werden: Als reiner Anzeige-Fortschrittsbalken (contentEditable: false) oder als interaktiver Slider (contentEditable: true). Dadurch ist es ganz einfach, zwischen einer reinen Anzeige und einer interaktiven Nutzer-Eingabe zu wechseln.

In beiden Fällen hast du eine Vielzahl an Anpassungs- und Styling-Optionen zur Verfügung. So kannst du beispielsweise die Farben des Fortschrittsbalkens, die Schrittweite des Sliders, die Anzeige des Minimal- und Maximalwerts, die Formatierung der Zahlen und die Position des Labels anpassen. Wie bei allen anderen Modulen stellen wir dir dafür auf jeder Ebene den Style-Key zur Verfügung. Außerdem kannst du auf vielen Ebenen den Class-Key nutzen, um deine eigenen globalen Classes zu referenzieren.

Werte zwischenspeichern mit einer Form-ID

Das Progress-Modul ist vollständig kompatibel mit unserem Form-System. Das bedeutet, du kannst eine formId angeben, um den Wert eines Sliders temporär im Browser zwischenzuspeichern, anstatt ihn sofort in ein Ninox-Feld zu schreiben. Das ist besonders nützlich bei komplexen Formularen, bei denen der Benutzer erst am Ende alle Eingaben mit einem einzigen Klick speichern soll.

Um die zwischengespeicherten Werte aller Felder eines Formulars in die entsprechenden Ninox-Felder zu schreiben, nutzt du ein GIP-Element mit dem actions-Key (z.B. einen Button) und dem Script-Type submitGIPform.

Nutzer-Interaktion

Wenn contentEditable auf true gesetzt ist, können Benutzer den Slider durch Verschieben des Schiebereglers bedienen. Zusätzlich zur eigentlichen Slider-Funktion kannst du deinem Progress-Element 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. Weitere Infos zu Actions findest du in diesem Teil unserer Doku.

Modulcode

json
GIP_progress({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   recordId: raw(Nr),
   fieldId: "",
   minValue: 0,
   maxValue: 0,
   value: *any*,
})
json
GIP_progress({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   recordId: raw(Nr),
   fieldId: "",
   style: "",
   minValue: 0,
   maxValue: 0,
   track: {
   	style: "",
   },
   value: *any*,
   contentEditable: true,
})
json
GIP_progress({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   recordId: raw(Nr),
   fieldId: "",
   formId: "myForm" + Nr,
   class: "",
   style: "",
   minValue: 0,
   maxValue: 0,
   steps: {
   	value: *any*,
   },
   displayValue: {
   	class: "",
   	style: "",
   },
   track: {
   	style: "",
   },
   value: *any*,
   contentEditable: true,
   actions: [{
   	trigger: "click",
   	scripts: [{
   		type: "",
   	}],
   }],
})
json
GIP_progress({
   uniqueId: "",
   embedded: {
   	height: "",
   	styleHtml: "",
   	styleStri: "",
   	styleFn: "",
   	styleLabel: "",
   	styleComp: "",
   	presets: "",
   },
   recordId: "",
   fieldId: "",
   formId: "",
   class: "",
   style: "",
   minValue: 0,
   maxValue: 0,
   steps: {
   	value: *any*,
   },
   displayValue: {
   	class: "",
   	style: "",
   	displayMax: true,
   	displayMin: true,
   	separator: "",
   	orientation: "",
   	numberFormat: {
   		formatType: "",
   		decimalDigits: 0,
   		decimalSign: "",
   		separatorDigits: 0,
   		separatorSign: "",
   		locale: "",
   		options: {
   		},
   	},
   },
   track: {
   	style: "",
   	colorLeft: "",
   	colorRight: "",
   },
   thumb: {
   	style: "",
   },
   value: *any*,
   label: {
   	class: "",
   	style: "",
   	value: *any*,
   	orientation: "",
   },
   contentEditable: true,
   actions: [{
   	trigger: "",
   	scripts: [{
   		type: "",
   	}],
   }],
   htmlAttribute: "",
})
json
html( raw(GIP_master({})) + 
raw(GIP_progress({
   uniqueId: "",
   embedded: {
   	height: "",
   	styleHtml: "",
   	styleStri: "",
   	styleFn: "",
   	styleLabel: "",
   	styleComp: "",
   	presets: "",
   },
   recordId: "",
   fieldId: "",
   formId: "",
   class: "",
   style: "",
   minValue: 0,
   maxValue: 0,
   steps: {
   	value: *any*,
   },
   displayValue: {
   	class: "",
   	style: "",
   	displayMax: true,
   	displayMin: true,
   	separator: "",
   	orientation: "",
   	numberFormat: {
   		formatType: "",
   		decimalDigits: 0,
   		decimalSign: "",
   		separatorDigits: 0,
   		separatorSign: "",
   		locale: "",
   		options: {
   		},
   	},
   },
   track: {
   	style: "",
   	colorLeft: "",
   	colorRight: "",
   },
   thumb: {
   	style: "",
   },
   value: *any*,
   label: {
   	class: "",
   	style: "",
   	value: *any*,
   	orientation: "",
   },
   contentEditable: true,
   actions: [{
   	trigger: "",
   	scripts: [{
   		type: "",
   	}],
   }],
   htmlAttribute: "",
})
))

Key-Table

arrow_rightuniqueIdRequired
string
Default: -
Eindeutige Kennung des eingesetzten Moduls. Ideal ist eine Kombination aus Text und der Record-ID, also z.B.: uniqueId: "LayoutÜberschrift" + Nr
Ist die ID nicht einzigartig, kann es zu Fehlern bei Anzeige und Funktion der eingesetzten Module in der Tabelle kommen.
arrow_rightembeddedRequired
boolean, object
Default: false
Wenn des Modul in einem anderen Modul eingebettet ist, wird der boolesche Wert true eingetragen.
Liegt das Modul alleine, bzw. als äußerster Container in einem Formelfeld, kann entweder false oder ein Object mit Angaben zur Höhe und Styling des Formelfeldes angegeben werden.
arrow_rightheight
string
Default: "auto"
Höhe des Moduls in Pixeln (px).
arrow_rightstyleHtml
string
Default: "padding: 0 !important; user-select: none !important; -webkit-user-select: none !important; -ms-user-select: none !important; background: none !important; border-radius: 0px !important; height: auto; min-height: 34px !important;"
Inline CSS-Styling des Html-Containers des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightstyleStri
string
Default: "background: none !important; border: 0 !important;"
Inline CSS-Styling des Stringeditor-Containers des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightstyleFn
string
Default: -
Inline CSS-Styling des FnEditor-Containers des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightstyleLabel
string
Default: -
Inline CSS-Styling des Labels des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightstyleComp
string
Default: -
Inline CSS-Styling des Component-Containers des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightpresets
string
Default: -
Mit diesem Key können Voreingestellte, besondere Stylings übergeben werden. Die aktuell verfügbaren sind:
  • paddingless: Entfernt Paddings des Ninox-Formelfeldes.
  • borderless: Entfernt Paddings sowie den Titel des Ninox-Formelfeldes und skaliert es auf 100% der Seiten-Höhe.
  • fullscreen: Entfernt die Ninox-Kopfleiste des Records (enthält Tabs, Schließen-Button, Anhänge, Kommentare und Änderungsverlauf). Für eine vollständige Vollbild-Ansicht muss der Record entweder mit der Ninox Funktion "openFullscreen()" oder dem GIP-Action-Type "openFullscreen" geöffnet werden.
Nach Ändern der Presets sollte die Ansicht neu geladen werden. Den Ninox-Tab zu wechseln reicht.
arrow_rightrecordIdRequired
string
Default: -
ID des Ziel-Records.
arrow_rightfieldIdRequired
string
Default: -
ID des Ziel-Feldes.
arrow_rightformId
string
Default: -
Wenn eine Form-ID angegeben wird, wird der in ein GIP-Feld eingegebene Wert nicht direkt in das verknüpfte Ninox-Feld, sondern in den Session Storage des Browsers geschrieben. Der Wert wird also zwischengespeichert, bis er tatsächlich in Ninox eingetragen werden soll. Es können mehrere GIP-Felder gleichzeitig Daten unter derselben Form-ID speichern.
Mit der Funktion submitGIPform (siehe actions-Key) können alle Werte, die unter der Form-ID gespeichert wurden, wieder aus dem Session Storage gelesen und in die entsprechenden Ninox-Felder geschrieben werden.
arrow_rightclass
string
Default: -
Styling des Moduls mithilfe der in GIP_globalCSS vordefinierten CSS-Stylings (siehe globaler GIP-Modul-Code). Um mehrere CSS-Stylings zu referenzieren, werden die Class-Namen einfach mit Leerzeichen als String aneinandergereiht.
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightminValueRequired
number
Default:
arrow_rightmaxValueRequired
number
Default:
arrow_rightsteps
object
Default:
arrow_rightvalueRequired
any
Default: -
Eingabe des gewünschten Wertes.
arrow_rightdisplayValue
object
Default:
arrow_rightclass
string
Default: -
Styling des Moduls mithilfe der in GIP_globalCSS vordefinierten CSS-Stylings (siehe globaler GIP-Modul-Code). Um mehrere CSS-Stylings zu referenzieren, werden die Class-Namen einfach mit Leerzeichen als String aneinandergereiht.
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightdisplayMax
boolean
Default:
arrow_rightdisplayMin
boolean
Default:
arrow_rightseparator
string
Default:
arrow_rightorientation
string
Default: "top"
Gibt die Anordnung an. Zur Auswahl stehen die Schlüsselwörter "left", "right", "bottom" und "top".
arrow_rightnumberFormat
object
Default: -
Im numberFormat-Object werden Formatierungsangaben für den Title-Wert eines GIP-Inputs vom Typ "number" gemacht, z.B. Anzahl der Nachkommastellen.
arrow_rightformatTypeRequired
string
Default: -
Der Typ der Formatierung wird aus folgenden Schlüsselwörtern gewählt. In Klammern sind die Keys aus numberFormat angegeben, die dieser Formatierung zugeordnet sind.
  • basic [decimalDigits, decimalSign, separatorDigits, separatorSign]
    Bei der Basis-Variante können manuell Dezimalstellen, Dezimalzeichen, Separatorstellen sowie Separatorzeichen festgelegt werden.
  • intl [locale, options]
    Das Intl-Objekt (Intl = "Internationalization") ist eine Formatierungsoption aus JavaScript, die länderspezifische Zahlen- und Währungsformate zurückgeben kann und einen großen Umfang an sonstigen Formatierungsmöglichkeiten hat (weitere Infos gibt es hier).
arrow_rightdecimalDigits
number
Default: -
Die Anzahl der maximal anzuzeigenden Dezimalstellen (Nachkommastellen).
arrow_rightdecimalSign
string
Default: ","
Angabe, welches Dezimaltrennzeichen verwendet werden soll.
arrow_rightseparatorDigits
number
Default: -
Teilt den gangzahligen Bereich (also nicht die Nachkommastellen) in Abschnitte mit der angegebenen Anzahl Ziffern ein ("1000er Trennung").
arrow_rightseparatorSign
string
Default: "."
Trennzeichen für den ganzzahligen Bereich ("1000er Trennzeichen").
arrow_rightlocale
string
Default: Browser-Einstellung
Ländercoder, der vom Intl-Objekt verwendet werden soll (z.B. "de-DE").
arrow_rightoptions
object
Default: -
Ein Objekt, das die Optionen enthält, die vom Intl-Objekt verwendet werden soll (z.B. {style: 'currency', currency: 'EUR'}).
arrow_righttrack
object
Default:
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightcolorLeft
string
Default:
arrow_rightcolorRight
string
Default:
arrow_rightthumb
object
Default:
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightvalueRequired
any
Default: -
Eingabe des gewünschten Wertes.
arrow_rightlabel
object
Default: -
Die Label der Tabs werden nebeneinander (Modul direction: "horizontal"), bzw. untereinander (Modul direction: "vertical") angezeigt. Im label-Objekt werden für jeden Tab Wert, Styling und Aktionen bei Interaktion mit dem Label angegeben.
arrow_rightclass
string
Default: -
Styling des Moduls mithilfe der in GIP_globalCSS vordefinierten CSS-Stylings (siehe globaler GIP-Modul-Code). Um mehrere CSS-Stylings zu referenzieren, werden die Class-Namen einfach mit Leerzeichen als String aneinandergereiht.
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightvalueRequired
any
Default: -
Eingabe des gewünschten Wertes.
arrow_rightorientation
string
Default: "top"
Gibt die Anordnung an. Zur Auswahl stehen die Schlüsselwörter "left", "right", "bottom" und "top".
arrow_rightcontentEditable
boolean
Default: true
Bestimmt, ob der Inhalt eines Input-Feldes bearbeitet werden darf (true) oder nicht (false).
arrow_rightactions
array of objects
Default: -
Enthält ein Array mehrerer Actions. Jede Action ist aus einem Trigger, der die Action auslöst, und einem Array der auszuführenden Funktionen nach Auslösen des Triggers (Script) aufgebaut.
arrow_righttriggerRequired
string
Default: -
Legt fest, durch welche User-Eingaben die Funktionen der Action ausgelöst werden. Als Trigger können alle HTML Mouse Events gewählt werden.
arrow_rightscriptsRequired
array of objects
Default: -
Enthält ein Array der Funktionen, die durch den Trigger der Aktion ausgeführt werden.
arrow_righttypeRequired
string
Default: -
Der Typ der Funktion wird aus der Liste der verfügbaren Funktionen gewählt.
arrow_righthtmlAttribute
string
Default: -
Auflistung der HTML-Attribute, die zusätzlich auf das Feld angewendet werden sollen.

Beispiele

Progress: Basis Fortschrittsbalken

Beispiel Progress Basis Fortschrittsbalken

Beschreibung

Wir möchten einen einfachen Fortschrittsbalken mit einem Label erstellen. Um den Thumb auszublenden und damit eine reine Progress-Bar zu erhalten, setzen wir den ContentEditable-Key auf "false". Danach geben wir noch den minimalen Wert des Fortschrittsbalken (hier "0"), den maximalen Wert (hier "20") und den aktuell hinterlegten Wert in Ninox an.

Code des Beispiels
json
html(raw(GIP_master({})) +
raw(GIP_progress({
		uniqueId: "Basic Not Editable" + Nr,
		embedded: false,
		style: "",
		contentEditable: false,
		value: Zahl,
		minValue: 0,
		maxValue: 20,
		label: {
			style: "",
			value: "Fortschrittsbalken",
			orientation: ""
		}
	})
))
json
GIP_progress({
	uniqueId: "Basic Not Editable" + Nr,
	embedded: true,
	style: "",
	contentEditable: false,
	value: Zahl,
	minValue: 0,
	maxValue: 20,
	label: {
		style: "",
		value: "Fortschrittsbalken",
		orientation: ""
	}
})