Benutzer-Werkzeuge

Webseiten-Werkzeuge


developer:userdefinedfields

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
developer:userdefinedfields [2017/08/24 08:30]
oesi angelegt
developer:userdefinedfields [2022/01/04 09:05] (aktuell)
oesi
Zeile 1: Zeile 1:
-====== User Defined Fields ======+====== User Defined Fields ​- Zusatzfelder ​======
  
-Ab Version 3.3 ist es Möglich, FH-Complete mit User Defined Fields zu erweitern. +Ab Version 3.3 ist es möglich, FH-Complete mit User Defined Fields zu erweitern. 
-Derzeit können Personen und Prestudenten mit UserDefinedFields ​erweitert werden. +Derzeit können Personen und Prestudenten mit Zusatzfeldern ​erweitert werden. 
-Dadurch können bei Interessenten,​ Studierenden und Mitarbietern ​zusätzliche Felder hinzugefügt werden.+Dadurch können bei Interessenten,​ Studierenden und Mitarbeitern ​zusätzliche Felder hinzugefügt werden.
 Diese können im FAS verwaltet und auch wieder exportiert werden. Diese können im FAS verwaltet und auch wieder exportiert werden.
  
-===== genereller Aufbau ​=====+===== Features von UserDefinedFields ===== 
 + 
 +  * Verschiedene Arten von Eingabefeldern 
 +     * Textfeld 
 +     * Dropdown 
 +     * Checkbox 
 + 
 +  * Validierung der Eingabe mit Regular Expression 
 +  * Dynamische Dropdowns die aus der Datenbank befüllt werden 
 +  * Mehrsprachige Bezeichnung 
 +  * Default Werte 
 +  * Sortierung der Felder 
 + 
 +===== Hinzufügen von UserDefinedFields ===== 
 + 
 +Um UserDefinedFields hinzuzufügen,​ muss in der Datenbank in der Tabelle system.tbl_udf definiert werden welche UDF in welcher Tabelle zur Verfügung stehen sollen. Dies wird mit Hilfe eines JSON Schema definiert. 
 + 
 +Um Beispielsweise die Schuhgröße erfassen zu können wird in der Tabelle system.tbl_udf folgender Eintrag hinzugefügt:​ 
 + 
 +**schema**: public \\ 
 +**table**: tbl_person \\ 
 +**jsons**: \\ 
 +<​code>​ 
 +[{ 
 + "​name":​ "​udf_schuhgroesse",​ 
 + "​description":​ "​udf/​schuhgroesseDescription",​ 
 + "​placeholder":​ "​udf/​schuhgroessePlaceholder",​ 
 + "​title":​ "​udf/​schuhgroesseTitle",​ 
 + "​type":​ "​dropdown",​  
 + "​sort":​1,​ 
 + "​defaultValue":"​43",​ 
 + "​listValues":​ { 
 + "​enum":​ [ 
 + "​42","​43"​ 
 +
 +   }, 
 +        "​requiredPermissions":​ ["​basis/​person"​] 
 +}] 
 +</​code>​ 
 + 
 +Die Bezeichnungen werden mehrsprachig erfasst und daher im Phrasensystem in der Datenbank abgelegt. Dazu muss für die app "​core"​ die Phrase "​udf/​schuhgroesseDescription"​ und "​udf/​schuhgroessePlaceholder"​ erstellt werden. 
 +Dies erfolgt in den Tabellen system.tbl_phrase,​ system.tbl_phrasentext und system.tbl_app. 
 + 
 +Nachdem die Einträge angelegt wurden, werden die Eingabefelder im FAS im Karteireiter Zusatzfelder angezeigt:​ 
 +{{:​fas:​udf_fas.png?​800|}} 
 + 
 +===== Hintergrundinformationen ​=====
  
 In der Datenbank existiert die Tabelle system.tbl_udf in dieser wird gespeichert welche Tabellen mit UserDefinedFields erweitert werden können. In der Datenbank existiert die Tabelle system.tbl_udf in dieser wird gespeichert welche Tabellen mit UserDefinedFields erweitert werden können.
Zeile 108: Zeile 154:
 </​code>​ </​code>​
  
-===== Aufbau udf_schema in system.tbl_udf ​=====+==== Aufbau udf_schema in system.tbl_udf ====
  
 <​code>​ <​code>​
Zeile 135: Zeile 181:
  "​42","​43"​  "​42","​43"​
  ]  ]
-   }+   }
 +       "​requiredPermissions":​ ["​basis/​person"​]
 }, },
 { {
Zeile 144: Zeile 191:
  "​type":​ "​checkbox", ​  "​type":​ "​checkbox", ​
  "​sort":​2,​  "​sort":​2,​
- "​defaultValue":​false+ "​defaultValue":​false
 +        "​requiredPermissions":​ ["​basis/​person"​]
 }] }]
 </​code>​ </​code>​
  
-   * **name:** Definiert den Namen des UserDefinedFields +   * **name:** Definiert den Namen des UserDefinedFields. Der Name muss zwingend mit udf_ beginnen! 
-   * **description:​** Name einer Phrase - Die Phrase ​enthaelt ​einen Beschreibungstext des UDF der dann in der GUI    als Infotext angezeigt wird +   * **description:​** Name einer Phrase - Die Phrase ​enthält ​einen Beschreibungstext des UDF der dann in der GUI als Infotext angezeigt wird 
-   * **placeholder:​** Name einer Phrase - Die Phrase ​enthaelt ​einen Text der dann als Placeholder-Text bei Textfeldern angezeigt wird+   * **placeholder:​** Name einer Phrase - Die Phrase ​enthält ​einen Text der dann als Placeholder-Text bei Textfeldern angezeigt wird
    * **title:** Name einer Phrase - Bezeichnung des Eingabefeldes und der GUI    * **title:** Name einer Phrase - Bezeichnung des Eingabefeldes und der GUI
    * **type:** definiert die Art des Eingabefeldes (dropdown, checkbox, Textfeld, etc)    * **type:** definiert die Art des Eingabefeldes (dropdown, checkbox, Textfeld, etc)
