Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> einrichtung.anschrift [in template "20591#20629#131725" at line 1122, column 71] ---- 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: ${einrichtung.anschrift.strasse} [in template "20591#20629#131725" in macro "addAddress" at line 1122, column 69] - Reached through: @addAddress einrichtung [in template "20591#20629#131725" in macro "addContactBox" at line 1101, column 25] - Reached through: @addContactBox einrichtung, einrichtung [in template "20591#20629#131725" at line 146, column 13] ----
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 <#assign target = "blank"/>
814 <#assign icon =iconArray[0]/>
815 <#assign href = ''/>
816 <#assign aditionalAttributs = "${createLoginURL4(formular.uri)}"/>
817 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs/>
818 </p>
819 </li>
820 </#list>
821 </#if>
822 <#if (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content)>
823 <#assign showDLLockIcon = true/>
824 <li class="mb-2 w-75">
825 <p class="mb-0">
826 <#assign title = 'Zum Kontaktformular'/>
827 <#assign description = "${title}. ${infoTextArray[0]}"/>
828 <#assign target = ''/>
829 <#assign icon = iconArray[0]/>
830 <#assign href = ''/>
831 <#assign aditionalAttributs = "${createLoginURL4(dienstleistung.kontaktformularUrl)}"/>
832 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs/>
833
834 </p>
835 </li>
836 </#if>
837 <#else>
838 <#if existsAndSizeGTZero(dienstleistung.formulare)>
839 <#list dienstleistung.formulare as formular>
840 <li class="mb-2 w-75 formulare">
841 <p class="mb-0">
842 <#assign title = formular.titel/>
843 <#assign description = "${title}."/>
844 <#assign target = 'blank'/>
845 <#assign icon =''/>
846 <#assign href = formular.uri/>
847 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/>
848 </p>
849 </li>
850 </#list>
851 </#if>
852 <#if (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content)>
853 <li class="mb-2 w-75">
854 <p class="mb-0">
855 <#assign title = 'Zum Kontaktformular'/>
856 <#assign description = title/>
857 <#assign target = ''/>
858 <#assign icon = ''/>
859 <#assign href = dienstleistung.kontaktformularUrl/>
860 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/>
861 </p>
862 </li>
863 </#if>
864 </#if>
865 <#if existsAndSizeGTZero(dienstleistung.textmodul.formulare)>
866 <#list dienstleistung.textmodul.formulare.weiterfuehrenderLink as formular>
867
868 <li class="mb-2 w-75 textmodul-formulare">
869 <p class="mb-0">
870 <#if formular.titel != "" && formular.titel??>
871 <#assign title = formular.titel/>
872 <#else>
873 <#assign title = formular.uri/>
874 </#if>
875 <#assign description = title/>
876 <#if formular.neuesFenster>
877 <#assign target = 'blank'/>
878 <#else>
879 <#assign target = 'self'/>
880 </#if>
881 <#assign icon =''/>
882 <#assign href = formular.uri/>
883 <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/>
884 </p>
885 </li>
886
887 </#list>
888 </#if>
889 </ul>
890 </#if>
891 </#macro>
892
893
894 <#macro createDLnewLink18 css, linkClass, bevoreLinkTitle, icon, title, target, description, hrefParam, aditionalAttributsParams=''>
895 <#local
896 target = ""
897 href = ""
898 aditionalAttributs = ""
899 attributs = ''
900 />
901 <#local description = "title='${description}'" />
902 <#if target == "blank">
903 <#local target = "_blank"/>
904 <#elseif target == "self">
905 <#local target = "_self"/>
906 <#else>
907 <#local target = "_blank"/>
908 </#if>
909
910 <#if hrefParam?has_content && hrefParam != ''>
911 <#local href= "href='${hrefParam}'" />
912 <#else>
913 <#local href = '' />
914 </#if>
915
916 <#if aditionalAttributsParams?? && aditionalAttributsParams?has_content>
917 <#local attributs = aditionalAttributsParams />
918 <#else>
919 <#local attributs = '' />
920 </#if>
921
922 <a class='${linkClass}'
923 style='${css}'
924 target='${target}'
925 ${href}
926 ${description}
927 ${attributs}>
928 ${bevoreLinkTitle}
929 <span class="icons">${icon}</span>
930 <span class="title">${title}</span>
931 <span class="icon-right" style="font-size: 12px; margin-left: 10px;"></span>
932 </a>
933 </#macro>
934
935 <#function createLoginURL4 destination>
936 <#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"' />
937 </#function>
938
939
940
941 <#macro extension_entry formular,css, class, iconBefore, newTab, loginType,infoTextArray=[],iconArray=[]>
942 <#local
943 description = "${formular.titel}."
944 icon = ''
945 href = ''
946 aditionalAttributs = ''
947 />
948 <#if newTab>
949 <#local target = "blank"/>
950 <#else>
951 <#local target = 'self'/>
952 </#if>
953 <#if loginType != ''>
954 <#if loginType = "login">
955 <#assign showDLLockIcon = true />
956 <#local
957 icon = iconArray[0]
958 description = description+' '+infoTextArray[0]
959 aditionalAttributs = "${createLoginURL4(formular.uri)}"
960 />
961 <#elseif loginType = "eid">
962 <#assign showDLPersoLogo = true />
963 <#local
964 icon = iconArray[2]
965 eIDLoginInfoURL = getterUtil.getString(themeDisplay.getThemeSetting("eid-login-info-url"))
966 serviceName = dienstleistung.name
967 nameForDescrptionSite = serviceName?replace('\\&','')?replace(' ',' ')?replace('\\?','')?replace('\\#','')?replace('\\*','')?replace('\\+','')?replace('\\','')?replace('\\/','')
968 href = "${eIDLoginInfoURL}?dlname=${nameForDescrptionSite}&dlurl=${themeDisplay.getURLCurrent()}"
969 />
970 </#if>
971 <#else>
972 <#local
973 href = formular.uri
974 />
975 </#if>
976 <#if formular.paymentSupported>
977 <#assign showDLMoneyIcon = true />
978 <#local icon = icon + iconArray[1] />
979 <#if description?index_of(infoTextArray[0]) == -1>
980 <#local description = description+' '+infoTextArray[1]/>
981 <#else>
982 <#local description = description+' '+infoTextArray[2]/>
983 </#if>
984
985 </#if>
986 <@createDLnewLink18 css, class, iconBefore, icon, formular.titel, target, description, href, aditionalAttributs/>
987 </#macro>
988
989
990
991
992 <#function iconArray lock,payment,eid>
993 <#return [lock,payment,eid]/>
994 </#function>
995
996 <#function infoTextArray login, hasPayment, andHasPayment, eid>
997 <#return [ login, hasPayment, andHasPayment, eid]/>
998 </#function>
999
1000 <#function iconLegendTextArray loginInfo, paymentInfo, eidInfo>
1001 <#return [loginInfo,paymentInfo, eidInfo]/>
1002 </#function>
1003
1004 <#function getServiceIconStyling>
1005 <#local
1006 iconStyling = ""
1007 iconClass = "dlInfoIcons"
1008 iconWrapperClass = "dlInfoIconsWrapper"
1009 />
1010 <#return [iconStyling, iconClass, iconWrapperClass] />
1011 </#function>
1012
1013 <#function createPersoIcon class>
1014 <#local
1015 iconStyling = getServiceIconStyling()[0]
1016 iconClass = getServiceIconStyling()[1]
1017 iconWrapperClass = getServiceIconStyling()[2]
1018 />
1019 <#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>' />
1020 </#function>
1021
1022
1023 <#macro iconLegendList elementId, destination, fontColor, iconArray, iconLegendTextArray, showDLLockIcon, showDLMoneyIcon, showDLPersoLogo>
1024 <#if showDLLockIcon || showDLMoneyIcon || showDLPersoLogo>
1025 <div class="" style="font-size: 0.7rem" id="${elementId}">
1026 <h3 class="mb-0 mt-3" style="color:${fontColor}; font-weight: 700 !important;font-size: small !important;">Icon Legende</h3>
1027 <ul style="font-size: 0.7rem; list-style: none !important; padding-left: 0 !important;" aria-label="Icon Legende">
1028 ${iconLegendListEntry(showDLPersoLogo,createPersoIcon('persoLogoTable'), iconLegendTextArray[2])}
1029 ${iconLegendListEntry(showDLLockIcon,iconArray[0], iconLegendTextArray[0])}
1030 ${iconLegendListEntry(showDLMoneyIcon,iconArray[1], iconLegendTextArray[1])}
1031 </ul>
1032 </div>
1033 </#if>
1034 </#macro>
1035
1036 <#function iconLegendListEntry show icon content>
1037 <#local value = '' />
1038 <#if show>
1039 <#local value = "<li class=''>
1040 <div class='row'>
1041 <div class='col-2' style='min-height: 35px;display: flex;justify-content: center;align-items: center;'>
1042 <p class='mb-0'>${icon}
1043 </div>
1044 <div class='col-10' style='min-height: 35px;display: flex;justify-content:left ;align-items: center;'>
1045 <p class='mb-0'>${content}
1046 </div>
1047 </div>
1048 </li>"
1049 />
1050 </#if>
1051 <#return value>
1052</#function>
1053
1054
1055<#function addChevronIcon>
1056 <#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>'/>
1057</#function>
1058
1059<#macro addBarrierefreieErreichbarkeit einrichtung>
1060 <#if einrichtung.barrierefreieErreichbarkeit?? && einrichtung.barrierefreieErreichbarkeit?has_content>
1061 <@addCollapse 'barrierefreieErreichbarkeit','Barrierefreie Erreichbarkeit',einrichtung.barrierefreieErreichbarkeit/>
1062 </#if>
1063</#macro>
1064<#macro addVerkehrsanbindung einrichtung>
1065 <#if einrichtung.anschrift?? && einrichtung.anschrift.verkehrsanbindung?? && einrichtung.anschrift.verkehrsanbindung?has_content>
1066 <@addCollapse 'verkehrsanbindung','Verkehrsanbindung',einrichtung.anschrift.verkehrsanbindung/>
1067 </#if>
1068</#macro>
1069
1070
1071
1072
1073<#macro addInternetAdressen einrichtung>
1074 <#if einrichtung.internetadressen?? && einrichtung.internetadressen?has_content>
1075 <h2 class="fsXL mb-2">
1076 <span style="font-weight: bold">Internetadressen</span>
1077 </h2>
1078 <div id="verwandteDienstleistungen" class="card white mb-4 nobutton padleft">
1079 <div class="card-body">
1080 <ul>
1081 <#list einrichtung.internetadressen as link>
1082 <li>
1083 <a href="${link.uri}" title="${link.titel}"<#if link.neuesFenster> target="_blank" </#if>>
1084 ${link.titel}
1085 </a>
1086 </li>
1087 </#list>
1088 </ul>
1089 </div>
1090 </div>
1091 </#if>
1092</#macro>
1093
1094<#macro addContactBox einrichtung baseVariable>
1095 <#if einrichtung?? || baseVariable>
1096 <div class="card no-arrows blue darkbluegradient nobutton">
1097 <div class="card-body">
1098 <h2 class="card-title fsML mb-4"><span>Kontakt</span></h2>
1099 <div class="card-text marginspans fsS">
1100 <#if einrichtung?? && einrichtung != ''>
1101 <@addAddress einrichtung>
1102 <#if (baseVariable.raum?? && baseVariable.raum?has_content)>
1103 <li>
1104 <p aria-label="Raum"><span class="icon-mapmarker mr-2"></span>${baseVariable.raum}</p>
1105 </li>
1106 </#if>
1107 </@addAddress>
1108 </#if>
1109
1110 <#if baseVariable??>
1111 <@addContact baseVariable/>
1112 </#if>
1113 </div>
1114 </div>
1115 </div>
1116 </#if>
1117</#macro>
1118
1119<#macro addAddress einrichtung>
1120 <ul class="addressList " aria-label="Adresse">
1121 <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>
1122 <li class="street"><span aria-label="Straße und Hausnummer">${einrichtung.anschrift.strasse} ${einrichtung.anschrift.hausnummer}</span></li>
1123 <li class="plz"><span aria-label="Postfach PLZ und Ort">${einrichtung.anschrift.postleitzahl} ${einrichtung.anschrift.ort}</span></li>
1124 <#if einrichtung.anschrift.postfach?? && einrichtung.anschrift.postfach?has_content ||
1125 einrichtung.anschrift.postfachPostleitzahl?? && einrichtung.anschrift.postfachPostleitzahl?has_content ||
1126 einrichtung.anschrift.postfachOrt?? && einrichtung.anschrift.postfachOrt?has_content>
1127 <li class="postbox">
1128 <#if einrichtung.anschrift.postfach?? && einrichtung.anschrift.postfach?has_content>
1129 <span class="postboxNumber"><span class="text-bold">Postfach: </span>${einrichtung.anschrift.postfach}</span>
1130 </#if>
1131 <#if einrichtung.anschrift.postfachPostleitzahl?? && einrichtung.anschrift.postfachPostleitzahl?has_content ||
1132 einrichtung.anschrift.postfachOrt?? && einrichtung.anschrift.postfachOrt?has_content>
1133 <span class="postboxNumber" aria-label="Postfach PLZ und Ort">${einrichtung.anschrift.postfachPostleitzahl} ${einrichtung.anschrift.postfachOrt}</span>
1134 </#if>
1135 </li>
1136 </#if>
1137 <#if einrichtung.anschrift.zusatz?? && einrichtung.anschrift.zusatz?has_content>
1138
1139 <li class="addition"><p><span class="text-bold">Adresszusatz:</span><br>${einrichtung.anschrift.zusatz}</p></li>
1140 </#if>
1141 <#nested />
1142 </ul>
1143</#macro>
1144
1145<#macro addContact baseVariable>
1146 <#if (baseVariable.telefonnummer?? && baseVariable.telefonnummer?has_content) ||
1147 (baseVariable.mobil?? && baseVariable.mobil?has_content) ||
1148 (baseVariable.faxnummer?? && baseVariable.faxnummer?has_content) ||
1149 (baseVariable.email?? && baseVariable.email?has_content)>
1150 <ul class="contactList" aria-label="Kontakt möglichkeiten">
1151 <#if baseVariable.telefonnummer?? && baseVariable.telefonnummer?has_content>
1152 <li class="phone">${createPhoneLink5(baseVariable,'','cBlue','',false)}</li>
1153 </#if>
1154 <#if baseVariable.mobil?? && baseVariable.mobil?has_content>
1155 <li class="mobil">${createMobilLink(baseVariable,'','cBlue','',false)}</li>
1156 </#if>
1157 <#if baseVariable.faxnummer?? && baseVariable.faxnummer?has_content>
1158 <li class="fax">${createFaxLink5(baseVariable,'','cBlue','',false)}</li>
1159 </#if>
1160 <#if baseVariable.email?? && baseVariable.email?has_content>
1161 <li class="email">${createEmail(baseVariable,'','cWhite','',false)}</li>
1162 </#if>
1163 </ul>
1164 </#if>
1165</#macro>
1166
1167<#macro addPortrait mitarbeiter>
1168 <#if mitarbeiter.portrait?has_content>
1169 <div class="card blue darkbluegradient nobutton">
1170 <div class="card-body">
1171 <h2 class="card-title fsML mb-4"><span>Mitarbeitenden Portrait</span></h2>
1172 <div class="card-text marginspans fsS">
1173 <div class="w-100"
1174 style="text-align:center;">
1175 <img src="${mitarbeiter.portrait}"
1176 alt="Mitarbeitenden Portrait"
1177 style="width: 100%;
1178 height: 100%;
1179 max-width:200px"/>
1180 </div>
1181 </div>
1182 </div>
1183 </div>
1184 </#if>
1185</#macro>
1186
1187<#macro addServicesList baseVariable>
1188 <#if baseVariable.dienstleistungList?size gt 0>
1189 <h2 class="fsXL mb-2 mt-5"><span style="font-weight: bold">Dienstleistungen</span></h2>
1190 <div class="mb-5">
1191 <ul class="detaillist dienstleistungen fsM">
1192 <#list baseVariable.dienstleistungList as dl>
1193 <li>
1194 <a tabindex="0" href="${utils.getDienstleistungUrl(dl.id)}" class="cBlue w-100 d-block">${dl.name}</a>
1195 <span class="tags" aria-label="Tags:">
1196 <#list dl.tags as t>
1197 <span class="tag">${t.name}</span>
1198 </#list>
1199 </span>
1200 </li>
1201 </#list>
1202 </ul>
1203 </div>
1204 </#if>
1205</#macro>
1206
1207<#macro addZustaendigeStelle dienstleistung>
1208 <#if dienstleistung.einrichtungList?size gt 0>
1209 <#assign ersteEinr = dienstleistung.einrichtungList[0]>
1210 <div class="card blue darkbluegradient nobutton no-arrows">
1211 <div class="card-body">
1212 <div class="card-text">
1213 <div class="responsibleOffice">
1214 <h2 class="card-title fsML mb-4"> <span>Zuständige Stelle</span></h2>
1215 <@addAddress ersteEinr />
1216 <@addContact ersteEinr/>
1217 </div>
1218 </div>
1219 </div>
1220 </div>
1221 </#if>
1222</#macro>
1223
1224<#macro addEmployeeList dienstleistung>
1225 <#if dienstleistung.mitarbeiterList?size gt 0>
1226 <h2 class="fsXL mb-2">
1227 <span style="font-weight: bold">Ansprechpartner</span>
1228 </h2>
1229 <#assign i = 0>
1230 <#list dienstleistung.mitarbeiterList as dm>
1231 <#if (i < 20)>
1232 <div class="card white mb-4 nobutton padleft no-arrows">
1233 <div class="card-body">
1234 <h2 class="card-title cBlue fsM mb-2">
1235 <span class="icon-user" style="margin-left: -24px; margin-top: 2px;"></span>
1236 <#if showEmployees>
1237 <a class="cWhite" tabindex="0" href="${utils.getMitarbeiterUrl(dm.id)}"><span style="font-weight: bold" id="ansprechpartner_${i}">${dm.getVorname()} ${dm.getFamilienname()}</span></a>
1238 <#else>
1239 <span id="ansprechpartner_${i}">${dm.getName()}</span>
1240 </#if>
1241 </h2>
1242 <p class="card-text marginspans fsS cGray cardtabletext">
1243 <#if (dm.beschreibung?has_content && showContactEmployeesDescription)>
1244 ${dm.beschreibung}
1245 </#if>
1246
1247 <#--<#if (dm.einrichtungList?has_content)>
1248 ${dm.einrichtungList.get(0).name}
1249 </#if>
1250 <#if dm.telefonnummer?has_content>
1251 ${createPhoneLink5(dm,'','cBlue','font-size: 15px !important; margin-right: 5px;',false)}
1252 </#if>
1253 <#if dm.mobil?has_content>
1254 ${createMobilLink(dm,'','cBlue','font-size: 15px !important; margin-right: 5px;',false)}
1255 </#if>
1256 <#if dm.email?has_content>
1257 ${createEmail(dm,'','cWhite','font-size: 15px !important; margin-right: 5px;',false)}
1258 </#if>-->
1259 <#if (dm.einrichtungList?? && dm.einrichtungList?has_content) &&
1260 (dm.einrichtungList[0]?? && dm.einrichtungList[0]?has_content)>
1261 <@addAddress ersteEinr />
1262 </#if>
1263 <@addContact dm/>
1264 </p>
1265 </div>
1266 </div>
1267 <#assign i = i+1>
1268 </#if>
1269 </#list>
1270 </#if>
1271</#macro>