Skip to content

Mit dem Image-Modul kannst du Bilder flexibel und ansprechend in deinen Ninox-Layouts darstellen. Es ist Teil unserer Graphikmodule, die es dir ermöglichen, visuelle Elemente einfach und effektiv zu integrieren. Das Image-Modul kümmert sich nicht nur um die Anzeige des Bildes selbst, sondern auch um das Handling von Ladezuständen und Fehlern und ermöglicht die Kombination mit einem Label.

Funktion und Aussehen

Das Herzstück des Moduls ist das image-Objekt, in dem du die Bildquelle (value), CSS-Klassen (class), Inline-Styles (style) und weitere HTML-Attribute (htmlAttribute) definieren kannst. Während das Bild lädt, wird automatisch ein Spinner angezeigt. Sollte das Bild nicht geladen werden können, erscheint an seiner Stelle ein Fehler-Icon (das broken_image Material Symbol).

Zusätzlich kannst du ein label definieren, um dem Bild eine Beschriftung hinzuzufügen. Die Position des Labels lässt sich über den orientation-Key steuern (top, bottom, left, right). Sowohl das Bild als auch das Label und der umgebende Container können mit den class- und style-Keys individuell gestaltet werden.

Achtung

Die Bildquelle (value) sollte keine interne URL sein (wie fileURL()), da diese speziell auf mobilen Geräten zu Problemen führen (seit Ninox v3.16.0). Sinnvoller sind Share-URL (shareFile()) und Base64-URL (loadFileAsBase64URL()).

Nutzer-Interaktion

Auch bei der Gestaltung der Nutzer-Interaktion mit dem Modul lassen wir dir alle Freiheiten. Dem Image-Modul 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. Weitere Infos zu Actions findest du in diesem Teil unserer Doku.

Modulcode

json
GIP_image({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   image: {
   	value: *any*,
   },
})
json
GIP_image({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   style: "",
   image: {
   	style: "",
   	value: *any*,
   },
})
json
GIP_image({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   class: "",
   style: "",
   image: {
   	class: "",
   	style: "",
   	value: *any*,
   },
   placeholder: {
   	style: "",
   	value: *any*,
   },
   actions: [{
   	trigger: "click",
   	scripts: [{
   		type: "",
   	}],
   }],
})
json
GIP_image({
   uniqueId: "",
   embedded: {
   	height: "",
   	styleHtml: "",
   	styleStri: "",
   	presets: "",
   },
   class: "",
   style: "",
   image: {
   	class: "",
   	style: "",
   	value: *any*,
   	htmlAttribute: "",
   },
   placeholder: {
   	style: "",
   	value: *any*,
   },
   label: {
   	class: "",
   	style: "",
   	value: *any*,
   	orientation: "",
   },
   actions: [{
   	trigger: "",
   	scripts: [{
   		type: "",
   	}],
   }],
})
json
html( raw(GIP_master({})) + 
raw(GIP_image({
   uniqueId: "",
   embedded: {
   	height: "",
   	styleHtml: "",
   	styleStri: "",
   	presets: "",
   },
   class: "",
   style: "",
   image: {
   	class: "",
   	style: "",
   	value: *any*,
   	htmlAttribute: "",
   },
   placeholder: {
   	style: "",
   	value: *any*,
   },
   label: {
   	class: "",
   	style: "",
   	value: *any*,
   	orientation: "",
   },
   actions: [{
   	trigger: "",
   	scripts: [{
   		type: "",
   	}],
   }],
})
))

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_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_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_rightimageRequired
object
Default: -
Angaben zum Wert und Styling des Bildes selbst. Der Value nimmt eine URL (share-Link oder Base64-URL).
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_righthtmlAttribute
string
Default: -
Auflistung der HTML-Attribute, die zusätzlich auf das Feld angewendet werden sollen. Zulässig sind prinzipiell alle HTML-Attribute, die auf ein HTML-Img-Element angewendet werden können (z.B. " alt='Alternativtext' ").
arrow_rightplaceholder
object
Default: Material Symbol mit dem Namen "broken_image"
Im placeholder-Objekt werden für ein Input-Feld Wert und Styling des Platzhalters angegeben.
arrow_rightstyle
string
Default: "color: #ABABAB;"
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_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.

Beispiele

Image: Bild mit Überschrift

Beispiel Image Basic

Beschreibung

Wir möchten ein Bild mit einer Überschrift darüber anzeigen. Das Bild soll eine feste Breite haben.

Zuerst definieren wir das image-Objekt mit der URL und einem style, um die Breite zu begrenzen. Dann fügen wir ein label hinzu und setzen den Text (value). Die orientation ist standardmäßig 'top', also müssen wir sie nicht explizit setzen.

Image by: Amber Kipp via Unsplash

