Wiki-Quellcode von Metadaten
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | {{figure image="LDAP_Daten_Client.png"}} | ||
2 | Beispiel der Struktur von XFC_METADATA im Firebug. Die einzelnen Werte des Metadaten-Objekts sind hierbei komfortabel über den entsprechenden Feldnamen abrufbar. | ||
3 | {{/figure}} | ||
4 | |||
5 | Um innerhalb des Skriptbereichs eines Formulars Daten zum aktuell angemeldeten Benutzer oder des ggf. dazugehörigen Vorgangs zu erhalten, steht das JavaScript-Objekt {{code}}XFC_METADATA{{/code}} zur Verfügung. Dieses wird beim Aufruf eines Formulars mit den aktuellen Daten dynamisch befüllt und in den JavaScript-Kontext des Formulars eingebunden. Zusätzlich zu den Vorgangs und Benutzer-Daten werden alle URL-Parameter und die Serverzeit beim Aufruf des Formulars hierüber komfortabel zur Verfügung gestellt. | ||
6 | |||
7 | == Struktur des Metadatenobjekts == | ||
8 | |||
9 | Das Metadatenobjekt ist wie folgt strukturiert. | ||
10 | |||
11 | (% height="1572" width="1262" %) | ||
12 | |=(% style="font-size: 18px;" %)Metadaten-Feld|=(% style="font-size: 18px;" %)Beschreibung|=(% colspan="1" %) | ||
13 | |((( | ||
14 | **XFC_METADATA** | ||
15 | )))|Das Wurzelobjekt der verfügbaren Metadaten|(% colspan="1" %) | ||
16 | |((( | ||
17 | **~ - attachments** | ||
18 | )))|JavaScript-Array von verfügbaren Anhängen| | ||
19 | |(% colspan="1" %)((( | ||
20 | **~ - currentClient** | ||
21 | )))|Name und ID des Mandanten dem dieses Projekt zugeordnet ist| | ||
22 | |{{html}}<span style="padding-left:20px;">- id</span>{{/html}}|ID des Mandanten| | ||
23 | |{{html}}<span style="padding-left:20px;">- name</span>{{/html}}|Name des Mandanten| | ||
24 | |** - currentLanguage**|Aktuelle Ausgabesprache des Formulars, Default: "de". Kann durch Parameter "lang" verändert werden.|\\ | ||
25 | |(% colspan="1" %)((( | ||
26 | **~ - currentProcess** | ||
27 | )))|(% colspan="1" %)Unterobjekt welches die Daten zum aktuellen Vorgang beinhaltet. Wird das Formular initial aufgerufen und ist dem entsprechend noch nicht als Vorgang im System eingegangen, so sind alle Felder dieses Objekts leer.|(% colspan="1" %) | ||
28 | |(% colspan="1" %){{html}}<span style="padding-left:20px">- id</span>{{/html}}|(% colspan="1" %)Die ID des Vorgangs|(% colspan="1" %) | ||
29 | |(% colspan="1" %)((( | ||
30 | {{html}} | ||
31 | <span style="padding-left:20px;">- processId</span> | ||
32 | {{/html}} | ||
33 | )))|(% colspan="1" %)Die Prozess-ID zur eindeutigen Identifikation des Vorgangs|(% colspan="1" %) | ||
34 | |(% colspan="1" %)((( | ||
35 | {{html}} | ||
36 | <span style="padding-left:20px;">- status</span> | ||
37 | {{/html}} | ||
38 | )))|(% colspan="1" %)Der Name des Status in welchem sich der Vorgang befindet|(% colspan="1" %)\\ | ||
39 | |(% colspan="1" %)((( | ||
40 | **~ - currentProjekt** | ||
41 | )))|(% colspan="1" %)Unterobjekt welches die Daten des Projekts des Formulars beinhaltet.|(% colspan="1" %) | ||
42 | |(% colspan="1" %)((( | ||
43 | {{html}} | ||
44 | <span style="padding-left:20px;">- id</span> | ||
45 | {{/html}} | ||
46 | )))|(% colspan="1" %)Die ID des Projekts|(% colspan="1" %) | ||
47 | |{{html}}<span style="padding-left:20px;">- title</span>{{/html}}|Titel des Prokets| | ||
48 | |{{html}}<span style="padding-left:20px;">- description</span>{{/html}}|Beschreibung des Projekts| | ||
49 | |{{html}}<span style="padding-left:20px;"><b>- currentForm</b></span>{{/html}}|Version des Formulars| | ||
50 | |{{html}}<span style="padding-left:35px;">- id</span>{{/html}}|ID der Formularversion| | ||
51 | |{{html}}<span style="padding-left:35px;">- versionNumber</span>{{/html}}|Versionsnummer|\\ | ||
52 | |** - currentSessionID**|Aktuelle Session-ID| | ||
53 | |(% colspan="1" %)((( | ||
54 | **~ - currentUser** | ||
55 | )))|(% colspan="1" %)Unterobjekt welches die Daten des aktuellen Benutzers beinhaltet. Wird das Formular ohne Anmeldung aufgerufen, so werden diese Daten mit einem fiktiven Benutzer mit dem Namen //[Anonymous]// befüllt.|(% colspan="1" %) | ||
56 | |(% colspan="1" %)((( | ||
57 | {{html}} | ||
58 | <span style="padding-left:20px;">- title</span> | ||
59 | {{/html}} | ||
60 | )))|(% colspan="1" %)Die Anrede des Benutzers. Mögliche Werte: //HERR, FRAU//|(% colspan="1" %) | ||
61 | |(% colspan="1" %)((( | ||
62 | {{html}} | ||
63 | <span style="padding-left:20px;">- forename</span> | ||
64 | {{/html}} | ||
65 | )))|(% colspan="1" %)Der Vorname des Benutzers|(% colspan="1" %) | ||
66 | |(% colspan="1" %)((( | ||
67 | {{html}} | ||
68 | <span style="padding-left:20px;">- surename</span> | ||
69 | {{/html}} | ||
70 | )))|(% colspan="1" %)Der Nachname des Benutzers|(% colspan="1" %) | ||
71 | |(% colspan="1" %)((( | ||
72 | {{html}} | ||
73 | <span style="padding-left:20px;">- username</span> | ||
74 | {{/html}} | ||
75 | )))|(% colspan="1" %)Der Benutzername|(% colspan="1" %) | ||
76 | |(% colspan="1" %)((( | ||
77 | {{html}} | ||
78 | <span style="padding-left:20px;">- email</span> | ||
79 | {{/html}} | ||
80 | )))|(% colspan="1" %)Die E-Mail-Adresse des Benutzers|(% colspan="1" %) | ||
81 | |(% colspan="1" %)((( | ||
82 | {{html}} | ||
83 | <span style="padding-left:20px;">- mandant</span> | ||
84 | {{/html}} | ||
85 | )))|(% colspan="1" %)Der Name des Mandanten des Benutzers|(% colspan="1" %) | ||
86 | |(% colspan="1" %)((( | ||
87 | {{html}} | ||
88 | <span style="padding-left:20px;">- active</span> | ||
89 | {{/html}} | ||
90 | )))|(% colspan="1" %)Status des Benutzers. Mögliche Werte: //ACTIVE, LOCKED, DELETED//|(% colspan="1" %) | ||
91 | |(% colspan="1" %)((( | ||
92 | {{html}} | ||
93 | <span style="padding-left:20px;">- role</span> | ||
94 | {{/html}} | ||
95 | )))|(% colspan="1" %)Der Name der Rolle des Benutzers|(% colspan="1" %) | ||
96 | |(% colspan="1" %)((( | ||
97 | {{html}} | ||
98 | <span style="padding-left:20px;">- phonenumber</span> | ||
99 | {{/html}} | ||
100 | )))|(% colspan="1" %)Die Telefonnummer des Benutzers|(% colspan="1" %) | ||
101 | |(% colspan="1" %)((( | ||
102 | {{html}} | ||
103 | <span style="padding-left:20px;">- usergroups</span> | ||
104 | {{/html}} | ||
105 | )))|(% colspan="1" %)Ein JavaScript-Array bestehend aus den Namen der Benutzergruppen des Benutzers|(% colspan="1" %) | ||
106 | |(% colspan="1" %)((( | ||
107 | {{html}} | ||
108 | <span style="padding-left:20px;">- inbox</span> | ||
109 | {{/html}} | ||
110 | )))|(% colspan="1" %)Der Name des Postfachs in welchem sich der Vorgang befindet|(% colspan="1" %) | ||
111 | |{{html}}<span style="padding-left:20px;"><b>- ldap</b></span>{{/html}}|Ein JavaScript-Objekt mit der LDAP-Struktur, des Nutzers welcher sich mittels NTLM-Authentifizierung am Formular angemeldet hat. Siehe auch [[Beispiel Datenstruktur im Firebug>>url:http://help.formcycle.de/download/attachments/1966720/LDAP_Daten_Client.png?version=1&modificationDate=1425481220990&api=v2]]| | ||
112 | |** - pluginResults**|Ein JavaScript-Objekt mit Ergebnissen aus Plugins| | ||
113 | |((( | ||
114 | **~ - serverTime** | ||
115 | )))|JavaScript-Date-Objekt welches die Server-Zeit beim Aufruf des Formulars beinhaltet|(% colspan="1" %) | ||
116 | |(% colspan="1" %)((( | ||
117 | **~ - urlParams** | ||
118 | )))|(% colspan="1" %)Ein JavaScript-Objekt welches die übergebenen URL-Parameter beinhaltet|(% colspan="1" %) | ||
119 | |(% colspan="1" %)((( | ||
120 | {{html}} | ||
121 | <span style="padding-left:20px;">- Parameter-Name</span> | ||
122 | {{/html}} | ||
123 | )))|(% colspan="1" %)Basierend auf dem übergebenen URL-Parameter benanntes Objekt mit dazugehörigem Wert|(% colspan="1" %) | ||
124 | |**- urls**|Ein JavaScript-Objekt mit relativen URL-Aufrufen zu unterschiedlichen Servlets| | ||
125 | |{{html}}<span style="padding-left:20px;">- attachment</span>{{/html}}|Relative Servlet-URL zu Anhänge des Formulars, Beispiel: {{code}}/formcycle/attachment/form/{{/code}}.| | ||
126 | |{{html}}<span style="padding-left:20px;">- context</span>{{/html}}|Aktueller Kontext, Beispiel: {{code}}formcycle{{/code}}| | ||
127 | |{{html}}<span style="padding-left:20px;">- dataquery_db</span>{{/html}}|Relative Servlet-URL zur Datenabfrage innerhalb einer Datenbank, Beispiel: {{code}}/formcycle/datenabfragedb/{{/code}}. Weiterführende Informationen finden Sie [[hier>>doc:Main.UserInterface.Data.DBQueries]].| | ||
128 | |{{html}}<span style="padding-left:20px;">- dataquery_ldap</span>{{/html}}|Relative Servlet-URL zur Datenabfrage eines LDAP-Servers, Beispiel: {{code}}/formcycle/datenabfrageldap/{{/code}}.| | ||
129 | |{{html}}<span style="padding-left:20px;">- datasource_csv</span>{{/html}}|Relative Servlet-URL zur CSV-Datenquelle, Beispiel: {{code}}/formcycle/datenquellecsv/{{/code}}. Weiterführende Informationen finden Sie [[hier>>doc:Main.UserInterface.Data.Sources]].| | ||
130 | |{{html}}<span style="padding-left:20px;">- datasource_db</span>{{/html}}|Relative Servlet-URL zur Datenbank-Datenquelle, Beispiel: {{code}}/formcycle/datenquelledb/{{/code}}. Weiterführende Informationen finden Sie [[hier>>url:http://help4.formcycle.de/xwiki/bin/view/Main/Quellen]].| | ||
131 | |{{html}}<span style="padding-left:20px;">- datasource_xml</span>{{/html}}|Relative Servlet-URL zur XML-Datenquelle, Beispiel: {{code}}/formcycle/datenquellexml/{{/code}}. Weiterführende Informationen finden Sie [[hier>>url:http://help4.formcycle.de/xwiki/bin/view/Main/Quellen]].| | ||
132 | |{{html}}<span style="padding-left:20px;">- plugin</span>{{/html}}|Relative Servlet-URL zur Plugin-Schnittstelle, Beispiel: {{code}}/formcycle/plugin/{{/code}}.| | ||
133 | |{{html}}<span style="padding-left:20px;">- previewAction</span>{{/html}}|Relative Servlet-URL für Vorschau, Beispiel: {{code}}/formcycle/form/preview/3601/1/{{/code}}.| | ||
134 | |{{html}}<span style="padding-left:20px;">- submitAction</span>{{/html}}|Relative Servlet-URL für Abgesendete Formular, Beispiel: {{code}}/formcycle/form/process/3601/1/?lang=de&frid=3819ffe0-4117-45b8-bf81-3933f2dd3414{{/code}}.| | ||
135 | |**- requestType**|Gibt an in welchem Kontext sich der aktuelle Formular-Aufruf befindet | ||
136 | **mögliche und benutzbare Werte:** | ||
137 | - provide (Formular-Auslieferung) | ||
138 | - preview (Formular-Vorschau) | ||
139 | - process (Absenden eines Formulars) | ||
140 | - print (Druck eines Formulars über z.B. den PhantomPrinter) | ||
141 | - review (Formular-Auslieferung im Postfach) | ||
142 | **zur interne Nutzung:** alias, copy, aliascopy, publish, forward| | ||
143 | |||
144 | ~{~{/table}} | ||
145 | |||
146 | == Beispiele == | ||
147 | |||
148 | {{panel title="Zugreifen auf formularspezifische Resourcen"}} | ||
149 | (((Wurde etwa eine Datei //myData.json// als formularspezifische Resource hochgeladen, kann auf diese wie folgt zugegriffen werden.))) | ||
150 | {{code language="javascript"}} | ||
151 | // Get the URL for a file uploaded to this project. | ||
152 | function getResourceURL(filename){ | ||
153 | var pid = String(window.XFC_METADATA.currentProject.id); | ||
154 | var url = XFC_METADATA.urls.context + "includes/ressource?pid=" + pid + "&name=" + encodeURI(filename); | ||
155 | return url; | ||
156 | } | ||
157 | $.get(getResourceURL("myData.json"), function(data){ | ||
158 | // Do something with the data. | ||
159 | }); | ||
160 | {{/code}} | ||
161 | {{/panel}} | ||
162 | |||
163 | |||
164 | {{panel title="Auslesen des Benutzernamen des aktuellen Benutzers"}} | ||
165 | {{code language="javascript"}} | ||
166 | var benutzername = XFC_METADATA.currentUser.username; | ||
167 | {{/code}} | ||
168 | {{/panel}} | ||
169 | |||
170 | |||
171 | {{panel title="Auslesen der LDAP-Daten des am Formular authentifizierten Benutzers"}} | ||
172 | {{code width="600px" language="javascript"}} | ||
173 | var urlParameter = XFC_METADATA.currentUser.ldap; | ||
174 | {{/code}} | ||
175 | {{/panel}} | ||
176 | |||
177 | |||
178 | {{panel title="Auslesen des URL-Parameters //parameter//"}} | ||
179 | {{code width="600px" language="javascript"}} | ||
180 | var urlParameter = XFC_METADATA.urlParams.parameter; | ||
181 | {{/code}} | ||
182 | {{/panel}} | ||
183 | |||
184 | |||
185 | {{panel title="Auslesen der Serverzeit und Anzeige dieser in einem Textfeld //tfServertime//"}} | ||
186 | {{code width="600px" language="javascript"}} | ||
187 | $('[name=tfServertime]').val(XFC_METADATA.serverTime.toString()); | ||
188 | {{/code}} | ||
189 | {{/panel}} | ||
190 | |||
191 | |||
192 | {{panel title="Eine bestimmte Aktion nur ausführen, wenn es sich um einen neuen Vorgang handelt. Zum Beispiel die Vorbelegung von Daten."}} | ||
193 | {{code width="600px" language="javascript"}} | ||
194 | if(!XFC_METADATA.currentProcess.processId) { | ||
195 | //execute function | ||
196 | } | ||
197 | {{/code}} | ||
198 | {{/panel}} |