Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> formular.neuesFenster [in template "20525#20563#143925" at line 848, column 46] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if formular.neuesFenster [in template "20525#20563#143925" in macro "onlineServices" at line 848, column 41] - Reached through: @onlineServices "onlineservices", "on... [in template "20525#20563#143925" at line 191, column 25] ----
1<#assign
2aui = PortletJspTagLibs["/META-INF/liferay-aui.tld"]
3liferay_portlet = PortletJspTagLibs["/META-INF/liferay-portlet-ext.tld"]
4liferay_security = PortletJspTagLibs["/META-INF/liferay-security.tld"]
5liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"]
6liferay_ui = PortletJspTagLibs["/META-INF/liferay-ui.tld"]
7liferay_util = PortletJspTagLibs["/META-INF/liferay-util.tld"]
8portlet = PortletJspTagLibs["/META-INF/liferay-portlet.tld"]
9/>
10
11<@liferay_theme["defineObjects"]/>
12<@portlet["defineObjects"]/>
13
14
15<#if vr?? && vr?has_content>
16 <#assign utils = vr.utils2017/>
17
18 <#if vr.bis2017.ausgewaehlteDienstleistung??>
19 <#assign dienstleistung = vr.bis2017.ausgewaehlteDienstleistung>
20 </#if>
21 <#if vr.bis2017.ausgewaehlteEinrichtung??>
22 <#assign einrichtung = vr.bis2017.ausgewaehlteEinrichtung>
23 </#if>
24 <#if vr.bis2017.ausgewaehlterMitarbeiter??>
25 <#assign mitarbeiter = vr.bis2017.ausgewaehlterMitarbeiter>
26 </#if>
27
28 <#assign suchergebnisDienstleistung = vr.bis2017.suchergebnisDienstleistung/>
29 <#assign suchergebnisEinrichtung = vr.bis2017.suchergebnisEinrichtung/>
30 <#assign suchergebnisMitarbeiter = vr.bis2017.suchergebnisMitarbeiter/>
31
32 <#assign mitarbeiterShow = "vr-bis-detail-mitarbeiter-show"/>
33 <#assign einrichtungShow = "vr-bis-detail-einrichtung-show"/>
34 <#assign dienstleistungShow = "vr-bis-detail-dienstleistung-show"/>
35
36 <#assign current_url_WithHtml = themeDisplay.getPortalURL()/>
37 <#assign current_uri_WithHtml = themeDisplay.getURLCurrent()/>
38
39 <#assign login_url1_WithHtml = 'href="/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&_com_liferay_login_web_portlet_LoginPortlet_redirect='/>
40 <#assign login_url2_WithHtml = '#login" rel="nofollow" data-redirect="true"'/>
41 <#assign login_url_WithHtml = login_url1_WithHtml+ current_url_WithHtml+current_uri_WithHtml+ login_url2_WithHtml/>
42 <#assign vsmGebietID = getterUtil.getString(themeDisplay.getThemeSetting("vsm-gebiet-id"))/>
43 <#assign showContactEmployeesDescription =getterUtil.getBoolean(themeDisplay.getThemeSetting("show-contact-employees-description-in-dl"))/>
44 <#assign plid = themeDisplay.getPlid()/>
45
46 <#assign createAccountURL = portletURLFactory.create(renderRequest,"com_liferay_login_web_portlet_LoginPortlet", plid, "RENDER_PHASE") />
47
48 ${createAccountURL.setParameter("mvcRenderCommandName", "/login/create_account")}
49 ${createAccountURL.setParameter("p_p_state", "maximized")}
50 ${createAccountURL.setParameter("p_p_mode", "view")}
51
52 <#assign showEmployees = getterUtil.getBoolean(themeDisplay.getThemeSetting("show-employees"))/>
53 <#assign
54 iconStyling = getServiceIconStyling()[0]
55 iconClass = getServiceIconStyling()[1]
56 iconWrapperClass = getServiceIconStyling()[2]
57 lockIcon = '<i aria-hidden="true" class="'+iconWrapperClass+' bi bi-person-lock"></i>'
58 moneyIcon = '<i aria-hidden="true" class="'+iconWrapperClass+' bi bi-credit-card"></i>'
59 iconArray = iconArray(lockIcon,moneyIcon,createPersoIcon('persoLogo'))
60
61 dlNeedsLogin = 'Diese Dienstleistung erfordert eine Anmeldung'
62 dlNeedsEidLogin = 'Anmeldung mit elektronischen Personalausweis erforderlich'
63 dlHasCosts = 'Diese Dienstleitung ist kostenpflichtig'
64 dlAndHasCosts = 'und ist kostenpflichtig'
65 loginInfo = "Anmeldung erforderlich"
66 paymentInfo = "Kostenpflichtig"
67 eidInfo = "Anmeldung mit elektronischen Personalausweis erforderlich"
68 loginInfoTextArray = infoTextArray(dlNeedsLogin,dlHasCosts, dlAndHasCosts,dlNeedsEidLogin)
69 iconLegendTextArray = iconLegendTextArray(loginInfo,paymentInfo,eidInfo)
70
71 showDLPersoLogo = false
72 showDLMoneyIcon = false
73 showDLLockIcon = false
74
75 beforeLinkTitle = ""
76 linkCss = ""
77 linkClass = "btn btn-primary"
78 />
79
80
81 <#if einrichtung?? && einrichtung?has_content>
82<div>
83 <div class="row mb-5">
84 <h2 class="pageheader"><span class="icon-door"></span>${einrichtung.name}</h2>
85 </div>
86
87 <div class="row">
88 <div class="col-8 nopadleft">
89 <div class="fsM cGray lh35 mb-5">
90 ${einrichtung.beschreibung}
91 </div>
92 <div id="detailList" class="fsM cGray lh35 mb-5 mt-5">
93 <@addVerkehrsanbindung einrichtung/>
94 <@addBarrierefreieErreichbarkeit einrichtung/>
95 </div>
96 <@addServicesList einrichtung/>
97 <#if einrichtung.mitarbeiterList?has_content>
98 <h2 class="fsXL mb-2 mt-5"><span style="font-weight: bold">Mitarbeiterinnen und Mitarbeiter</span></h2>
99 <#list einrichtung.mitarbeiterList as ma>
100 <div class="card white mb-4 nobutton padleft">
101 <div class="card-body">
102 <h2 class="card-title cBlue fsM mb-1">
103 <#if showEmployees>
104 <span class="icon-user" style="margin-left: -30px; margin-right: 10px;"></span><a class="cWhite" tabindex="0" href="${utils.getMitarbeiterUrl(ma.id)}" ><span id="mitarbeiter_a">${ma.getName()}</span></a>
105 <#else>
106 <span class="icon-user" style="margin-left: -30px; margin-right: 10px;"></span><span id="mitarbeiter_a">${ma.getName()}</span>
107 </#if>
108 </h2>
109 <p class="card-text cGray fsSM"> ${ma.position} </p>
110
111 <#assign i = 0>
112 <#if ma.telefonnummer?has_content>
113 ${createPhoneLink5(ma,'','cBlue','font-size: 15px !important; margin-right: 5px;',true)}
114 <#assign i = i+1>
115 </#if>
116 <#if ma.mobil?has_content>
117 <#if i gte 1>
118 <span class="cardtabletextspan">|</span>
119 </#if>
120 ${createMobilLink(ma,'','cBlue','font-size: 15px !important; margin-right: 5px;',true)}
121 <#assign i = i+1>
122 </#if>
123 <#if ma.email?has_content>
124 <#if i gte 1>
125 <span class="cardtabletextspan">|</span>
126 </#if>
127 <div class="cardtabletext">
128 ${createEmail(ma,'','cWhite','font-size: 15px !important; margin-right: 5px;',true)}
129 </div>
130 <#assign i = i+1>
131 </#if>
132 <#if ma.raum?has_content>
133 <#if i gte 1>
134 <span class="cardtabletextspan">|</span>
135 </#if>
136 <div class="cardtabletext">
137 <span class="icon-mapmarker" style="font-size: 13px !important; margin-right: 5px;"></span> ${ma.raum}
138 </div>
139 </#if>
140 </div>
141 </div>
142 </#list>
143 </#if>
144 </div>
145 <div class="col-4">
146 <@addContactBox einrichtung einrichtung/>
147 <@addServiceHours einrichtung/>
148 <@addInternetAdressen einrichtung/>
149 </div>
150 </div>
151</div>
152</#if>
153
154<#------------------------------Dienstleistung----------------------------------->
155
156 <#if dienstleistung?? && dienstleistung?has_content>
157 <#assign textmodul = dienstleistung.textmodul />
158 <div class="">
159 <div class="row mb-5">
160 <h2 class="pageheader w-100"><span class="icon-clipboard"></span>${dienstleistung.name}</h2>
161 <span class="tags" aria-label="Tags:">
162 <#list dienstleistung.tags as t>
163 <span class="tag">${t.name}</span>
164 </#list>
165 </span>
166 </div>
167 <div class="row">
168 <div class="col-8 nopadleft">
169 <div class="fsM cGray lh35 mb-5">
170
171 <#if existsAndHasContent1(textmodul.kurztext.inhalt!'')>
172 <p>
173 ${textmodul.kurztext.inhalt}
174 </p>
175 </#if>
176 <#if existsAndHasContent1(textmodul.volltext.inhalt!'')>
177 <p>
178 ${textmodul.volltext.inhalt}
179 </p>
180 </#if>
181 </div>
182
183
184 <#if existsAndSizeGTZero(dienstleistung.extensions) || existsAndSizeGTZero(dienstleistung.formulare) || (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content) || existsAndSizeGTZero(dienstleistung.textmodul.formulare.weiterfuehrenderLink)>
185 <div id="OnlinediensteWrapper" class="fsM cGray lh35 mb-5 mt-5">
186 <a href="#Onlinedienste" class="btn btn-primary" data-toggle="collapse" aria-expanded="true">
187 ${addChevronIcon()}
188 <h2>Onlinedienstleistungen</h2>
189 </a>
190 <div id="Onlinedienste" class="collapse show" data-toggle="collapse">
191 <@onlineServices "onlineservices", "onlineservicesIcons", dienstleistung, linkCss, linkClass, beforeLinkTitle, iconArray, loginInfoTextArray />
192 <@iconLegendList "onlineservicesIcons", "onlineservices", "black", iconArray, iconLegendTextArray, showDLLockIcon, showDLMoneyIcon, showDLPersoLogo />
193 </div>
194 </div>
195 </#if>
196
197
198
199 <div id="detailList" class="fsM cGray lh35 mb-5 mt-5">
200 <@textmodulCollapse textmodul.weiterfuehrendeInformationen,'WeiterfuehrendeInformationen','Weiterführende Informationen'/>
201 <@textmodulCollapse textmodul.voraussetzungen,'Voraussetzungen','Voraussetzungen'/>
202 <@textmodulCollapse textmodul.bearbeitungsdauer,'Bearbeitungsdauer','Bearbeitungsdauer'/>
203 <@textmodulCollapse textmodul.verfahrensablauf,'Verfahrensablauf','Verfahrensablauf'/>
204 <@textmodulCollapse textmodul.erforderlicheUnterlagen,'ErforderlicheUnterlagen','Erforderliche Unterlagen'/>
205 <@textmodulCollapse textmodul.fristen,'fristen','Fristen'/>
206 <@textmodulCollapse textmodul.rechtsgrundlagen,'Rechtsgrundlagen','Rechtsgrundlagen'/>
207 <@textmodulCollapse textmodul.rechtsbehelf,'Rechtsbehelf','Rechtsbehelf'/>
208 <@textmodulCollapse textmodul.hinweiseBesonderheiten,'HinweiseUndBesonderheiten','Hinweise und Besonderheiten'/>
209 <@textmodulCollapse textmodul.zusatzAnWenWenden,'anWenWe','An Wen Wenden'/>
210 <@textmodulCollapse textmodul.zusatzFreigegebenDurch,'FreigegebenDurch','Freigegeben durch'/>
211 <@textmodulCollapse textmodul.zusatzFreigegebenAm,'FreigegebenAm','Freigegeben am'/>
212 <@textmodulCollapse textmodul.zusatzUrheber,'Urheber','Urheber'/>
213 <@textmodulCollapse textmodul.zusatzZustaendigeStelle,'ZustaendigeStelle','Zuständige Stelle'/>
214
215 <#if dienstleistung.amtFachbereich?has_content>
216 <a href="#amtFachbereich" class="btn btn-primary" data-toggle="collapse">${addChevronIcon()}<h2>Amt/Fachbereich</h2></a>
217 <div id="amtFachbereich" class="collapse">
218 ${dienstleistung.amtFachbereich}
219 </div>
220 </#if>
221
222 <#if dienstleistung.kostenmodul.beschreibung?has_content || dienstleistung.kostenmodul.kosten?has_content>
223 <a href="#Kosten" class="btn btn-primary" data-toggle="collapse">${addChevronIcon()}<h2>Kosten</h2></a>
224 <div id="Kosten" class="collapse">
225 <@kostenliste3 />
226 </div>
227 </#if>
228
229 <#if dienstleistung.zahlungsweisen?size gt 0>
230
231 <a href="#Zahlungsweisen" class="btn btn-primary" data-toggle="collapse"><h2>Zahlungsweisen</h2></a>
232 <div id="Zahlungsweisen" class="collapse">
233 <ul>
234 <#list dienstleistung.zahlungsweisen as zw>
235 <li>
236 <p>${zw.name}</p>
237 <#if zw.beschreibung?? && zw.beschreibung?has_content>
238 <p>${zw.beschreibung}</p>
239 </#if>
240 </li>
241 </#list>
242 </ul>
243 </div>
244 </#if>
245 </div>
246 </div>
247 <div class="col-4">
248 <@addZustaendigeStelle dienstleistung/>
249 <@addEmployeeList dienstleistung />
250
251 <#if dienstleistung.dokumentList?has_content>
252 <h2 class="fsXL mb-2">
253 <span style="font-weight: bold">Dokumente</span>
254 </h2>
255 <div id="documents" class="card white mb-4 nobutton padleft">
256 <div class="card-body">
257 <ul>
258 <#list dienstleistung.dokumentList as document>
259 <#assign url = renderResponse.createResourceURL()/>
260 ${url.setResourceID("vr-bis-detail-document-download")}
261 ${url.setParameter("id", "${document.id}")}
262 <li><a href="${url}" title="Download ${document.name}" target="_blank" download>${document.name}</a></li>
263 </#list>
264 </ul>
265 </div>
266 </div>
267 </#if>
268
269 <#if dienstleistung.verwandteDienstleistungen?has_content>
270 <h2 class="fsXL mb-2">
271 <span style="font-weight: bold">Verwandte Dienstleistungen</span>
272 </h2>
273 <div id="verwandteDienstleistungen" class="card white mb-4 nobutton padleft">
274 <div class="card-body">
275 <ul>
276 <#list dienstleistung.verwandteDienstleistungen as dl>
277 <li>
278 <a href="${utils.createRenderUrl(renderResponse,dienstleistungShow,dl.id)}">${dl.name}</a>
279 </li>
280 </#list>
281 </ul>
282 </div>
283 </div>
284 </#if>
285
286 <#if (dienstleistung.textmodul.volltext.weiterfuehrenderLink?has_content ||
287 dienstleistung.textmodul.kurztext.weiterfuehrenderLink?has_content ||
288 dienstleistung.textmodul.rechtsgrundlagen.weiterfuehrenderLink?has_content ||
289 dienstleistung.textmodul.erforderlicheUnterlagen.weiterfuehrenderLink?has_content ||
290 dienstleistung.textmodul.voraussetzungen.weiterfuehrenderLink?has_content ||
291 dienstleistung.textmodul.verfahrensablauf.weiterfuehrenderLink?has_content ||
292 dienstleistung.textmodul.weiterfuehrendeInformationen.weiterfuehrenderLink?has_content ||
293 dienstleistung.textmodul.hinweiseBesonderheiten.weiterfuehrenderLink?has_content ||
294 dienstleistung.textmodul.rechtsbehelf.weiterfuehrenderLink?has_content ||
295 dienstleistung.textmodul.bearbeitungsdauer.weiterfuehrenderLink?has_content ||
296 dienstleistung.textmodul.fristen.weiterfuehrenderLink?has_content)>
297 <h2 class="fsXL mb-2">
298 <span style="font-weight: bold">Internetadressen</span>
299 </h2>
300 <div id="links" class="card white mb-4 nobutton padleft">
301 <div class="card-body">
302 <ul>
303 ${linklooper(dienstleistung.textmodul.volltext)}
304 ${linklooper(dienstleistung.textmodul.kurztext)}
305 ${linklooper(dienstleistung.textmodul.rechtsgrundlagen)}
306 ${linklooper(dienstleistung.textmodul.erforderlicheUnterlagen)}
307 ${linklooper(dienstleistung.textmodul.voraussetzungen)}
308 ${linklooper(dienstleistung.textmodul.verfahrensablauf)}
309 ${linklooper(dienstleistung.textmodul.weiterfuehrendeInformationen)}
310 ${linklooper(dienstleistung.textmodul.hinweiseBesonderheiten)}
311 ${linklooper(dienstleistung.textmodul.rechtsbehelf)}
312 ${linklooper(dienstleistung.textmodul.bearbeitungsdauer)}
313 ${linklooper(dienstleistung.textmodul.fristen)}
314 </ul>
315 </div>
316 </div>
317 </#if>
318 </div>
319 </div>
320 </div>
321 <#if vsmGebietID != ''>
322 <!-- Portalverbund.NRW -->
323 <div vocab="https://vsm.nrw/rdfa/v1.0/" typeof="Zustaendigkeit" style="display:none;" aria-hidden="true">
324 <div property="leistung" typeof="Leistung">
325 <#if dienstleistung.leiKaEintraege?size gt 0>
326 <#list dienstleistung.leiKaEintraege as idName>
327 <span property="schluessel" content="${idName.name}"> <!-- LeiKa-Schlüssel --> </span>
328 </#list>
329 </#if>
330 <#if dienstleistung.name?has_content><span property="leistungsbezeichnung">${dienstleistung.name}</span></#if>
331 <#if dienstleistung.beschreibung?has_content> <span property="volltext">${dienstleistung.beschreibung}</span></#if>
332 <#if dienstleistung.unterlagen?has_content><span property="erforderlicheUnterlagen">${dienstleistung.unterlagen}</span></#if>
333 <#if dienstleistung.weitereInfos?has_content><span property="weiterfuehrendeInformationen">${dienstleistung.weitereInfos}</span></#if>
334 <#if dienstleistung.kostenmodul.beschreibung?has_content || dienstleistung.kostenmodul.kosten?has_content><span property="kosten"><@kostenliste3 /></span> </#if>
335 <#if dienstleistung.synonyme?has_content><span property="begriffeImKontext">${dienstleistung.synonyme}</span> </#if>
336 <span property="urlOnlineDienst">${currentURL}</span> <!-- Variable muss im ADT-Header noch vorher deklariert werden -->
337 </div>
338 <#list dienstleistung.einrichtung.einrichtungList as einrichtung>
339 <div property="organisationseinheit" typeof="Organisationseinheit">
340 <#if einrichtung.name?has_content><span property="name">${einrichtung.name}</span></#if>
341 <#if einrichtung.anschrift?has_content>
342 <div property="anschrift" typeof="Anschrift">
343 <span property="typ" class="hidden">001</span>
344 <span property="strasse">${einrichtung.anschrift.strasse}</span> <span property="hausnummer">${einrichtung.anschrift.hausnummer}</span>
345 <span property="postleitzahl">${einrichtung.anschrift.postleitzahl}</span> <span property="ort">${einrichtung.anschrift.ort}</span>
346 </div>
347 </#if>
348 <#if einrichtung.telefonnummer?has_content>
349 <div property="kommunikation" typeof="Kommunikation">
350 <span property="kanal" content="telefon">Telefon</span>
351 <span property="kennung">${einrichtung.telefonnummer}</span>
352 </div>
353 </#if>
354 <#if einrichtung.faxnummer?has_content>
355 <div property="kommunikation" typeof="Kommunikation">
356 <span property="kanal" content="fax">Fax</span>
357 <span property="kennung">${einrichtung.faxnummer}</span>
358 </div>
359 </#if>
360
361 <#list dienstleistung.mitarbeiterList as mitarbeiter>
362 <div property="kontaktperson" typeof="Kontaktperson">
363 <#if mitarbeiter.anrede?has_content><p property="anrede">${mitarbeiter.anrede}</p> </#if>
364 <#if mitarbeiter.titel?has_content><p property="titel">${mitarbeiter.titel}</p> </#if>
365 <#if $mitarbeiter.vorname?has_content><p property="vorname">${mitarbeiter.vorname}</p> </#if>
366 <#if mitarbeiter.familienname?has_content><p property="familienname">${mitarbeiter.familienname}</p></#if>
367 <#if mitarbeiter.position?has_content><p property="position">${mitarbeiter.position}</p> </#if>
368 <#if mitarbeiter.raum?has_content><p property="raum">${mitarbeiter.raum}</p> </#if>
369
370 <#if mitarbeiter.telefonnummer?has_content>
371 <div property="kommunikation" typeof="Kommunikation">
372 <span property="kanal" content="telefon"></span>
373 <span property="kennung">${mitarbeiter.telefonnummer}</span>
374 </div>
375 </#if>
376 <#if mitarbeiter.email?has_content>
377 <div property="kommunikation" typeof="Kommunikation">
378 <span property="kanal" content="email"></span>
379 <span property="kennung">${mitarbeiter.email}</span>
380 </div>
381 </#if>
382 </div>
383 </#list>
384
385 <span property="rolle" content="03"></span>
386 <span property="gebietID" content="${vsmGebietID}"></span>
387 </div>
388 </#list>
389 </div>
390 <!-- Portalverbund.NRW -->
391 </#if>
392
393</#if>
394
395<#------------------------------Mitarbeiter----------------------------------->
396
397 <#if mitarbeiter?? && showEmployees>
398 <div>
399 <div class="row mb-5">
400 <h2 class="pageheader w-100"><span class="icon-user"></span>${mitarbeiter.getName()}</h2>
401 <#if mitarbeiter.position?has_content>
402 <span class="position" aria-label="Position ">${mitarbeiter.position}</span>
403 </#if>
404 </div>
405
406 <div class="row">
407 <div class="col-8 nopadleft">
408 <#if mitarbeiter.beschreibung?has_content>
409 <div class="fsM cGray lh35 mb-5">
410 ${mitarbeiter.beschreibung}
411 </div>
412 </#if>
413 <@addServicesList mitarbeiter/>
414 <#if mitarbeiter.einrichtungList?size gt 0>
415 <h2 class="fsXL mb-2 mt-5"> <span style="font-weight: bold">Einrichtungen </span></h2>
416 <div class="mb-5">
417 <ul class="detaillist einrichtungen fsM">
418 <#list mitarbeiter.einrichtungList as er>
419 <li><a tabindex="0" href="${utils.getEinrichtungUrl(er.id)}" class="cBlue">${er.name}</a></li>
420 </#list>
421 </ul>
422 </div>
423 </#if>
424 </div>
425 <div class="col-4">
426 <@addPortrait mitarbeiter/>
427 <#if mitarbeiter.einrichtungList?size gt 0>
428 <#assign firstFacility = mitarbeiter.einrichtungList[0]/>
429 <#else>
430 <#assign firstFacility = ''/>
431 </#if>
432 <@addContactBox firstFacility mitarbeiter/>
433 <@addServiceHours mitarbeiter/>
434 </div>
435 </div>
436 </div>
437
438
439</#if>
440
441 <#if (!einrichtung?? || !mitarbeiter?? || !dienstleistung??)>
442 <script>
443 jQuery(document).ready(function () {
444 jQuery('.search-area').parent().parent().remove()
445 });
446 </script>
447</#if>
448</#if>
449
450<#macro addServiceHours base_variable>
451 <#local serviceZeitenEmpty = true/>
452 <#if base_variable.servicezeitenStrukturiert?? && base_variable.servicezeitenStrukturiert.tage??>
453 <#list base_variable.servicezeitenStrukturiert.tage?values as value>
454 <#list value.paare?values as paare>
455 <#if paare?? && paare?has_content && paare != '-'>
456 <#local serviceZeitenEmpty = false />
457 <#break>
458 </#if>
459 </#list>
460 <#if serviceZeitenEmpty == false>
461 <#break>
462 </#if>
463 </#list>
464 </#if>
465 <#if serviceZeitenEmpty == false || base_variable.servicezeitenFreitext?has_content>
466 <div class="card blue darkbluegradient nobutton">
467 <div class="card-body">
468 <h2 class="card-title fsML mb-4">
469 <span>Servicezeiten</span>
470 </h2>
471 <div class="card-text fsS">
472 <#if serviceZeitenEmpty == false>
473 <@createTimeTable16 base_variable />
474 </#if>
475 <#if base_variable.servicezeitenFreitext?has_content>
476 <p class="mt-2">
477 ${base_variable.servicezeitenFreitext}
478 </p>
479 </#if>
480 </div>
481 </div>
482 </div>
483 </#if>
484</#macro>
485
486
487<#function linklooper linkList>
488 <#assign
489 value = ""
490 class = ""
491 target = ""
492 />
493 <#if linkList?has_content>
494 <#list linkList.weiterfuehrenderLink as link>
495 <#if link.neuesFenster>
496 target='_blank'
497 </#if>
498 <#assign
499 value = value + "<li>
500 <a href='${link.uri}' title='${link.titel}' class='${class}' ${target}>${link.titel}</a>
501 </li>"/>
502 </#list>
503 </#if>
504 <#return value>
505</#function>
506
507<#macro kostenliste3>
508 <#if dienstleistung.kostenmodul.beschreibung?has_content || dienstleistung.kostenmodul.kosten?has_content>
509 <#if dienstleistung.kostenmodul.kosten?has_content>
510 <table class="table table-hover">
511 <thead>
512 <tr>
513 <th class="p-2">Name</th>
514 <th class="p-2">Kosten</th>
515 <th class="p-2">Beschreibung</th>
516 </tr>
517 </thead>
518 <tbody>
519 <#list dienstleistung.kostenmodul.kosten as kosten>
520 <tr>
521 <td class="p-2">${kosten.name}</td>
522 <td class="p-2">
523
524 <#if (kosten.isKostenfrei())>
525 kostenfrei
526 <#elseif (kosten.isKostenVariabel())>
527 zwischen ${utils.formatCurrency(kosten.von)} und ${utils.formatCurrency(kosten.bis)} EUR
528 <#else>
529 ${utils.formatCurrency(kosten.von)} EUR
530 </#if>
531 </td>
532 <td class="p-2">
533 <#if kosten.beschreibung??>
534 ${kosten.beschreibung}
535 </#if>
536 </tr>
537 </#list>
538 </tbody>
539 </table>
540 </#if>
541 ${dienstleistung.kostenmodul.beschreibung}
542 </#if>
543</#macro>
544
545<#macro createTimeTable16 baseVariable>
546 <#assign serviceZeitenEmpty = baseVariable.servicezeitenFreitext?has_content />
547 <#if baseVariable.servicezeitenStrukturiert?has_content && baseVariable.servicezeitenStrukturiert.tage??>
548 <#list baseVariable.servicezeitenStrukturiert.tage?values as value>
549 <#list value.paare?values as paare>
550 <#if paare?? && paare?has_content>
551 <#assign serviceZeitenEmpty = false />
552 <#break>
553 </#if>
554 </#list>
555 <#if !serviceZeitenEmpty>
556 <#break>
557 </#if>
558 </#list>
559 </#if>
560
561
562 <#if !serviceZeitenEmpty>
563 <table id="serviceTimeTable" class="" style="width:100%;table-layout: fixed;font-size: 0.75rem;">
564 <thead class="">
565 <tr>
566 <th style="width: calc(20%)" class="">Tag</th>
567 <th style="width: calc(80% / 2)" class="">Zeitraum 1</th>
568 <th style="width: calc(80% / 2)" class="">Zeitraum 2</th>
569 </tr>
570 </thead>
571 <tbody>
572
573 <#assign tagKeys = baseVariable.servicezeitenStrukturiert.tage?keys>
574 <#assign tagNames = baseVariable.servicezeitenStrukturiert.tage?values>
575
576 <#list tagKeys as tagName>
577 <#assign index = tagKeys?seq_index_of(tagName)>
578 <#assign tagZeiten = tagNames[index]>
579 <#assign emptyTag = true />
580 <#list tagZeiten.paare?values as tagZeitenPaar>
581 <#if tagZeitenPaar?? && tagZeitenPaar?has_content && tagZeitenPaar != '-' >
582 <#assign emptyTag = false />
583 <#break>
584 </#if>
585 </#list>
586 <#if emptyTag>
587 <#else>
588 <#if tagName??>
589 <#assign
590 tagNameFormated = tagName?substring(0, 1)?upper_case
591 tagNameFormated = tagNameFormated + tagName?substring(1)?lower_case
592 />
593 <tr>
594 <td>${tagNameFormated}</td>
595 <#assign ersterEintraginSpalte = true />
596
597 <#assign keys = tagZeiten.paare?keys>
598 <#assign values = tagZeiten.paare?values>
599
600 <#list keys as key>
601 <#assign index = keys?seq_index_of(key)>
602 <#assign value = values[index]>
603 <#if key == "VORMITTAGS">
604 <#if value.getVon()?? && value.getVon()?has_content && value.getBis()?? && value.getBis()?has_content>
605 <td class="">
606 ${value.getVon()} bis ${value.getBis()} Uhr
607 </td>
608 <#else>
609 <td class=""></td>
610 </#if>
611 </#if>
612 <#if key == "NACHMITTAGS">
613 <#if value.getVon()?? && value.getVon()?has_content && value.getBis()?? && value.getBis()?has_content>
614 <td class="">
615 ${value.getVon()} bis ${value.getBis()} Uhr
616 </td>
617 <#else>
618 <td class=""></td>
619 </#if>
620 </#if>
621 </#list>
622 </tr>
623 </#if>
624 </#if>
625 </#list>
626 </tbody>
627 </table>
628 </#if>
629</#macro>
630
631<#function createNumberHref3 baseObject prefix>
632 <#local
633 phonenumber = baseObject?replace('-','')?replace(' ','')?replace('+49','')
634 />
635 <#if phonenumber?index_of('0') == 0>
636 <#local
637 index = phonenumber?index_of('0')
638 index = index + 1
639 combinatedPhonenumber = prefix + ":+49" + phonenumber?substring(index)
640 />
641 <#else>
642 <#local
643 combinatedPhonenumber = prefix + ":+49" + phonenumber
644 />
645 </#if>
646
647 <#return combinatedPhonenumber>
648</#function>
649
650<#function createPhoneHref3 baseObject>
651 <#return createNumberHref3(baseObject.telefonnummer,'tel')>
652</#function>
653<#function createFaxHref3 baseObject>
654 <#return createNumberHref3(baseObject.faxnummer,'fax')>
655</#function>
656<#function createMailHref5 baseObject>
657 <#return 'mailto:'+ baseObject.email>
658</#function>
659<#function createMobilHref3 baseObject>
660 <#return createNumberHref3(baseObject.mobil,'tel')>
661</#function>
662
663<#function createPhoneLink5 baseObject,styleLink, linkClass, styleIcon, hideParagraph>
664 <#return createContactList5(createPhoneHref3(baseObject), "icon-phone", "${baseObject.telefonnummer} anrufen.", baseObject.telefonnummer, styleLink, styleIcon, linkClass, hideParagraph)>
665</#function>
666
667<#function createFaxLink5 baseObject,styleLink, linkClass,styleIcon, hideParagraph>
668 <#return createContactList5(createFaxHref3(baseObject), "icon-fax", "Fax an ${baseObject.faxnummer} senden.", baseObject.faxnummer, styleLink, styleIcon, linkClass, hideParagraph)>
669</#function>
670
671<#function createMobilLink baseObject,styleLink, linkClass, styleIcon, hideParagraph>
672 <#return createMobileContact(createMobilHref3(baseObject), "${baseObject.mobil} anrufen.", baseObject.mobil, styleLink, linkClass, hideParagraph)>
673</#function>
674
675<#function createEmail baseObject,styleLink, linkClass, styleIcon, hideParagraph>
676 <#return createContactList5(createMailHref5(baseObject), "icon-mail", "E-Mail an ${baseObject.email} senden.", baseObject.email, styleLink, styleIcon, linkClass, hideParagraph)>
677</#function>
678
679<#function createContactList5 href, icon, title, content, stylelink, styleIcon, linkClass, hideParagraph>
680 <#local string = ''>
681 <#if !hideParagraph>
682 <#local string += '<p>'>
683 </#if>
684 <#local string +='
685 <a tabindex="0" href="${href}" class="${linkClass}" title="${title}" style="${styleLink!}">
686 <span aria-hidden="true" style="display: contents;">
687 <span class="${icon}" style="${styleIcon}"></span>
688 ${content}
689 </span>
690 </a>
691 '>
692 <#if !hideParagraph>
693 <#local string += '<p>'>
694 </#if>
695 <#return string>
696</#function>
697
698<#function createMobileContact href, title, content, stylelink, linkClass, hideParagraph>
699 <#local string = ''>
700 <#if !hideParagraph>
701 <#local string += '<p>'>
702 </#if>
703 <#local string +='
704 <a tabindex="0" href="${href}" class=" ${linkClass}" title="${title}" style="${styleLink!}">
705 <span aria-hidden="true" style="display: contents;">
706 <svg aria-hidden="true" class="mr-1 lexicon-icon mobile-portrait" focusable="false"><use href="/o/persica-theme/images/clay/icons.svg#mobile-portrait"></use></svg>
707 ${content}
708 </span>
709 </a>
710 '>
711 <#if !hideParagraph>
712 <#local string += '<p>'>
713 </#if>
714 <#return string>
715</#function>
716
717
718<#function existsAndHasContent1 element>
719 <#if element?? && element?has_content>
720 <#return true />
721 <#else>
722 <#return false />
723 </#if>
724</#function>
725
726<#macro textmodulCollapse modul id title>
727 <#if existsAndHasContent1(modul.inhalt!'')>
728 <a href="#${id}" class="btn btn-primary" data-toggle="collapse">${addChevronIcon()}<h2>${title}</h2></a>
729 <div id="${id}" class="collapse">
730 ${modul.inhalt}
731 </div>
732 </#if>
733</#macro>
734
735<#macro addCollapse id title content>
736 <#if content?? && content?has_content>
737 <a href="#${id}" class="btn btn-primary" data-toggle="collapse">${addChevronIcon()}<h2>${title}</h2></a>
738 <div id="${id}" class="collapse">
739 ${content}
740 </div>
741 </#if>
742</#macro>
743
744<#function existsAndSizeGTZero element>
745 <#if element?? && element?size gt 0>
746 <#return true />
747 <#else>
748 <#return false />
749 </#if>
750</#function>
751
752
753
754
755
756 <#macro onlineServices linkToIconsid, iconListDestination, dienstleistung, linkCss, linkclass,beforeLinkTitle, iconArray, infoTextArray>
757 <#local
758 lockIcon = iconArray[0]
759 iconBefore = beforeLinkTitle
760 />
761 <#if existsAndSizeGTZero(dienstleistung.extensions) || existsAndSizeGTZero(dienstleistung.formulare) || (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content) || existsAndSizeGTZero(dienstleistung.textmodul.formulare.weiterfuehrenderLink)>
762 <#local
763 current_url_WithHtml = themeDisplay.getPortalURL()
764 current_uri_WithHtml = themeDisplay.getURLCurrent()
765 login_url1_WithHtml = 'href="/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&_com_liferay_login_web_portlet_LoginPortlet_redirect='
766 login_url2_WithHtml = '#login" rel="nofollow" data-redirect="true"'
767 login_url_WithHtml = login_url1_WithHtml+current_url_WithHtml+current_uri_WithHtml+login_url2_WithHtml
768 />
769
770 <#if showDLLockIcon || showDLMoneyIcon || showDLPersoLogo>
771 <a class="sr-only sr-only-focusable" href="#${iconListDestination}" id="${linkToIconsid}">Sprung zur Icon Legende.</a>
772 </#if>
773
774 <ul style="list-style: none !important;padding-left: 0 !important;display: flex;flex-wrap: wrap;gap: 5px;">
775 <#local
776 css = linkCss
777 dlElementClass = linkClass
778 />
779 <#if existsAndSizeGTZero(dienstleistung.extensions)>
780 <#local
781 userAuthLevel = utils.getAuthLevel(renderRequest)
782 idCounter = 1
783 />
784 <#list dienstleistung.extensions as formular>
785 <#local minAuthLevel = formular.minAuthLevel />
786 <li class="mb-2 w-75">
787 <p class="mb-0">
788 <#if userAuthLevel gte minAuthLevel>
789 <@extension_entry formular, css, dlElementClass, iconBefore, true, '' ,infoTextArray iconArray />
790 <#else>
791 <#if minAuthLevel == 1>
792 <@extension_entry formular, css, dlElementClass, iconBefore, true, 'login' ,infoTextArray iconArray />
793 <#elseif minAuthLevel == 2>
794 <@extension_entry formular, css, dlElementClass, iconBefore, true, 'login' ,infoTextArray iconArray />
795 <#elseif minAuthLevel == 3>
796 <@extension_entry formular, css, dlElementClass, iconBefore, true, 'eid' ,infoTextArray iconArray />
797 </#if>
798 </#if>
799 </p>
800 </li>
801 <#else>
802 <#assign idCounter = idCounter + 1/>
803 </#list>
804 </#if>
805 <#if !utils.angemeldet && !dienstleistung.nutzbarAlsGast>
806 <#if existsAndSizeGTZero(dienstleistung.formulare)>
807 <#assign showDLLockIcon = true/>
808 <#list dienstleistung.formulare as formular>
809 <li class="mb-2 w-75">
810 <p class="mb-0">
811 <#assign title = formular.titel/>
812 <#assign description = "${title}. ${infoTextArray[0]}"/>
813 <#if formular.neuesFenster>
814 <#assign target = "blank"/>
815 <#else>
816 <#assign target = 'self'/>
817 </#if>
818 <#assign icon =iconArray[0]/>
819 <#assign href = ''/>
820 <#assign aditionalAttributs = "${createLoginURL4(formular.uri)}"/>
821 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs/>
822 </p>
823 </li>
824 </#list>
825 </#if>
826 <#if (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content)>
827 <#assign showDLLockIcon = true/>
828 <li class="mb-2 w-75">
829 <p class="mb-0">
830 <#assign title = 'Zum Kontaktformular'/>
831 <#assign description = "${title}. ${infoTextArray[0]}"/>
832 <#assign target = ''/>
833 <#assign icon = iconArray[0]/>
834 <#assign href = ''/>
835 <#assign aditionalAttributs = "${createLoginURL4(dienstleistung.kontaktformularUrl)}"/>
836 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs/>
837
838 </p>
839 </li>
840 </#if>
841 <#else>
842 <#if existsAndSizeGTZero(dienstleistung.formulare)>
843 <#list dienstleistung.formulare as formular>
844 <li class="mb-2 w-75 formulare">
845 <p class="mb-0">
846 <#assign title = formular.titel/>
847 <#assign description = "${title}."/>
848 <#if formular.neuesFenster>
849 <#assign target = 'blank'/>
850 <#else>
851 <#assign target = 'self'/>
852 </#if>
853 <#assign icon =''/>
854 <#assign href = formular.uri/>
855 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/>
856 </p>
857 </li>
858 </#list>
859 </#if>
860 <#if (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content)>
861 <li class="mb-2 w-75">
862 <p class="mb-0">
863 <#assign title = 'Zum Kontaktformular'/>
864 <#assign description = title/>
865 <#assign target = ''/>
866 <#assign icon = ''/>
867 <#assign href = dienstleistung.kontaktformularUrl/>
868 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/>
869 </p>
870 </li>
871 </#if>
872 </#if>
873 <#if existsAndSizeGTZero(dienstleistung.textmodul.formulare)>
874 <#list dienstleistung.textmodul.formulare.weiterfuehrenderLink as formular>
875
876 <li class="mb-2 w-75 textmodul-formulare">
877 <p class="mb-0">
878 <#if formular.titel != "" && formular.titel??>
879 <#assign title = formular.titel/>
880 <#else>
881 <#assign title = formular.uri/>
882 </#if>
883 <#assign description = title/>
884 <#if formular.neuesFenster>
885 <#assign target = 'blank'/>
886 <#else>
887 <#assign target = 'self'/>
888 </#if>
889 <#assign icon =''/>
890 <#assign href = formular.uri/>
891 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/>
892 </p>
893 </li>
894
895 </#list>
896 </#if>
897 </ul>
898 </#if>
899 </#macro>
900
901
902 <#macro createDLnewLink18 css, linkClass, bevoreLinkTitle, icon, title, target, description, hrefParam, aditionalAttributsParams=''>
903 <#local
904 target = ""
905 href = ""
906 aditionalAttributs = ""
907 attributs = ''
908 />
909 <#local description = "title='${description}'" />
910 <#if target == "blank">
911 <#local target = "_blank"/>
912 <#elseif target == "self">
913 <#local target = "_self"/>
914 <#else>
915 <#local target = "_blank"/>
916 </#if>
917
918 <#if hrefParam?has_content && hrefParam != ''>
919 <#local href= "href='${hrefParam}'" />
920 <#else>
921 <#local href = '' />
922 </#if>
923
924 <#if aditionalAttributsParams?? && aditionalAttributsParams?has_content>
925 <#local attributs = aditionalAttributsParams />
926 <#else>
927 <#local attributs = '' />
928 </#if>
929
930 <a class='${linkClass}'
931 style='${css}'
932 target='${target}'
933 ${href}
934 ${description}
935 ${attributs}>
936 ${bevoreLinkTitle}
937 <span class="icons">${icon}</span>
938 <span class="title">${title}</span>
939 <span class="icon-right" style="font-size: 12px; margin-left: 10px;"></span>
940 </a>
941 </#macro>
942
943 <#function createLoginURL4 destination>
944 <#return 'href="/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&_com_liferay_login_web_portlet_LoginPortlet_redirect='+destination+'#login" rel="nofollow" data-redirect="true"' />
945 </#function>
946
947
948
949 <#macro extension_entry formular,css, class, iconBefore, newTab, loginType,infoTextArray=[],iconArray=[]>
950 <#local
951 description = "${formular.titel}."
952 icon = ''
953 href = ''
954 aditionalAttributs = ''
955 />
956 <#if newTab>
957 <#local target = "blank"/>
958 <#else>
959 <#local target = 'self'/>
960 </#if>
961 <#if loginType != ''>
962 <#if loginType = "login">
963 <#assign showDLLockIcon = true />
964 <#local
965 icon = iconArray[0]
966 description = description+' '+infoTextArray[0]
967 aditionalAttributs = "${createLoginURL4(formular.uri)}"
968 />
969 <#elseif loginType = "eid">
970 <#assign showDLPersoLogo = true />
971 <#local
972 icon = iconArray[2]
973 eIDLoginInfoURL = getterUtil.getString(themeDisplay.getThemeSetting("eid-login-info-url"))
974 serviceName = dienstleistung.name
975 nameForDescrptionSite = serviceName?replace('\\&','')?replace(' ',' ')?replace('\\?','')?replace('\\#','')?replace('\\*','')?replace('\\+','')?replace('\\','')?replace('\\/','')
976 href = "${eIDLoginInfoURL}?dlname=${nameForDescrptionSite}&dlurl=${themeDisplay.getURLCurrent()}"
977 />
978 </#if>
979 <#else>
980 <#local
981 href = formular.uri
982 />
983 </#if>
984 <#if formular.paymentSupported>
985 <#assign showDLMoneyIcon = true />
986 <#local icon = icon + iconArray[1] />
987 <#if description?index_of(infoTextArray[0]) == -1>
988 <#local description = description+' '+infoTextArray[1]/>
989 <#else>
990 <#local description = description+' '+infoTextArray[2]/>
991 </#if>
992
993 </#if>
994 <@createDLnewLink18 css, class, iconBefore, icon, formular.titel, target, description, href, aditionalAttributs/>
995 </#macro>
996
997
998
999
1000 <#function iconArray lock,payment,eid>
1001 <#return [lock,payment,eid]/>
1002 </#function>
1003
1004 <#function infoTextArray login, hasPayment, andHasPayment, eid>
1005 <#return [ login, hasPayment, andHasPayment, eid]/>
1006 </#function>
1007
1008 <#function iconLegendTextArray loginInfo, paymentInfo, eidInfo>
1009 <#return [loginInfo,paymentInfo, eidInfo]/>
1010 </#function>
1011
1012 <#function getServiceIconStyling>
1013 <#local
1014 iconStyling = ""
1015 iconClass = "dlInfoIcons"
1016 iconWrapperClass = "dlInfoIconsWrapper"
1017 />
1018 <#return [iconStyling, iconClass, iconWrapperClass] />
1019 </#function>
1020
1021 <#function createPersoIcon class>
1022 <#local
1023 iconStyling = getServiceIconStyling()[0]
1024 iconClass = getServiceIconStyling()[1]
1025 iconWrapperClass = getServiceIconStyling()[2]
1026 />
1027 <#return '<i aria-hidden="true" class="'+class+' '+iconWrapperClass+'"><img aria-hidden="true" style="'+iconStyling+' background: white !important;border-radius: 0.2rem;" class="persoIcon '+class+' '+iconClass+'" src ="/o/persica-theme/images/perso.svg" alt=""/></i>' />
1028 </#function>
1029
1030
1031 <#macro iconLegendList elementId, destination, fontColor, iconArray, iconLegendTextArray, showDLLockIcon, showDLMoneyIcon, showDLPersoLogo>
1032 <#if showDLLockIcon || showDLMoneyIcon || showDLPersoLogo>
1033 <div class="" style="font-size: 0.7rem" id="${elementId}">
1034 <h3 class="mb-0 mt-3" style="color:${fontColor}; font-weight: 700 !important;font-size: small !important;">Icon Legende</h3>
1035 <ul style="font-size: 0.7rem; list-style: none !important; padding-left: 0 !important;" aria-label="Icon Legende">
1036 ${iconLegendListEntry(showDLPersoLogo,createPersoIcon('persoLogoTable'), iconLegendTextArray[2])}
1037 ${iconLegendListEntry(showDLLockIcon,iconArray[0], iconLegendTextArray[0])}
1038 ${iconLegendListEntry(showDLMoneyIcon,iconArray[1], iconLegendTextArray[1])}
1039 </ul>
1040 </div>
1041 </#if>
1042 </#macro>
1043
1044 <#function iconLegendListEntry show icon content>
1045 <#local value = '' />
1046 <#if show>
1047 <#local value = "<li class=''>
1048 <div class='row'>
1049 <div class='col-2' style='min-height: 35px;display: flex;justify-content: center;align-items: center;'>
1050 <p class='mb-0'>${icon}
1051 </div>
1052 <div class='col-10' style='min-height: 35px;display: flex;justify-content:left ;align-items: center;'>
1053 <p class='mb-0'>${content}
1054 </div>
1055 </div>
1056 </li>"
1057 />
1058 </#if>
1059 <#return value>
1060</#function>
1061
1062
1063<#function addChevronIcon>
1064 <#return '<span class="chevronIcon" aria-hidden="true"><i aria-hidden="true" class="bi bi-chevron-right"></i><i aria-hidden="true" class="bi bi-chevron-down"></i></span>'/>
1065</#function>
1066
1067<#macro addBarrierefreieErreichbarkeit einrichtung>
1068 <#if einrichtung.barrierefreieErreichbarkeit?? && einrichtung.barrierefreieErreichbarkeit?has_content>
1069 <@addCollapse 'barrierefreieErreichbarkeit','Barrierefreie Erreichbarkeit',einrichtung.barrierefreieErreichbarkeit/>
1070 </#if>
1071</#macro>
1072<#macro addVerkehrsanbindung einrichtung>
1073 <#if einrichtung.anschrift?? && einrichtung.anschrift.verkehrsanbindung?? && einrichtung.anschrift.verkehrsanbindung?has_content>
1074 <@addCollapse 'verkehrsanbindung','Verkehrsanbindung',einrichtung.anschrift.verkehrsanbindung/>
1075 </#if>
1076</#macro>
1077
1078
1079
1080
1081<#macro addInternetAdressen einrichtung>
1082 <#if einrichtung.internetadressen?? && einrichtung.internetadressen?has_content>
1083 <h2 class="fsXL mb-2">
1084 <span style="font-weight: bold">Internetadressen</span>
1085 </h2>
1086 <div id="verwandteDienstleistungen" class="card white mb-4 nobutton padleft">
1087 <div class="card-body">
1088 <ul>
1089 <#list einrichtung.internetadressen as link>
1090 <li>
1091 <a href="${link.uri}" title="${link.titel}"<#if link.neuesFenster> target="_blank" </#if>>
1092 ${link.titel}
1093 </a>
1094 </li>
1095 </#list>
1096 </ul>
1097 </div>
1098 </div>
1099 </#if>
1100</#macro>
1101
1102<#macro addContactBox einrichtung baseVariable>
1103 <#if einrichtung?? || baseVariable>
1104 <div class="card no-arrows blue darkbluegradient nobutton">
1105 <div class="card-body">
1106 <h2 class="card-title fsML mb-4"><span>Kontakt</span></h2>
1107 <div class="card-text marginspans fsS">
1108 <#if einrichtung?? && einrichtung != ''>
1109 <@addAddress einrichtung>
1110 <#if (baseVariable.raum?? && baseVariable.raum?has_content)>
1111 <li>
1112 <p aria-label="Raum"><span class="icon-mapmarker mr-2"></span>${baseVariable.raum}</p>
1113 </li>
1114 </#if>
1115 </@addAddress>
1116 </#if>
1117
1118 <#if baseVariable??>
1119 <@addContact baseVariable/>
1120 </#if>
1121 </div>
1122 </div>
1123 </div>
1124 </#if>
1125</#macro>
1126
1127<#macro addAddress einrichtung>
1128 <ul class="addressList " aria-label="Adresse">
1129 <li class="name"><a class="text-bold" href="${utils.createRenderUrl(renderResponse,einrichtungShow, einrichtung.id)}"><span class="text-bold" aria-label="Name der Einrichtung">${einrichtung.name}</span></a></li>
1130 <li class="street"><span aria-label="Straße und Hausnummer">${einrichtung.anschrift.strasse} ${einrichtung.anschrift.hausnummer}</span></li>
1131 <li class="plz"><span aria-label="Postfach PLZ und Ort">${einrichtung.anschrift.postleitzahl} ${einrichtung.anschrift.ort}</span></li>
1132 <#if einrichtung.anschrift.postfach?? && einrichtung.anschrift.postfach?has_content ||
1133 einrichtung.anschrift.postfachPostleitzahl?? && einrichtung.anschrift.postfachPostleitzahl?has_content ||
1134 einrichtung.anschrift.postfachOrt?? && einrichtung.anschrift.postfachOrt?has_content>
1135 <li class="postbox">
1136 <#if einrichtung.anschrift.postfach?? && einrichtung.anschrift.postfach?has_content>
1137 <span class="postboxNumber"><span class="text-bold">Postfach: </span>${einrichtung.anschrift.postfach}</span>
1138 </#if>
1139 <#if einrichtung.anschrift.postfachPostleitzahl?? && einrichtung.anschrift.postfachPostleitzahl?has_content ||
1140 einrichtung.anschrift.postfachOrt?? && einrichtung.anschrift.postfachOrt?has_content>
1141 <span class="postboxNumber" aria-label="Postfach PLZ und Ort">${einrichtung.anschrift.postfachPostleitzahl} ${einrichtung.anschrift.postfachOrt}</span>
1142 </#if>
1143 </li>
1144 </#if>
1145 <#if einrichtung.anschrift.zusatz?? && einrichtung.anschrift.zusatz?has_content>
1146
1147 <li class="addition"><p><span class="text-bold">Adresszusatz:</span><br>${einrichtung.anschrift.zusatz}</p></li>
1148 </#if>
1149 <#nested />
1150 </ul>
1151</#macro>
1152
1153<#macro addContact baseVariable>
1154 <#if (baseVariable.telefonnummer?? && baseVariable.telefonnummer?has_content) ||
1155 (baseVariable.mobil?? && baseVariable.mobil?has_content) ||
1156 (baseVariable.faxnummer?? && baseVariable.faxnummer?has_content) ||
1157 (baseVariable.email?? && baseVariable.email?has_content)>
1158 <ul class="contactList" aria-label="Kontakt möglichkeiten">
1159 <#if baseVariable.telefonnummer?? && baseVariable.telefonnummer?has_content>
1160 <li class="phone">${createPhoneLink5(baseVariable,'','cBlue','',false)}</li>
1161 </#if>
1162 <#if baseVariable.mobil?? && baseVariable.mobil?has_content>
1163 <li class="mobil">${createMobilLink(baseVariable,'','cBlue','',false)}</li>
1164 </#if>
1165 <#if baseVariable.faxnummer?? && baseVariable.faxnummer?has_content>
1166 <li class="fax">${createFaxLink5(baseVariable,'','cBlue','',false)}</li>
1167 </#if>
1168 <#if baseVariable.email?? && baseVariable.email?has_content>
1169 <li class="email">${createEmail(baseVariable,'','cWhite','',false)}</li>
1170 </#if>
1171 </ul>
1172 </#if>
1173</#macro>
1174
1175<#macro addPortrait mitarbeiter>
1176 <#if mitarbeiter.portrait?has_content>
1177 <div class="card blue darkbluegradient nobutton">
1178 <div class="card-body">
1179 <h2 class="card-title fsML mb-4"><span>Mitarbeitenden Portrait</span></h2>
1180 <div class="card-text marginspans fsS">
1181 <div class="w-100"
1182 style="text-align:center;">
1183 <img src="${mitarbeiter.portrait}"
1184 alt="Mitarbeitenden Portrait"
1185 style="width: 100%;
1186 height: 100%;
1187 max-width:200px"/>
1188 </div>
1189 </div>
1190 </div>
1191 </div>
1192 </#if>
1193</#macro>
1194
1195<#macro addServicesList baseVariable>
1196 <#if baseVariable.dienstleistungList?size gt 0>
1197 <h2 class="fsXL mb-2 mt-5"><span style="font-weight: bold">Dienstleistungen</span></h2>
1198 <div class="mb-5">
1199 <ul class="detaillist dienstleistungen fsM">
1200 <#list baseVariable.dienstleistungList as dl>
1201 <li>
1202 <a tabindex="0" href="${utils.getDienstleistungUrl(dl.id)}" class="cBlue w-100 d-block">${dl.name}</a>
1203 <span class="tags" aria-label="Tags:">
1204 <#list dl.tags as t>
1205 <span class="tag">${t.name}</span>
1206 </#list>
1207 </span>
1208 </li>
1209 </#list>
1210 </ul>
1211 </div>
1212 </#if>
1213</#macro>
1214
1215<#macro addZustaendigeStelle dienstleistung>
1216 <#if dienstleistung.einrichtungList?size gt 0>
1217 <#assign ersteEinr = dienstleistung.einrichtungList[0]>
1218 <div class="card blue darkbluegradient nobutton no-arrows">
1219 <div class="card-body">
1220 <div class="card-text">
1221 <div class="responsibleOffice">
1222 <h2 class="card-title fsML mb-4"> <span>Zuständige Stelle</span></h2>
1223 <@addAddress ersteEinr />
1224 <@addContact ersteEinr/>
1225 </div>
1226 </div>
1227 </div>
1228 </div>
1229 </#if>
1230</#macro>
1231
1232<#macro addEmployeeList dienstleistung>
1233 <#if dienstleistung.mitarbeiterList?size gt 0>
1234 <h2 class="fsXL mb-2">
1235 <span style="font-weight: bold">Ansprechpartner</span>
1236 </h2>
1237 <#assign i = 0>
1238 <#list dienstleistung.mitarbeiterList as dm>
1239 <#if (i < 20)>
1240 <div class="card white mb-4 nobutton padleft no-arrows">
1241 <div class="card-body">
1242 <h2 class="card-title cBlue fsM mb-2">
1243 <span class="icon-user" style="margin-left: -24px; margin-top: 2px;"></span>
1244 <#if showEmployees>
1245 <a class="cWhite" tabindex="0" href="${utils.getMitarbeiterUrl(dm.id)}"><span style="font-weight: bold" id="ansprechpartner_${i}">${dm.getVorname()} ${dm.getFamilienname()}</span></a>
1246 <#else>
1247 <span id="ansprechpartner_${i}">${dm.getName()}</span>
1248 </#if>
1249 </h2>
1250 <p class="card-text marginspans fsS cGray cardtabletext">
1251 <#if (dm.beschreibung?has_content && showContactEmployeesDescription)>
1252 ${dm.beschreibung}
1253 </#if>
1254
1255 <#--<#if (dm.einrichtungList?has_content)>
1256 ${dm.einrichtungList.get(0).name}
1257 </#if>
1258 <#if dm.telefonnummer?has_content>
1259 ${createPhoneLink5(dm,'','cBlue','font-size: 15px !important; margin-right: 5px;',false)}
1260 </#if>
1261 <#if dm.mobil?has_content>
1262 ${createMobilLink(dm,'','cBlue','font-size: 15px !important; margin-right: 5px;',false)}
1263 </#if>
1264 <#if dm.email?has_content>
1265 ${createEmail(dm,'','cWhite','font-size: 15px !important; margin-right: 5px;',false)}
1266 </#if>-->
1267 <#if (dm.einrichtungList?? && dm.einrichtungList?has_content) &&
1268 (dm.einrichtungList[0]?? && dm.einrichtungList[0]?has_content)>
1269 <@addAddress ersteEinr />
1270 </#if>
1271 <@addContact dm/>
1272 </p>
1273 </div>
1274 </div>
1275 <#assign i = i+1>
1276 </#if>
1277 </#list>
1278 </#if>
1279</#macro>