Code des Beispiels
json
html(raw(GIP_master({})) + 
raw(GIP_image({
    uniqueId: "Beispielbild" + Nr,
    embedded: false,
    image: {
        value: "https://images.unsplash.com/photo-1573865526739-10659fec78a5",
        style: "width: 300px;"
    },
    label: {
        value: "Eine orange Katze",
        style: "font-size: 1.2em; font-weight: bold; padding-bottom: 10px;"
    }
})))
json
GIP_image({
    uniqueId: "Beispielbild" + Nr,
    embedded: true,
    image: {
        value: "https://images.unsplash.com/photo-1573865526739-10659fec78a5",
        style: "width: 300px;"
    },
    label: {
        value: "Eine orange Katze",
        style: "font-size: 1.2em; font-weight: bold; padding-bottom: 10px;"
    }
})

Card: Steckbrief mit Bild

Beispiel Card Basic With Image

Beschreibung

Wir möchten eine Card designen, um darin verschiedene Informationen strukturiert und ansprechend darzustellen. In diesem Beispiel sind dies Informationen zu einem Kater aus einem Tierheim. In den Blocks der Card übergeben wir verschiedene Texte und auch ein Image-Modul, um ein Bild des Katers darzustellen.

Image by: Amber Kipp via Unsplash

Code des Beispiels
json
html(raw(GIP_master({})) +
raw(GIP_card({
		uniqueId: "VermittlungskarteMitBild" + Nr,
		embedded: false,
		direction: "vertical",
		class: "",
		style: "background-color: #FFFCFA; border-color: #e5e2e0; padding: 25px; border-radius: 12px; color: #343a40; gap: 2px;",
		blocks: [{
				class: "",
				style: "font-size: 2.5em; font-weight: bold; color: #e67e22; justify-content: start;",
				value: "Simba"
			}, {
				class: "",
				style: "margin-top: 20px;",
				value: GIP_image({
						uniqueId: "Simba" + Nr,
						embedded: true,
						image: {
							value: "https://images.unsplash.com/photo-1573865526739-10659fec78a5",
							style: "width: 100%;"
						}
					})
			}, {
				class: "",
				style: "font-weight: bold; color: #6c757d; margin-top: 20px; margin-bottom: 5px; letter-spacing: 1px; text-transform: uppercase; justify-content: start;",
				value: "— Steckbrief —"
			}, {
				class: "",
				style: "justify-content: start;",
				value: "Fellfarbe: Rot, Getigert"
			}, {
				class: "",
				style: "justify-content: start;",
				value: "Alter: 4 Jahre"
			}, {
				class: "",
				style: "justify-content: start;",
				value: "Lieblingsspielzeug: Federangel"
			}, {
				class: "",
				style: "font-weight: bold; color: #6c757d; margin-top: 20px; margin-bottom: 5px; letter-spacing: 1px; text-transform: uppercase; justify-content: start;",
				value: "— Mehr über Simba —"
			}, {
				class: "",
				style: "line-height: 1.6; text-align: justify;",
				value: "Unser Simba ist ein verschmuster und verspielter Kater, der die Welt mit neugierigen Augen erkundet. Er liebt gemütliche Nachmittage auf dem Sofa genauso wie ausgiebige Jagdspiele. Simba sucht ein liebevolles Zuhause, in dem er für immer ankommen darf."
			}]
	})))
json
GIP_card({
	uniqueId: "VermittlungskarteMitBild" + Nr,
	embedded: true,
	direction: "vertical",
	class: "",
	style: "background-color: #FFFCFA; border-color: #e5e2e0; padding: 25px; border-radius: 12px; color: #343a40; gap: 2px;",
	blocks: [{
			class: "",
			style: "font-size: 2.5em; font-weight: bold; color: #e67e22; justify-content: start;",
			value: "Simba"
		}, {
			class: "",
			style: "margin-top: 20px;",
			value: GIP_image({
					uniqueId: "Simba" + Nr,
					embedded: true,
					image: {
						value: "https://images.unsplash.com/photo-1573865526739-10659fec78a5",
						style: "width: 100%;"
					}
				})
		}, {
			class: "",
			style: "font-weight: bold; color: #6c757d; margin-top: 20px; margin-bottom: 5px; letter-spacing: 1px; text-transform: uppercase; justify-content: start;",
			value: "— Steckbrief —"
		}, {
			class: "",
			style: "justify-content: start;",
			value: "Fellfarbe: Rot, Getigert"
		}, {
			class: "",
			style: "justify-content: start;",
			value: "Alter: 4 Jahre"
		}, {
			class: "",
			style: "justify-content: start;",
			value: "Lieblingsspielzeug: Federangel"
		}, {
			class: "",
			style: "font-weight: bold; color: #6c757d; margin-top: 20px; margin-bottom: 5px; letter-spacing: 1px; text-transform: uppercase; justify-content: start;",
			value: "— Mehr über Simba —"
		}, {
			class: "",
			style: "line-height: 1.6; text-align: justify;",
			value: "Unser Simba ist ein verschmuster und verspielter Kater, der die Welt mit neugierigen Augen erkundet. Er liebt gemütliche Nachmittage auf dem Sofa genauso wie ausgiebige Jagdspiele. Simba sucht ein liebevolles Zuhause, in dem er für immer ankommen darf."
		}]
})