Zeile 156: Zeile 204:
    * **defaultValue:​** Defaultvalue - kann true, false oder ein Text sein    * **defaultValue:​** Defaultvalue - kann true, false oder ein Text sein
    * **listValues:​** Definiert die auszuwählenden Einträge bei Dropdowns.    * **listValues:​** Definiert die auszuwählenden Einträge bei Dropdowns.
-   ***validation:​** Diverse Validierungen für das UDF (never performed if type is equal to checkbox, its value can only be **true** or **false**)+   * **validation:​** Diverse Validierungen für das UDF (never performed if type is equal to checkbox, its value can only be **true** or **false**)
    * **Required rules:**    * **Required rules:**
     * If required === false && value to be saved == (null || false) => validation avoided     * If required === false && value to be saved == (null || false) => validation avoided
Zeile 164: Zeile 212:
     * If raised error required field => validation is not performed     * If raised error required field => validation is not performed
  
-Bei den ListValues ​ist noch nicht geklärt ob hier auch Phrasennamen verwendet werden ​sollen oder ob hier direkt der Text verwendet wird.+Bei den ListValues ​können derzeit keine Phrasennamen verwendet werden.
 Statt enum kann hier auch sql verwendet werden. Dabei wird anstatt einer fixen Liste ein SQL Befehl hinterlegt der die Daten für das Dropdown liefert. Statt enum kann hier auch sql verwendet werden. Dabei wird anstatt einer fixen Liste ein SQL Befehl hinterlegt der die Daten für das Dropdown liefert.
- +Der SQL muss 2 Spalten mit den verpflichtenden Titeln "​id"​ und "​description"​ zurückliefern,​ wobei "​id" ​der Wert ist, der im UDF gespeichert ​wird und "description" ​der angezeigte Text im UDF.
-Durch die Angabe eines Phrasennamens anstatt ​der Bezeichnung können diese einfach über das Phrasensystem übersetzt werden. Nachteil an dieser Variante ​ist, dass die Anlage des UDF erschwert ​wird da hier zuerst eine entsprechende Phrase erstellt werden muss. Hier müsste eine Möglichkeit gefunden werden damit die Phrase ​"on the fly" ​erstellt wird.+
  
 ==== Aufbau udf_values ==== ==== Aufbau udf_values ====
Zeile 182: Zeile 229:
 </​code>​ </​code>​
  
-==== Json schemas examples ​====+==== Beispiele ​====
  
 <​code>​ <​code>​
Zeile 204: Zeile 251:
  "​description":​ "​udf/​example1Description",​  "​description":​ "​udf/​example1Description",​
  "​placeholder":​ "​udf/​example1Placeholder",​  "​placeholder":​ "​udf/​example1Placeholder",​
- "​defaultValue":​ 42+ "​defaultValue":​ 42
 +        "​requiredPermissions":​ ["​basis/​person"​]
 }, },
 { {
Zeile 225: Zeile 273:
  "​description":​ "​udf/​example2Description",​  "​description":​ "​udf/​example2Description",​
  "​placeholder":​ "​udf/​example2Placeholder",​  "​placeholder":​ "​udf/​example2Placeholder",​
- "​defaultValue":​ 15+ "​defaultValue":​ 15
 +        "​requiredPermissions":​ ["​basis/​person"​]
 }, },
 { {
Zeile 246: Zeile 295:
  "​description":​ "​udf/​example5Description",​  "​description":​ "​udf/​example5Description",​
  "​placeholder":​ "​udf/​example5Placeholder",​  "​placeholder":​ "​udf/​example5Placeholder",​
- "​defaultValue":​ 12+ "​defaultValue":​ 12
 +        "​requiredPermissions":​ ["​basis/​person"​]
 }, },
 { {
Zeile 264: Zeile 314:
  "​description":​ "​udf/​example3Description",​  "​description":​ "​udf/​example3Description",​
  "​placeholder":​ "​udf/​example3Placeholder",​  "​placeholder":​ "​udf/​example3Placeholder",​
- "​defaultValue":​ "​Ex3"​+ "​defaultValue":​ "​Ex3"​
 +        "​requiredPermissions":​ ["​basis/​person"​]
 }, },
 { {
Zeile 284: Zeile 335:
  "​description":​ "​udf/​example4Description",​  "​description":​ "​udf/​example4Description",​
  "​placeholder":​ "​udf/​example4Placeholder",​  "​placeholder":​ "​udf/​example4Placeholder",​
- "​defaultValue":​ 1+ "​defaultValue":​ 1
 +        "​requiredPermissions":​ ["​basis/​person"​]
 }, },
 { {
Zeile 295: Zeile 347:
  },  },
  "​description":​ "​udf/​example6Description",​  "​description":​ "​udf/​example6Description",​
- "​defaultValue":​ false+ "​defaultValue":​ false
 +        "​requiredPermissions":​ ["​basis/​person"​]
 }] }]
 </​code>​ </​code>​
  
/var/www/wiki/data/attic/developer/userdefinedfields.1503556233.txt.gz · Zuletzt geändert: 2019/08/13 13:49 (Externe Bearbeitung)