Update Interface Definition
onto_interface_update_defEine bestehende Interface-Definition aendern (Felder, Reihenfolge, Sichtbarkeit). Betrifft die Sicht, nicht die Daten. Nutze es zum Anpassen einer Maske; welche Felder es ueberhaupt gibt, zeigt onto_property_def_index. Der bisherige Wert ist danach weg (keine Historie, kein Undo). | EN: onto, interface, update, def Verengung (optional): table.scopes mit Scopenamen schraenkt die Zeilen dieser Ansicht zusaetzlich auf diese Scopes ein (nur einschraenkend, unbekannter Name = 400). Die Ansicht zeigt sie unter der Ueberschrift an; trage sie zusaetzlich in die description des Interfaces ein.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Label | |
| roles | No | Rollen | |
| def_id | Yes | Interface-Definition-ID | |
| scope_id | No | Scope-ID (Tuer-Scope) | |
| description | No | Beschreibung | |
| view_config | No | view_config-JSON. Listen ohne SQL: {"elements":["table"],"table":{"from":"objects","type":"shift","columns":[...]}}. Spalte: {"key", "prop" | "system"(udid,name,created,modified,scope,type) | "link"+"richtung"(vorwaerts/rueckwaerts)+("linkvalue", "type", "prop" = Feld des Ziels), optional "label", "format"(datum,zeit,wochentag_datum,wochentag_datum_zeit,kalenderwoche,zeitspanne,zahl,waehrung), "bis":"<prop>" (nur mit format zeitspanne; ergibt 09:00 - 15:30), "werte"{Schluessel:Anzeige}, "link_zelle", "hidden"}. Sammelspalte: {"key", "agg":"count|sum|min|max", "link", "richtung", "prop", "ziel":{"wo":[{"prop","op","wert"}]}}. Link-Gruppen: "links":{"Name":{"link","richtung","type","wo":[{...}],"sort":{...}}} — alle Spalten mit "link":"Name" lesen DASSELBE Objekt (Auswahl einmal definiert). "filter", "sort", "zeitraum" nennen nur Spalten-Keys. "person" bindet die Ansicht an die angemeldete Person (noetig fuer data_scope_id). Weitere Schalter: "prop":["firstName","lastName"] verbindet Felder ("trenner"), "bis":"shiftEnd" mit "format":"zeitspanne" ergibt 09:00 - 15:30, "nur":[keys] zeigt nur Zeilen mit Wert. Kalender-Raster: "matrix":{"rows":{from,type,label,nur_mit{linktyp,type}},"cells":{from,type,bruecke{linktyp,type},zeitfeld,text[],"wo":[{prop,op,wert}]}}, wobei "wo" die ZELLEN nach eigenen Feldern filtert (z.B. shiftStatus != abgesagt) und mehrere Objekte derselben Zeile am selben Tag mit dem Trenner zu EINER Zelle verbunden werden; Detailseite ohne SQL: "detail":{"type":"person","fields":[{prop|system,key?,label,format,werte}],"panels":[{"type":"subform","from":"objects","objekt":"shift","via":{"link":"worksShift"|[...],"richtung":"vorwaerts|rueckwaerts","linkvalue":optional},"wo":[...],"sort":{key|prop,dir},"columns":[{key,prop|system,bis,format,werte}]}]} — sql/subform_sql gewinnen weiter, wenn gesetzt; Formate und werte werden bei Unterseiten in der SQL angewandt; "wo" auf Tabellen-Ebene sind Bedingungen an die GRUNDMENGE (z.B. Personenbindung "wo":[{"prop":"email","op":"=","wert":"{'current_user_email'}"}]). Der Text-Platzhalter MUSS in der Definition in einfachen Anfuehrungszeichen stehen ({'current_user_email'}) - der Baustein setzt ihn als '{current_user_email}' ein, der Renderer ersetzt ihn roh. Ohne Quotes lehnt der Validator ab.; ein Zelltext-Eintrag mit "werte":{"abgesagt":"abgesagt","_":""} zeigt den Zusatz NUR bei diesem Wert ("_" = alle anderen, leer = Teil weglassen — so wird eine abgesagte Schicht im Raster markiert, ohne sie zu verstecken) (rows = Zeilenobjekte, cells = die Objekte im Raster, bruecke nennt den Linktyp zwischen beiden). Freie "sql" nur fuer Administratoren. | |
| data_scope_id | No | Lese-Scope der Daten, wenn die Ansicht in einem anderen (Tuer-)Scope liegt. Verlangt eine Personenbindung in der SQL ({current_user_email}, {current_profile_id} oder {current_user_id}). | |
| object_type_ids | No | Objekttyp-IDs |