Feldarten

Vorlagenfeld

Zwei Familien von Feldarten für Darstellungen, die keine mitgelieferte Feldart abdeckt. Beide speichern wie ihre Grundart (Text, Ganzzahl, Dezimalzahl) und ersetzen nur die Darstellung im Layout. Was Erfassende sehen, beschreibt Vorlagenfeld .

FamilieFeldartenBearbeitet unter
HTML-VorlageCUSTOM_TEXT, CUSTOM_INT, CUSTOM_DECIMALEigener Code › HTML-Vorlage
KomponenteCUSTOM_SVELTE_TEXT, CUSTOM_SVELTE_INT, CUSTOM_SVELTE_DECIMALEigener Code › Svelte-Komponente

Bei CUSTOM_INT und CUSTOM_DECIMAL muss der Wert eine Zahl bleiben; bei CUSTOM_INT ohne Nachkommastellen.

HTML-Vorlage

Die Vorlage steht in der Konfiguration unter html und wird nicht übersetzt. Platzhalter mit dem Schlüssel in doppelten geschweiften Klammern werden vor der Ausgabe ersetzt:

PlatzhalterInhalt
inhaltder gespeicherte Wert
valuederselbe Wert unter zweitem Namen
labeldie Feldbeschriftung
datenfeldIDNummer des Datenfeldes, brauchbar als id im Markup
objektID, projektIDObjekt und Projekt
sampledataBeispielinhalt des Feldes, sonst der Wert

Weitere Platzhalter greifen auf die übrigen Eigenschaften des Feldes zu.

HTML
<span style="font-size:200%">{{inhalt}}</span>

Enthält die Vorlage ein input, select oder textarea, wird dessen Wert beim Ändern gespeichert. Ohne ein solches Element ist das Feld reine Anzeige.

Werte werden maskiert, die Vorlage nicht

Eingesetzte Werte werden HTML-maskiert, ein Wert kann also kein Markup einschleusen. Die Vorlage selbst ist ungeprüftes HTML. Sie ist Konfiguration und gehört in vertrauenswürdige Hände.

Komponente

Der Quelltext der Komponente wird beim Speichern übersetzt; das Ergebnis landet in der Konfiguration unter html und wird nicht von Hand gepflegt. Ein Übersetzungsfehler erscheint im Editor, ein Laufzeitfehler im Feld.

EigenschaftInhalt
fieldder ganze Feldeintrag mit Wert und Konfiguration
valueder gespeicherte Wert
labeldie Feldbeschriftung
objektID, projektIDObjekt und Projekt
statusSpeicherzustand
bulkEditob eine Stapelverarbeitung läuft

Jede benutzte Eigenschaft muss die Komponente in $props() annehmen. Sonst bricht das Feld mit einer Meldung wie „value is not defined“ ab. Importe folgen den Regeln des Browsers: relative Pfade und veröffentlichte Pakete gehen (Pakete über esm.sh), Aliase wie $lib nicht.

Von allen Möglichkeiten des Datenmodells ist die eigene Komponente die aufwendigste. Ein Fehler darin trifft jedes Layout, auf dem das Feld liegt. Und bei jeder neuen Svelte-Version muss sie mitgezogen werden.

Parameter

SchlüsselWerteOhne AngabeWirkung
htmlVorlage bzw. übersetztes ModulleerDie Darstellung. Ohne sie bleibt das Feld leer
labelVisibletrue, falsetruefalse lässt die Standardbeschriftung weg, wenn die Darstellung eine eigene mitbringt

Export

Exporte, Suche und Vorlagen sehen den Rohwert, nicht die Darstellung. Wer die aufbereitete Form auch im Export braucht, nimmt einen Ausgabe-Formatter oder ein virtuelles Feld.

Wann etwas anderes das richtige Mittel ist

BedarfBesseres Mittel
Aus mehreren Feldern einen Text zusammensetzenVirtuelles Feld , ohne Code und auch im Export
Ein Verweis auf ein Fremdsystem, der im Feld stehtLink mit Vorschau
Tausendertrennung oder EinheitZahl mit passender Maske
Eine formatierte Ausgabe im Exportein Ausgabe-Formatter
Eine wiederholte StrukturJSON
\ en\ de