Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> employeeData.einrichtungList[0] [in template "33396#33431#71035" at line 1206, column 40] ---- Tip: It's the final [] step 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: #assign einrichtung = employeeData.ei... [in template "33396#33431#71035" in macro "employeesExport16" at line 1206, column 17] - Reached through: @employeesExport16 employeeData=mitar... [in template "33396#33431#71035" at line 1153, column 5] ----
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<#assign
15bis2017 = vr.bis2017
16utils = vr.utils2017
17ansicht = utils.ansicht
18current_url_WithHtml = themeDisplay.getPortalURL()
19current_uri_WithHtml = themeDisplay.getURLCurrent()
20currentURL = current_url_WithHtml + current_uri_WithHtml
21login_url= getterUtil.getString(themeDisplay.getThemeSetting("Login-URI"))
22
23login_url1_WithHtml = 'href="'+login_url+'?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&_com_liferay_login_web_portlet_LoginPortlet_redirect='
24login_url2_WithHtml = '" rel="nofollow" data-redirect="true"'
25login_url_WithHtml = login_url1_WithHtml + current_url_WithHtml + current_uri_WithHtml + login_url2_WithHtml
26
27header_type = getterUtil.getString(themeDisplay.getThemeSetting("header-type"))
28hasLongHeader = header_type == 'long'
29vr_details_card_padding = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-card-padding"))
30
31showTags = getterUtil.getBoolean(themeDisplay.getThemeSetting("01-show-tags"))
32
33showCollapse = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-show-collapse"))
34collapseIcon = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-left-collapse-icon"))
35collapseOnlineServcieIcon = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-left-collapse-online-services-icon"))
36
37IconBeforeOnlineServices = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-left-online-services-icon"))
38downloadsIcon = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-left-downloads-icon"))
39linksAsButton = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-right-online-services-as-button"))
40showLines = !showCollapse
41
42showEmployeesCollapse = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-show-employees-collapse"))
43showEmployeesCollapseAs = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-show-employees-collapse-as"))
44employeesCollapseIcon = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-employees-collapse-icon"))
45
46showEmployeeMap = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-show-employee-map"))
47showFacilityMap = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-show-facility-map"))
48
49showOnlineServicesInMainContent = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-left-online-services-show"))
50
51showOnlineServicesInMobilePosition = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-show-online-services-in-mobile"))
52
53plid = themeDisplay.getPlid()
54createAccountURL = portletURLFactory.create(renderRequest,"com_liferay_login_web_portlet_LoginPortlet", plid,"RENDER_PHASE")
55
56vsmGebietID = getterUtil.getString(themeDisplay.getThemeSetting("vsm-gebiet-id"))
57
58formularWithLogin = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-formular-with-login"))
59showDLIcons = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-show-icon-legend"))
60showDLPersoLogo = false
61showDLMoneyIcon = false
62showDLLockIcon = false
63
64showEinrichtungAnschriftName = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-show-einrichtung-anschrift-name"))
65showEinrichtungAnschriftNameAlt= getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-show-einrichtung-anschrift-name-alt"))
66
67eIDLoginURLLevel3 = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-show-eid-login-url-level3"))
68eIDLoginURLLevel4 = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-show-eid-login-url-level4"))
69
70barrierefreiheitserklaerung_kartenerklarung = getterUtil.getString(themeDisplay.getThemeSetting("barrierefreiheitserklaerung-kartenerklarung"))
71barrierefreiheitserklaerung_url = getterUtil.getString(themeDisplay.getThemeSetting("barrierefreiheitserklaerung-url"))
72
73loginForAllExtensions = getterUtil.getBoolean(themeDisplay.getThemeSetting("login-for-all-extensions"))
74
75downloadCollapse = getterUtil.getBoolean(themeDisplay.getThemeSetting("03-vr-details-show-documents-collapse"))
76downloadCollapseIcon = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-documents-collapse-icon"))
77downloadCollapseShowAs = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-show-documents-collapse-as"))
78
79dienstleistungShow = "vr-bis-detail-dienstleistung-show"
80einrichtungShow = "vr-bis-detail-einrichtung-show"
81mitarbeiterShow = "vr-bis-detail-mitarbeiter-show"
82/>
83
84${createAccountURL.setParameter("mvcRenderCommandName", "/login/create_account")}
85${createAccountURL.setParameter("p_p_state", "maximized")}
86${createAccountURL.setParameter("p_p_mode", "view")}
87
88
89<#if hasLongHeader>
90 <#assign showLeftInCard = true/>
91<#else>
92 <#assign showLeftInCard = !vr_details_card_padding?? && vr_details_card_padding != 0 && vr_details_card_padding != '0' />
93</#if>
94
95
96
97<@portletSearch />
98<#if bis2017.ausgewaehlteDienstleistung??>
99<#-- Dienstleistungen -->
100 <#assign
101 dienstleistung = bis2017.ausgewaehlteDienstleistung
102 textmodul = dienstleistung.textmodul
103 />
104
105 <div class="row">
106 <div class="col-12 col-sm-12 col-md-8 px-4 pl-lg-3">
107 <div class="mdl--page__default__01 vr-details-left">
108 <#if showLeftInCard>
109 <div class="card">
110 </#if>
111 <div class="service-detail-header">
112 <div class="sideHeadline" id="seitentitel">
113 <h1 class="m-0">${dienstleistung.name}</h1>
114 </div>
115 <#if showTags >
116 <#list dienstleistung.tags as t>
117 <span class="badge badge-bot-primary">${t.name}</span>
118 </#list>
119 </#if>
120
121 <#if existsAndHasContent1(textmodul.kurztext.inhalt!'')>
122 <h2 class="sr-only">${getLabelName4(dienstleistung, 'adt.label.dienstleistung.kurztext','Kurzbeschreibung')}</h2>
123 ${textmodul.kurztext.inhalt}
124 </#if>
125 </div>
126 <#if showOnlineServicesInMobilePosition == "top" || showOnlineServicesInMobilePosition == "both">
127 <div class="d-block d-md-none w-100">
128 <div class="vr-details-right" style="padding: 0 !important;">
129 <#if existsAndSizeGTZero(dienstleistung.extensions) || existsAndSizeGTZero(dienstleistung.formulare) || (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content) || existsAndSizeGTZero(dienstleistung.internetadressen)>
130 <div class="card" id="Onlinedienstleistungen-top" style="padding: 0 !important;">
131 <div class="card-header" style="padding-left: 0 !important; padding-right: 0 !important;">
132 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.onlinedienstleistung','Onlinedienstleistungen')}</h2>
133 </div>
134 <div class="card-body" style="padding-left: 0 !important; padding-right: 0 !important;">
135 <#assign idTopLink ="onlineservicesMid" />
136 <#assign idBottomLink = "onlineservicesIconsMid" />
137 <#assign linkCss = "" />
138 <#assign linkClass = "onlineservices-link"/>
139 <#if linksAsButton>
140 <#assign linkClass = linkClass + " btn btn-secondary w-100 text-left text-break"/>
141 </#if>
142
143 <#assign lockIcon = '<svg role="img" aria-label="Schlossicon. Für diese Dienstleistung ist ein Login erforderlich" style="height:15px !Important" class="" xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-lock-fill" viewBox="0 0 16 16"><path d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z"/></svg>' />
144 <#assign moneyIcon = '<svg role="img" aria-label="Geldicon. Diese Dienstleitung ist kostenpflichtig" style="height:15px !Important" width="16" height="16" fill="currentColor" class="bi bi-credit-card" viewBox="0 0 16 16"><path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v1h14V4a1 1 0 0 0-1-1H2zm13 4H1v5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7z"/><path d="M2 10a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-1z"/></svg>' />
145 <#assign persoIcon = ''/>
146 <#assign beforeLinkTitle = ""/>
147
148 <#assign dlNeedsLogin = 'Diese Dienstleistung erfordert eine Anmeldung.'/>
149 <#assign dlNeedsEidLogin = 'Anmeldung mit elektronischen Personalausweis erforderlich.'/>
150 <#assign dlHasCosts = 'Diese Dienstleitung ist kostenpflichtig.'/>
151 <#assign dlAndHasCosts = 'und ist kostenpflichtig'/>
152
153
154 <#assign internetAdressen = false/>
155
156 <@onlineServices147 idTopLink, idBottomLink, dienstleistung, linkCss, linkClass, beforeLinkTitle, lockIcon, persoIcon, moneyIcon, dlNeedsLogin, dlNeedsEidLogin, dlHasCosts, dlAndHasCosts, internetAdressen />
157
158 <#assign iconLegendLockInfo = "Anmeldung erforderlich"/>
159 <#assign iconLegendMoneyInfo = "Kostenpflichtig"/>
160 <#assign iconLegendPersoInfo = "Anmeldung mit elektronischen Personalausweis erforderlich"/>
161 <#assign persoIcon = "#createPersoIcon13('persoLogoHeader')"/>
162
163 <@iconLegendList10 idTopLink, idTopLink, "black", persoIcon, iconLegendPersoInfo, lockIcon, iconLegendLockInfo, moneyIcon, iconLegendMoneyInfo />
164 </div>
165 </div>
166 </#if>
167 </div>
168 </div>
169 </#if>
170 <div class="el-textmodul">
171
172 <#if existsAndHasContent1(textmodul.volltext.inhalt!'')>
173 <h2 class="sr-only">${getLabelName4(dienstleistung, 'adt.label.dienstleistung.volltext','Beschreibung')}</h2>
174 ${textmodul.volltext.inhalt}
175 </#if>
176
177 ${renderTextmodul12(textmodul.rechtsgrundlagen,"adt.label.dienstleistung.rechtsgrundlagen","Rechtsgrundlagen")}
178 ${renderTextmodul12(textmodul.erforderlicheUnterlagen,"adt.label.dienstleistung.unterlagen","Erforderliche Unterlagen")}
179
180 <#if existsAndHasContent1(dienstleistung.amtFachbereich!'')>
181 <#if showCollapse>
182 ${collapseBefore20(getLabelName4(dienstleistung, 'adt.label.dienstleistung.amtfachbereich','Amt/Fachbereich'),collapseIcon, 'amtfachbereich')}
183 </#if>
184 ${content_item3(getLabelName4(dienstleistung, 'adt.label.dienstleistung.amtfachbereich','Amt/Fachbereich'),dienstleistung.amtFachbereich, showLines)}
185 <#if showCollapse>
186 ${collapseAfter()}
187 </#if>
188 </#if>
189
190 ${renderTextmodul12(textmodul.fristen,"adt.label.dienstleistung.fristen","Fristen")}
191
192 ${renderTextmodul12(textmodul.bearbeitungsdauer,"adt.label.dienstleistung.bearbeitungsdauer","Bearbeitungsdauer")}
193
194 ${renderTextmodul12(textmodul.weiterfuehrendeInformationen,"adt.label.dienstleistung.weitereinfos","Weitere Informationen")}
195
196 ${renderTextmodul12(textmodul.hinweiseBesonderheiten,"adt.label.dienstleistung.hinweiseBesonderheiten","Hinweise und Besonderheiten")}
197
198 ${renderTextmodul12(textmodul.voraussetzungen,"adt.label.dienstleistung.voraussetzungen","Voraussetzungen")}
199
200 ${renderTextmodul12(textmodul.verfahrensablauf,"adt.label.dienstleistung.verfahrensablauf","Verfahrensablauf")}
201
202 ${renderTextmodul12(textmodul.rechtsbehelf,"adt.label.dienstleistung.rechtsbehelf","Rechtsbehelf")}
203
204 ${renderTextmodul12(textmodul.zusatzAnWenWenden,"adt.label.dienstleistung.zusatzAnWenWenden","An wen wenden")}
205
206 ${renderTextmodul12(textmodul.zusatzAntraegeFormulare,"adt.label.dienstleistung.zusatzAntraegeFormulare","Anträge/Formulare")}
207
208 ${renderTextmodul12(textmodul.zusatzFreigegebenDurch,"adt.label.dienstleistung.zusatzFreigegebenDurch","Freigegeben durch")}
209
210 ${renderTextmodul12(textmodul.zusatzFreigegebenAm,"adt.label.dienstleistung.zusatzFreigegebenAm","Freigegeben am")}
211
212 ${renderTextmodul12(textmodul.zusatzUrheber,"adt.label.dienstleistung.zusatzUrheber","Urheber")}
213
214 ${renderTextmodul12(textmodul.zusatzZustaendigeStelle,"adt.label.dienstleistung.zusatzZustaendigeStelle","Zuständige Stelle")}
215
216 <#if existsAndHasContent1(dienstleistung.kostenmodul.beschreibung!'') ||
217 existsAndHasContent1(dienstleistung.kostenmodul.kosten!'')>
218 <#if showCollapse >
219 ${collapseBefore20(getLabelName4(dienstleistung, 'adt.label.dienstleistung.gebuehr','Kosten'), collapseIcon, 'kosten')}
220 <#else>
221 <hr>
222 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.gebuehr','Kosten')}</h2>
223 </#if>
224 <@kostenliste3 />
225 <#if showCollapse>
226 ${collapseAfter()}
227 </#if>
228 </#if>
229
230 <#if existsAndHasContent1(dienstleistung.zahlungsweisen!'')>
231 <#if showCollapse>
232 ${collapseBefore20(getLabelName4(dienstleistung, 'adt.label.dienstleistung.zahlungsweisen','Zahlungsweisen'),collapseIcon,'zahlungsweisen')}
233 </#if>
234 <#assign zahlungsweiseOutput = ''/>
235 <#list dienstleistung.zahlungsweisen as zahlungsweise>
236 <#assign zahlungsweiseOutput = zahlungsweiseOutput+"<p>${zahlungsweise.name}</p>" />
237 </#list>
238 ${content_item3(getLabelName4(dienstleistung, 'adt.label.dienstleistung.zahlungsweisen','Zahlungsweisen'),zahlungsweiseOutput,showLines)}
239 <#if showCollapse>
240 ${collapseAfter()}
241 </#if>
242 </#if>
243
244 <#if existsAndHasContent1(dienstleistung.verwandteDienstleistungen!'')>
245 <#if showCollapse>
246 ${collapseBefore20(getLabelName4(dienstleistung, 'adt.label.dienstleistung.verwandtedienstleistungen','Verwandte Dienstleistungen'),collapseIcon,'verwandteDienstleistungen')}
247 <#else>
248 <hr>
249 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.verwandtedienstleistungen','Verwandte Dienstleistungen')}</h2>
250 </#if>
251
252 <ul style="padding-top:0 !important;padding-bottom:0 !important;">
253 <#list dienstleistung.verwandteDienstleistungen as dl>
254 <li>
255 <a href="${utils.createRenderUrl(renderResponse,dienstleistungShow, dl.id)}">${dl.name}</a>
256 </li>
257 </#list>
258 </ul>
259 <br>
260
261 <#if showCollapse>
262 ${collapseAfter()}
263 </#if>
264 </#if>
265 <#if showOnlineServicesInMainContent>
266 <div id="onlineServicesInMainSection" aria-hidden="true" class="d-none d-sm-none d-md-none d-lg-block">
267 <#if existsAndSizeGTZero(dienstleistung.extensions) || existsAndSizeGTZero(dienstleistung.formulare) || (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content) || existsAndSizeGTZero(dienstleistung.internetadressen)>
268 <#if showCollapse>
269 ${collapseBefore20(getLabelName4(dienstleistung, 'adt.label.dienstleistung.onlinedienstleistung','Onlinedienstleistungen'),collapseOnlineServcieIcon,'onlinedienstleistungenLeftBottom')}
270 </#if>
271 <#if !showCollapse>
272 <div class="card" id="OnlinedienstleistungenMain">
273 <div class="card-header">
274 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.onlinedienstleistung','Onlinedienstleistungen')}</h2>
275 </div>
276 <div class="card-body">
277 </#if>
278 <#assign idTopLink ="olDlTopMain"/>
279 <#assign idBottomLink = "olDlIconsMain"/>
280 <#assign linkCss = ""/>
281 <#assign linkClass = ""/>
282 <#if linksAsButton>
283 <#assign linkClass = linkClass + "btn btn-secondary w-100 text-left text-break" />
284 </#if>
285 <#assign lockIcon = '<svg role="img" aria-label="Schlossicon. Für diese Dienstleistung ist ein Login erforderlich" style="height:15px !Important" class="" xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-lock-fill" viewBox="0 0 16 16"><path d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z"/></svg>'/>
286 <#assign moneyIcon = '<svg role="img" aria-label="Geldicon. Diese Dienstleitung ist kostenpflichtig" style="height:15px !Important" width="16" height="16" fill="currentColor" class="bi bi-credit-card" viewBox="0 0 16 16"><path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v1h14V4a1 1 0 0 0-1-1H2zm13 4H1v5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7z"/><path d="M2 10a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-1z"/></svg>'/>
287 <#assign persoIcon = ""/>
288 <#assign beforeLinkTitle = ""/>
289
290 <#assign dlNeedsLogin = 'Diese Dienstleistung erfordert eine Anmeldung.'/>
291 <#assign dlNeedsEidLogin = 'Anmeldung mit elektronischen Personalausweis erforderlich'/>
292 <#assign dlHasCosts = 'Diese Dienstleitung ist kostenpflichtig.'/>
293 <#assign dlAndHasCosts = 'und ist kostenpflichtig'/>
294
295
296 <#assign internetAdressen = false />
297
298 <@onlineServices147 idTopLink, idBottomLink, dienstleistung, linkCss, linkClass, beforeLinkTitle, lockIcon, persoIcon, moneyIcon, dlNeedsLogin, dlNeedsEidLogin, dlHasCosts, dlAndHasCosts, internetAdressen/>
299
300 <#assign iconLegendLockInfo = "Anmeldung erforderlich"/>
301 <#assign iconLegendMoneyInfo = "Kostenpflichtig"/>
302 <#assign iconLegendPersoInfo = "Anmeldung mit elektronischen Personalausweis erforderlich"/>
303 <#assign persoIcon = "#createPersoIcon13('persoLogoUnten')"/>
304
305 <@iconLegendList10 idBottomLink, idBottomLink, "black", persoIcon, iconLegendPersoInfo, lockIcon, iconLegendLockInfo, moneyIcon, iconLegendMoneyInfo/>
306
307 <#if !showCollapse>
308 </div>
309 </div>
310 </#if>
311 <#if showCollapse>
312 ${collapseAfter()}
313 </#if>
314 </#if>
315 </div>
316 </#if>
317 </div>
318 <#if showLeftInCard>
319 </div>
320 </#if>
321 </div>
322 </div>
323 <div class="col-12 col-sm-12 col-md-4">
324 <div class="mdl--page__default__02 vr-details-right">
325 <#if existsAndSizeGTZero(dienstleistung.extensions) || existsAndSizeGTZero(dienstleistung.formulare) || (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content) || existsAndSizeGTZero(dienstleistung.internetadressen)>
326 <div class="card <#if showOnlineServicesInMobilePosition == "top">d-none d-md-block </#if> " id="onlinedienstleistungen-right">
327 <div class="card-header">
328 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.onlinedienstleistung','Onlinedienstleistungen')}</h2>
329 </div>
330 <div class="card-body">
331
332 <#assign idTopLink ="olDlTopSide" />
333 <#assign idBottomLink = "olDlIconsSide"/>
334 <#assign linkCss = ""/>
335 <#assign linkClass = "onlineservices-link"/>
336 <#if linksAsButton>
337 <#assign linkClass = linkClass+ " btn btn-secondary w-100 text-left text-break"/>
338 </#if>
339 <#assign lockIcon = '<svg role="img" aria-label="Schlossicon. Für diese Dienstleistung ist ein Login erforderlich" style="height:15px !Important" class="" xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-lock-fill" viewBox="0 0 16 16"><path d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z"/></svg>'/>
340 <#assign moneyIcon = '<svg role="img" aria-label="Geldicon. Diese Dienstleitung ist kostenpflichtig" style="height:15px !Important" width="16" height="16" fill="currentColor" class="bi bi-credit-card" viewBox="0 0 16 16"><path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v1h14V4a1 1 0 0 0-1-1H2zm13 4H1v5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7z"/><path d="M2 10a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-1z"/></svg>'/>
341 <#assign persoIcon = ''/>
342 <#assign beforeLinkTitle = ""/>
343 <#assign dlNeedsLogin = 'Diese Dienstleistung erfordert eine Anmeldung.'/>
344 <#assign dlNeedsEidLogin = 'Anmeldung mit elektronischen Personalausweis erforderlich.'/>
345 <#assign dlHasCosts = 'Diese Dienstleitung ist kostenpflichtig.'/>
346 <#assign dlAndHasCosts = 'und ist kostenpflichtig'/>
347 <#assign internetAdressen = false/>
348
349 <@onlineServices147 idTopLink, idBottomLink, dienstleistung, linkCss, linkClass, beforeLinkTitle, lockIcon, persoIcon, moneyIcon, dlNeedsLogin, dlNeedsEidLogin, dlHasCosts, dlAndHasCosts, internetAdressen />
350 <#assign iconLegendLockInfo = "Anmeldung erforderlich"/>
351 <#assign iconLegendMoneyInfo = "Kostenpflichtig"/>
352 <#assign iconLegendPersoInfo = "Anmeldung mit elektronischen Personalausweis erforderlich"/>
353 <#assign persoIcon = "#createPersoIcon13('persoLogoTopIcons')"/>
354
355 <@iconLegendList10 idBottomLink,idTopLink,"black",persoIcon ,iconLegendPersoInfo ,lockIcon ,iconLegendLockInfo ,moneyIcon ,iconLegendMoneyInfo />
356 </div>
357 </div>
358 </#if>
359
360 <#if existsAndHasContent1(dienstleistung.dokumentList!'')>
361
362 <div class="card" id="downloads">
363 <div class="card-header">
364 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.downloads','Downloads')}</h2>
365 </div>
366 <div class="card-body">
367 <ul class="el--downloads">
368
369 <#list dienstleistung.dokumentList as dokument>
370 <#assign url = renderResponse.createResourceURL()/>
371 ${url.setResourceID("vr-bis-detail-document-download")}
372 ${url.setParameter("id", "${dokument.id}")}
373 <li class="mb-2">
374 <#if downloadCollapse>
375 <#if existsAndHasContent1(dokument.beschreibung!'')>
376 <#assign description = "<div class='mt-2' style='font-size:medium;'>${dokument.beschreibung}</div>" />
377 <#else>
378 <#assign description = "" />
379 </#if>
380 <#assign docContent ="<div class='mt-2 mb-4'>
381 <a href='${url}' title='Download ${dokument.name}' download>
382 <i class='bi bi-download mr-2'></i>
383 <span class='ml-2'>Herunterladen</span>
384 </a>
385 <${description}>
386 </div>"
387 />
388
389 <@collapseList6 "doc${dokument.id}", "${downloadCollapseIcon}$dokument.name", docContent,'downloadCollapse',downloadCollapseShowAs />
390 <#else>
391
392 <a href="${url}" title="Download ${dokument.name}" download>
393 ${downloadsIcon}${dokument.name}
394 </a>
395 </#if>
396 </li>
397 </#list>
398 </ul>
399 </div>
400 </div>
401 </#if>
402 <#if dienstleistung.einrichtungList?size gt 0>
403 <div class="card" id="zustaendigeEinrichtungen">
404 <div class="card-header">
405 <h2 class="el--location__headline el--textmodul__h3">${getLabelName4(dienstleistung, 'adt.label.dienstleistung.einrichtungen','Zuständige Einrichtungen')}</h2>
406 </div>
407 <div class="card-body">
408 <ul class="list-unstyled pl-0" aria-label="Liste der zuständigen Einrichtungen">
409 <#assign erCounter = 0/>
410 <#assign size = dienstleistung.einrichtungList?size/>
411 <#list dienstleistung.einrichtungList as einrichtung>
412 <#assign erCounter = erCounter + 1 />
413 <li class="mb-2" aria-label="Einrichtung ${einrichtung.name}">
414 <a href="${utils.createRenderUrl(renderResponse,einrichtungShow, einrichtung.id)}">${getFullFacilityName9(einrichtung,'dl-facility-address')}</a>
415 <ul class="list-unstyled pl-0" aria-label="Angaben zur Einrichtung">
416 <#if existsAndHasContent1(einrichtung.anschrift!'')>
417 <li aria-label="Adresse der Einrichtung">
418 <ul class="list-unstyled pl-0" >
419 <#if existsAndHasContent1(einrichtung.anschrift.name!'') && showEinrichtungAnschriftName>
420 <li aria-label="${showEinrichtungAnschriftNameAlt}"><strong>${einrichtung.anschrift.name}</strong></li>
421 </#if>
422 <li class="el--location__description__item" aria-label="Straße und Hausnummer">${einrichtung.anschrift.strasse} ${einrichtung.anschrift.hausnummer}</li>
423 <li class="el--location__description__item" aria-label="PLZ und Ort">${einrichtung.anschrift.postleitzahl} ${einrichtung.anschrift.ort}</li>
424
425 <#if existsAndHasContent1(einrichtung.anschrift.postfach!'')>
426 <li class="el--location__description__item">Postfach ${einrichtung.anschrift.getPostfach()}</li>
427 </#if>
428 <#if existsAndHasContent1(einrichtung.anschrift.zusatz!'')>
429 <li class="mt-2 el--location__description__item"><strong>Adresszusatz:</strong><br/>${einrichtung.anschrift.getZusatz()}</li>
430 </#if>
431 </ul>
432 </li>
433 </#if>
434 <#if
435 (existsAndHasContent1(einrichtung.telefonnummer!'')) ||
436 (existsAndHasContent1(einrichtung.faxnummer!''))||
437 (existsAndHasContent1(einrichtung.email!''))
438 >
439 <li aria-label="Erreichbarkeiten der Einrichtung" class="mt-2">
440 <ul class="list-unstyled pl-0" >
441 <#if existsAndHasContent1(einrichtung.telefonnummer!'')>
442 <li class="el--location__description__item"><strong>Telefon:</strong><br> <a href="${createPhoneHref3(einrichtung)}">${einrichtung.telefonnummer}</a></li>
443 </#if>
444 <#if existsAndHasContent1(einrichtung.faxnummer!'')>
445 <li class="el--location__description__item"><strong>Fax:</strong><br> <a href="${createFaxHref3(einrichtung)}">${einrichtung.faxnummer}</a> </li>
446 </#if>
447 <#if existsAndHasContent1(einrichtung.email!'')>
448 <li class="el--location__description__item"><strong>E-Mail:</strong><br> <a href="${createMailHref5(einrichtung)}">${einrichtung.email}</a></li>
449 </#if>
450 </ul>
451 </li>
452 </#if>
453 </ul>
454 <#if erCounter < size>
455 <hr>
456 </#if>
457 </li>
458 </#list>
459 </ul>
460 </div>
461 </div>
462 </#if>
463 <#if existsAndHasContent1(dienstleistung.mitarbeiterList!'') && !showEmployeesCollapse>
464 <#assign counter = 0 />
465 <#list dienstleistung.mitarbeiterList as mitarbeiter>
466 <#assign counter = counter +1 />
467 </#list>
468 <div class="card" id="zustaendigeKontaktpersonen">
469 <div class="card-header">
470 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.kontaktpersonen','Zuständige Kontaktpersonen')}</h2>
471 </div>
472 <div class="card-body">
473 <ul class="el--contact">
474 <#assign loop = 1/>
475 <#list dienstleistung.mitarbeiterList as mitarbeiter>
476 <#if mitarbeiter??>
477 <li>
478 <#if loop != 1>
479 <hr class="mb-2">
480 </#if>
481 <p class="el--contact__content">
482 <a href="${utils.createRenderUrl(renderResponse,mitarbeiterShow, mitarbeiter.id)}">${mitarbeiter.volleAnsprache()}</a>
483 <#if existsAndHasContent1(mitarbeiter.position!'')>
484 <br/><i class="el--contact__content__position" aria-label="Position:">${mitarbeiter.position}</i>
485 </#if>
486 </p>
487 <dl class="el--contact__list">
488 <#if existsAndHasContent1(mitarbeiter.telefonnummer!'')>
489 <dt>Telefon:</dt>
490 <dd><a href="${createPhoneHref3(mitarbeiter)}">${mitarbeiter.telefonnummer}</a></dd>
491 </#if>
492 <#if existsAndHasContent1(mitarbeiter.mobil!'')>
493 <dt>Mobil:</dt>
494 <dd><a href="${createMobilHref3(mitarbeiter)}">${mitarbeiter.mobil}</a></dd>
495 </#if>
496 <#if existsAndHasContent1(mitarbeiter.email!'')>
497 <dt>E-Mail:</dt>
498 <dd><a href="${createMailHref5(mitarbeiter)}">${mitarbeiter.email}</a></dd>
499 </#if>
500 </dl>
501 </li>
502 <#assign loop = loop + 1 />
503 </#if>
504 </#list>
505 </ul>
506 </div>
507 </div>
508 </#if>
509 <#if existsAndHasContent1(dienstleistung.mitarbeiterList!'') && showEmployeesCollapse>
510 <#assign counter = 0 />
511 <#list dienstleistung.mitarbeiterList as mitarbeiter>
512 <#assign counter = counter +1 />
513 </#list>
514 <div class="card" id="zustaendigeKontaktperson">
515 <div class="card-header">
516 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.kontaktpersonen','Zuständige Kontaktpersonen')}</h2>
517 </div>
518 <div class="card-body">
519 <ul class="el--contact">
520 <#assign loop = 1/>
521 <#list dienstleistung.mitarbeiterList as mitarbeiter>
522 <li class="mb-2">
523
524 <#assign collapseContent = "<ul class='mt-2'>
525 <li >
526 <p>
527 <strong>Profil:</strong> <a href='${utils.createRenderUrl(renderResponse,mitarbeiterShow, mitarbeiter.id)}'>Link</a>
528 </p>
529 </li>"/>
530 <#if existsAndHasContent1(mitarbeiter.position!'')>
531 <#assign collapseContent = collapseContent +"<li>
532 <p>
533 <strong>Position:</strong> <i class='el--contact__content__position'>${mitarbeiter.position}</i>
534 </p>
535 </li>"/>
536 </#if>
537 <#if existsAndHasContent1(mitarbeiter.telefonnummer!'')>
538 <#assign collapseContent = collapseContent +"<li>
539 <p>
540 <strong>Telefon:</strong> <a href='${createPhoneHref3(mitarbeiter)}'>${mitarbeiter.telefonnummer}</a>
541 </p>
542 </li>"/>
543 </#if>
544 <#if existsAndHasContent1(mitarbeiter.mobil!'')>
545 <#assign collapseContent = collapseContent +"<li>
546 <p>
547 <strong>Mobil:</strong> <a href='${createMobilHref3(mitarbeiter)}'>${mitarbeiter.mobil}</a>
548 </p>
549 </li>"/>
550 </#if>
551 <#if existsAndHasContent1(mitarbeiter.email!'')>
552 <#assign collapseContent = collapseContent +"<li>
553 <p>
554 <strong>E-Mail:</strong> <a href='${createMailHref5(mitarbeiter)}'>${mitarbeiter.email}</a>
555 </p>
556 </li>"/>
557 </#if>
558 <#assign collapseContent = collapseContent +"</ul>"/>
559
560 <@collapseList6 "mit${mitarbeiter.id}", "${employeesCollapseIcon}${mitarbeiter.volleAnsprache()}",collapseContent,"employeeCollapse",showEmployeesCollapseAs />
561 <#assign loop = loop + 1 />
562 </#list>
563 </ul>
564 </div>
565 </div>
566 </#if>
567
568
569 <#if
570 existsAndHasContent1(textmodul.volltext.weiterfuehrenderLink!'') ||
571 existsAndHasContent1(textmodul.kurztext.weiterfuehrenderLink!'') ||
572 existsAndHasContent1(textmodul.rechtsgrundlagen.weiterfuehrenderLink!'') ||
573 existsAndHasContent1(textmodul.erforderlicheUnterlagen.weiterfuehrenderLink!'') ||
574 existsAndHasContent1(textmodul.voraussetzungen.weiterfuehrenderLink!'') ||
575 existsAndHasContent1(textmodul.verfahrensablauf.weiterfuehrenderLink!'') ||
576 existsAndHasContent1(textmodul.weiterfuehrendeInformationen.weiterfuehrenderLink!'') ||
577 existsAndHasContent1(textmodul.hinweiseBesonderheiten.weiterfuehrenderLink!'') ||
578 existsAndHasContent1(textmodul.rechtsbehelf.weiterfuehrenderLink!'') ||
579 existsAndHasContent1(textmodul.bearbeitungsdauer.weiterfuehrenderLink!'') ||
580 existsAndHasContent1(textmodul.fristen.weiterfuehrenderLink!'')>
581 <div class="card" id="weiterfuehrendeLinks">
582 <div class="card-header">
583 <h2>${getLabelName4(dienstleistung, 'adt.label.dienstleistung.weitereinfos','Weiterführende Informationen')}</h2>
584 </div>
585 <div class="card-body">
586 <ul class="list-unstyled pl-0">
587 ${linklooper7(textmodul.volltext)}
588 ${linklooper7(textmodul.kurztext)}
589 ${linklooper7(textmodul.rechtsgrundlagen)}
590 ${linklooper7(textmodul.erforderlicheUnterlagen)}
591 ${linklooper7(textmodul.voraussetzungen)}
592 ${linklooper7(textmodul.verfahrensablauf)}
593 ${linklooper7(textmodul.weiterfuehrendeInformationen)}
594 ${linklooper7(textmodul.hinweiseBesonderheiten)}
595 ${linklooper7(textmodul.rechtsbehelf)}
596 ${linklooper7(textmodul.bearbeitungsdauer)}
597 ${linklooper7(textmodul.fristen)}
598 </ul>
599 </div>
600 </div>
601 </#if>
602 </div>
603 </div>
604 </div>
605</#if>
606<#if bis2017.ausgewaehlteEinrichtung??>
607<#-- Einrichtungen -->
608 <#assign
609 einrichtung = bis2017.ausgewaehlteEinrichtung
610 />
611 <div class="row">
612 <div class="col-12 col-sm-12 col-md-8 px-4 pl-lg-3">
613 <div class="vr-details-left">
614 <#if showLeftInCard>
615 <div class="card">
616 </#if>
617 <div class="facility-detail-header">
618 <div class="sideHeadline" id="seitentitel">
619 <h1>${getFullFacilityName9(einrichtung,'siteTitle')}</h1>
620 </div>
621 <#if existsAndHasContent1(einrichtung.kurzbezeichnung!'')>
622 <h2 class="sr-only">Kurzbezeichnung</h2>
623 <p>${einrichtung.kurzbezeichnung}</p>
624 </#if>
625 </div>
626
627 <#if existsAndHasContent1(einrichtung.aktuelles!'')>
628 <div class="alert alert-info">
629 <h2 class="">Aktuelles</h2>
630 <p>${einrichtung.aktuelles}</p>
631 </div>
632 </#if>
633 <#if existsAndHasContent1(einrichtung.beschreibung!'')>
634 <h2 class="sr-only">Beschreibung</h2>
635 <div>${einrichtung.beschreibung}</div>
636 </#if>
637
638 <#if existsAndHasContent1(einrichtung.beschreibungIntern!'')>
639 <h2 class="sr-only">Beschreibung Intern</h2>
640 <p>${einrichtung.beschreibungIntern}</p>
641 <hr/>
642 </#if>
643
644 <#if existsAndHasContent1(einrichtung.anschrift!'')>
645 <#assign lat = 0/>
646 <#assign lng = 0/>
647 <#assign mapTitle = 'Karte'/>
648
649 <#if existsAndHasContent1(einrichtung.anschrift.geokodierung!'')>
650 <#assign lat = einrichtung.anschrift.geokodierung.latitude?number/>
651 <#assign lng = einrichtung.anschrift.geokodierung.longitude?number/>
652 </#if>
653 <#assign hasMap = lat?has_content && lng?has_content/>
654
655 <h2 class="">Anschrift</h2>
656 <div class="el--maplocation__card__content el--textmodul">
657 ${createAddressUL16(einrichtung, 'facility-address','')}
658 </div>
659
660
661 <#if existsAndHasContent1(einrichtung.telefonnummer!'') ||
662 existsAndHasContent1(einrichtung.faxnummer!'') ||
663 existsAndHasContent1(einrichtung.email!'')>
664 <hr>
665 <h2>Kontakt</h2>
666 ${createContactList9(einrichtung, 'facility-contact')}
667 </#if>
668 </#if>
669
670 <div class="el-textmodul">
671 <#if hasMap && showFacilityMap>
672 <@openstreetmap52 mapTitle lat lng />
673 </#if>
674
675 <#if existsAndHasContent1(einrichtung.barrierefreieErreichbarkeit!'')>
676 <#if showCollapse>
677 ${collapseBefore20('Barrierefreie Erreichbarkeit',collapseIcon,'')}
678 <#else>
679 <hr>
680 <h2>Barrierefreie Erreichbarkeit</h2>
681 </#if>
682 <div class="text">
683 ${einrichtung.barrierefreieErreichbarkeit}
684 </div>
685 <#if showCollapse>
686 ${collapseAfter()}
687 </#if>
688 </#if>
689
690 <#if existsAndHasContent1(einrichtung.anschrift!'') && (existsAndHasContent1(einrichtung.anschrift.verkehrsanbindung!'') || existsAndHasContent1(einrichtung.anschrift.anfahrtUrl!''))>
691 <#if showCollapse>
692 ${collapseBefore20('Verkehrsanbindung',collapseIcon,'')}
693 <#else>
694 <hr>
695 <h2>Verkehrsanbindung</h2>
696 </#if>
697 <#if existsAndHasContent1(einrichtung.anschrift.verkehrsanbindung!'')>
698 ${einrichtung.anschrift.verkehrsanbindung}
699 </#if>
700 <#if existsAndHasContent1(einrichtung.anschrift.anfahrtUrl!'')>
701 <#list einrichtung.anschrift.anfahrtUrl as url>
702 <a href="${url.uri}" title="${url.titel}">${url.titel}</a>
703 </#list>
704 </#if>
705 <#if showCollapse>
706 ${collapseAfter()}
707 </#if>
708 </#if>
709
710 <#assign serviceZeitenEmpty = einrichtung.servicezeitenFreitext?has_content />
711 <#if einrichtung.servicezeitenStrukturiert?? && einrichtung.servicezeitenStrukturiert.tage??>
712 <#list einrichtung.servicezeitenStrukturiert.tage?values as value>
713 <#list value.paare?values as paare>
714 <#if paare?? && paare?has_content>
715 <#assign serviceZeitenEmpty = false />
716 <#break>
717 </#if>
718 </#list>
719 <#if !serviceZeitenEmpty>
720 <#break>
721 </#if>
722 </#list>
723 </#if>
724
725
726
727 <#if !serviceZeitenEmpty>
728 <#if showCollapse>
729 ${collapseBefore20('Servicezeiten',collapseIcon,'')}
730 <#else>
731 <hr>
732 <h2>Servicezeiten</h2>
733 </#if>
734
735 <@createTimeTable15 einrichtung/>
736 <p class="mt-2">${einrichtung.servicezeitenFreitext}</p>
737 <#if showCollapse>
738 ${collapseAfter()}
739 </#if>
740 <#elseif existsAndHasContent1(einrichtung.servicezeiten!'')>
741 <#if showCollapse>
742 ${collapseBefore20('Servicezeiten',collapseIcon,'')}
743 <#else>
744 <hr>
745 <h2>Servicezeiten</h2>
746 </#if>
747 <p>
748 ${einrichtung.servicezeiten}
749 </p>
750 <#if existsAndHasContent1(einrichtung.servicezeitenFreitext!'')>
751 <p class="mt-2">
752 ${einrichtung.servicezeitenFreitext}
753 </p>
754 </#if>
755 <#if showCollapse>
756 ${collapseAfter()}
757 </#if>
758 </#if>
759
760 <#if existsAndHasContent1(einrichtung.dienstleistungList!'')>
761 <#if showCollapse>
762 ${collapseBefore20('Dienstleistungen der Einrichtung',collapseIcon,'')}
763 <#else>
764 <hr>
765 <h2>Dienstleistungen der Einrichtung</h2>
766 </#if>
767 <ul style="padding:0;">
768 <#list einrichtung.dienstleistungList as dienstleistung>
769 <li>
770 <p class="m-0">
771 <a href="${utils.createRenderUrl(renderResponse, dienstleistungShow, dienstleistung.id)}">${dienstleistung.name}</a>
772 </p>
773 </li>
774 </#list>
775 </ul>
776 <#if showCollapse>
777 ${collapseAfter()}
778 </#if>
779 </#if>
780
781
782 <#if einrichtung.uebereinrichtung??>
783 <#if showCollapse>
784 ${collapseBefore20('Diese Einrichtung gehört zu',collapseIcon,'')}
785 <#else>
786 <hr>
787 <h2>Diese Einrichtung gehört zu</h2>
788 </#if>
789 <p>
790 <a href="${utils.createRenderUrl(renderResponse, einrichtungShow, einrichtung.uebereinrichtung.id)}">${getFullFacilityName9(einrichtung.uebereinrichtung,'uebereinrichtung')}</a>
791 </p>
792 <#if showCollapse>
793 ${collapseAfter()}
794 </#if>
795 </#if>
796
797 <#if existsAndHasContent1(einrichtung.untereinrichtungList!'')>
798 <#if showCollapse>
799 ${collapseBefore20('Zu dieser Einrichtung gehören',collapseIcon,'')}
800 <#else>
801 <hr>
802 <h2>Zu dieser Einrichtung gehören</h2>
803 </#if>
804 <ul style="">
805 <#list einrichtung.untereinrichtungList as child>
806 <li>
807 <p class="m-0">
808 <a href="${utils.createRenderUrl(renderResponse,einrichtungShow, child.id)}">${getFullFacilityName9(child,'untereinrichtungList')}</a>
809 </p>
810 </li>
811 </#list>
812 </ul>
813 <#if showCollapse>
814 ${collapseAfter()}
815 </#if>
816 </#if>
817 <#if existsAndHasContent1(einrichtung.internetadressen!'')>
818 <#if showCollapse>
819 ${collapseBefore20('Internetadressen', collapseIcon,'')}
820 <#else>
821 <hr>
822 <h2>Internetadressen</h2>
823 </#if>
824 <ul class="list-unstyled" style="padding-top:0 !important;padding-bottom:0 !important;">
825 <#list einrichtung.internetadressen as link>
826 <li>
827 <a href="${link.uri}" title="${link.titel}"
828 <#if link.neuesFenster> target="_blank" </#if>
829 >
830 ${link.titel}
831 </a>
832 </li>
833 </#list>
834 </ul>
835 <#if showCollapse>
836 ${collapseAfter()}
837 </#if>
838 </#if>
839 </div>
840 </div>
841 <#if showLeftInCard>
842 </div>
843 </#if>
844
845 </div>
846
847 <div class="col-12 col-sm-12 col-md-4">
848 <div class="vr-details-right">
849 <#if existsAndHasContent1(einrichtung.mitarbeiterList!'') && !showEmployeesCollapse>
850
851 <div class="card" id="zustaendigeKontaktperson">
852 <div class="card-header">
853 <#if einrichtung.mitarbeiterList?size gt 1>
854 <h2>Zuständige Kontaktpersonen</h2>
855 <#else>
856 <h2>Zuständige Kontaktperson</h2>
857 </#if>
858 </div>
859 <div class="card-body">
860 <ul class="el--contact">
861 <#assign loop = 1 />
862 <#list einrichtung.mitarbeiterList as mitarbeiter>
863 <li>
864 <#if loop != 1>
865 <hr class="mb-2">
866 </#if>
867 <p class="el--contact__content">
868 <a href="${utils.createRenderUrl(renderResponse,mitarbeiterShow, mitarbeiter.id)}">${mitarbeiter.volleAnsprache()}</a>
869 <#if existsAndHasContent1(mitarbeiter.position!'')>
870 <br/><i class="el--contact__content__position">${mitarbeiter.position}</i>
871 </#if>
872 </p>
873 <dl class="el--contact__list">
874 <#if existsAndHasContent1(mitarbeiter.telefonnummer!'')>
875 <dt>Telefon:</dt>
876 <dd><a href="${createPhoneHref3(mitarbeiter)}">${mitarbeiter.telefonnummer}</a></dd>
877 </#if>
878 <#if existsAndHasContent1(mitarbeiter.email!'')>
879 <dt>E-Mail:</dt>
880 <dd><a href="${createMailHref5(mitarbeiter)}">${mitarbeiter.email}</a></dd>
881 </#if>
882 </dl>
883 </li>
884 <#assign loop = loop + 1 />
885 </#list>
886 </ul>
887 </div>
888 </div>
889 </#if>
890 <#if existsAndHasContent1(einrichtung.mitarbeiterList!'') && showEmployeesCollapse>
891
892 <div class="card" id="zustaendigeKontaktperson">
893 <div class="card-header">
894 <#if einrichtung.mitarbeiterList?size gt 1>
895 <h2>Zuständige Kontaktpersonen</h2>
896 <#else>
897 <h2>Zuständige Kontaktperson</h2>
898 </#if>
899 </div>
900 <div class="card-body">
901
902 <ul class="el--contact">
903 <#assign loop = 1/>
904 <#list einrichtung.mitarbeiterList as mitarbeiter>
905 <li class="mb-2">
906 <button data-toggle="collapse"
907 data-target="#mit-${mitarbeiter.id?replace(' ','')}"
908 class=" employeeCollapse <#if showEmployeesCollapseAs == "button"> btn btn-secondary </#if> w-100 text-left text-break">
909 ${employeesCollapseIcon}${mitarbeiter.volleAnsprache()}</button>
910 <div id="mit-${mitarbeiter.id?replace(' ','')}" class="collapse">
911 <ul class="mt-2">
912 <li >
913 <p>
914 <strong>Profil:</strong> <a href="${utils.createRenderUrl(renderResponse,mitarbeiterShow, mitarbeiter.id)}">Link</a>
915 </p>
916 </li>
917 <#if existsAndHasContent1(mitarbeiter.position!'')>
918 <li>
919 <p>
920 <strong>Position:</strong> <i class="el--contact__content__position">${mitarbeiter.position}</i>
921 </p>
922 </li>
923 </#if>
924 <#if existsAndHasContent1(mitarbeiter.telefonnummer!'')>
925 <li>
926 <p>
927 <strong>Telefon:</strong> <a href="${createPhoneHref3(mitarbeiter)}">${mitarbeiter.telefonnummer}</a>
928 </p>
929 </li>
930 </#if>
931 <#if existsAndHasContent1(mitarbeiter.mobil!'')>
932 <li>
933 <p>
934 <strong>Mobil:</strong> <a href="${createMobilHref3(mitarbeiter)}">${mitarbeiter.mobil}</a>
935 </p>
936 </li>
937 </#if>
938 <#if existsAndHasContent1(mitarbeiter.email!'')>
939 <li>
940 <p>
941 <strong>E-Mail:</strong> <a href="${createMailHref5(mitarbeiter)}">${mitarbeiter.email}</a>
942 </p>
943 </li>
944 </#if>
945 </ul>
946 </div>
947 </li>
948 <#assign loop = loop + 1/>
949 </#list>
950 </ul>
951 </div>
952 </div>
953 </#if>
954 </div>
955 </div>
956 </div>
957</#if>
958<#if bis2017.ausgewaehlterMitarbeiter??>
959<#-- Mitarbeitende -->
960 <#assign
961 mitarbeiter = bis2017.ausgewaehlterMitarbeiter
962 />
963
964 <div class="row">
965 <div class="col-12 col-sm-12 col-md-8 px-4 pl-lg-3">
966 <div class="vr-details-left">
967 <#if showLeftInCard>
968 <div class="card">
969 </#if>
970 <div class="">
971 <div class="employee-header">
972 <div class="sideHeadline" id="seitentitel">
973 <h1>${mitarbeiter.volleAnsprache()}</h1>
974 </div>
975
976 <#if existsAndHasContent1(mitarbeiter.position!'')>
977 <p>${mitarbeiter.position}</p>
978 </#if>
979 </div>
980 <div class="el-textmodul">
981 <#if existsAndHasContent1(mitarbeiter.beschreibung!'')>
982 <h2 class="sr-only">Beschreibung</h2>
983 <p>${mitarbeiter.beschreibung}</p>
984 <hr/>
985 </#if>
986
987 <#if existsAndHasContent1(mitarbeiter.beschreibungIntern!'')>
988 <h2 class="sr-only">Beschreibung Intern</h2>
989 <p>${mitarbeiter.beschreibungIntern}</p>
990 <hr/>
991 </#if>
992
993 <#if existsAndHasContent1(mitarbeiter.einrichtungList!'')>
994 <h2>Anschrift</h2>
995 <#assign i = 0 />
996 <#list mitarbeiter.einrichtungList as einrichtung>
997 <#if i < 1>
998 <#if existsAndHasContent1(einrichtung.anschrift!'')>
999 ${createAddressUL16(einrichtung, 'employee-address',mitarbeiter)}
1000 <#else>
1001 <p><strong><a href="${utils.createRenderUrl(renderResponse,$einrichtungShow, $einrichtung.id)}">${einrichtung.name}</a></strong></p> <br/>
1002 </#if>
1003 <#if existsAndHasContent1(mitarbeiter.telefonnummer!'')
1004 || existsAndHasContent1(mitarbeiter.faxnummer!'')
1005 || existsAndHasContent1(mitarbeiter.mobil!'')
1006 ||existsAndHasContent1(mitarbeiter.email!'')
1007 >
1008 <hr>
1009 <h2>Kontakt</h2>
1010 ${createContactList9(mitarbeiter, 'employee-contact')}
1011 </#if>
1012
1013
1014 <#if existsAndHasContent1(einrichtung.anschrift!'') && showEmployeeMap>
1015 <#assign lat = 0/>
1016 <#assign lng = 0/>
1017 <#assign mapTitle = 'Karte'/>
1018
1019 <#if existsAndHasContent1(einrichtung.anschrift.geokodierung!'')>
1020 <#assign lat = einrichtung.anschrift.geokodierung.latitude?number/>
1021 <#assign lng = einrichtung.anschrift.geokodierung.longitude?number/>
1022 </#if>
1023 <@openstreetmap52 mapTitle lat lng />
1024 </#if>
1025 </#if>
1026 <#assign i = i+1/>
1027 </#list>
1028 <#else>
1029 <#if existsAndHasContent1(mitarbeiter.telefonnummer!'')
1030 || existsAndHasContent1($mitarbeiter.faxnummer!'')
1031 || existsAndHasContent1(mitarbeiter.mobil!'')
1032 ||existsAndHasContent1(mitarbeiter.email!'')
1033 >
1034 <h2>Kontakt</h2>
1035 ${createContactList9(mitarbeiter, 'employee-contact')}
1036 </#if>
1037 </#if>
1038 <#assign serviceZeitenEmpty = mitarbeiter.servicezeitenFreitext?has_content />
1039 <#if mitarbeiter.servicezeitenStrukturiert?? && mitarbeiter.servicezeitenStrukturiert.tage??>
1040 <#list mitarbeiter.servicezeitenStrukturiert.tage?values as value>
1041 <#list value.paare?values as paare>
1042 <#if paare?? && paare?has_content>
1043 <#assign serviceZeitenEmpty = false />
1044 <#break>
1045 </#if>
1046 </#list>
1047 <#if !serviceZeitenEmpty>
1048 <#break>
1049 </#if>
1050 </#list>
1051 </#if>
1052
1053 <#if !serviceZeitenEmpty>
1054 <#if showCollapse>
1055 ${collapseBefore20('Servicezeiten',collapseIcon,'')}
1056 <#else>
1057 <hr>
1058 <h2>Servicezeiten</h2>
1059 </#if>
1060 <@createTimeTable15 mitarbeiter/>
1061 <p class="mt-2">
1062 ${mitarbeiter.servicezeitenFreitext}
1063 </p>
1064 <#if showCollapse>
1065 ${collapseAfter()}
1066 </#if>
1067 <#elseif existsAndHasContent1(mitarbeiter.servicezeiten!'')>
1068 <#if showCollapse>
1069 ${collapseBefore20('Servicezeiten',collapseIcon,'')}
1070 <#else>
1071 <hr>
1072 <h2>Servicezeiten</h2>
1073 </#if>
1074 <p>
1075 ${mitarbeiter.servicezeiten}
1076 </p>
1077 <#if mitarbeiter.servicezeitenFreitext>
1078 <p class="mt-2">
1079 ${mitarbeiter.servicezeitenFreitext}
1080 </p>
1081 </#if>
1082 <#if showCollapse>
1083 ${collapseAfter()}
1084 </#if>
1085 </#if>
1086 <#if existsAndHasContent1(mitarbeiter.dienstleistungList!'')>
1087 <#if showCollapse>
1088 ${collapseBefore20('Dienstleistungen',collapseIcon,'')}
1089 <#else>
1090 <hr>
1091 <h2>Dienstleistungen</h2>
1092 </#if>
1093 <ul style="padding: 0">
1094 <#list mitarbeiter.dienstleistungList as dienstleistung>
1095 <li>
1096 <p>
1097 <a href="${utils.createRenderUrl(renderResponse,dienstleistungShow, dienstleistung.id)}">${dienstleistung.name}</a>
1098 </p>
1099 </li>
1100 </#list>
1101 </ul>
1102
1103 <#if showCollapse>
1104 ${collapseAfter()}
1105 </#if>
1106 </#if>
1107 </div>
1108 </div>
1109 <#if showLeftInCard>
1110 </div>
1111 </#if>
1112 </div>
1113 </div>
1114 <div class="col-12 col-sm-12 col-md-4">
1115 <div class="vr-details-right">
1116 <#if existsAndHasContent1(mitarbeiter.portrait!'')>
1117 <#if !showLeftInCard>
1118 <#assign portrait = '<div class="w-100"><img src="${mitarbeiter.portrait}" alt="Mitarbeitenden Portrait" style="width: 100%;height: 100%;"/></div>' />
1119 <#else>
1120 <#assign portrait = '<div class="w-100" style="text-align:center;"><img src="${mitarbeiter.portrait}" alt="Mitarbeitenden Portrait" style="width: 100%;height: 100%; max-width:200px"/></div>' />
1121 </#if>
1122 ${card3('Mitarbeitenden Portrait',portrait)}
1123 </#if>
1124
1125 <#if existsAndHasContent1(mitarbeiter.einrichtungList!'')>
1126 <div class="card" id="mbZustaendigeEinrichtungen">
1127 <div class="card-header">
1128 <#if mitarbeiter.einrichtungList?size gt 1 >
1129 <h2>Zuständige Einrichtungen</h2>
1130 <#else>
1131 <h2>Zuständige Einrichtung</h2>
1132 </#if>
1133 </div>
1134 <div class="card-body">
1135 <ul>
1136 <#assign counter = 0 />
1137 <#list mitarbeiter.einrichtungList as einrichtung >
1138 <#assign counter = counter + 1/>
1139 <li>
1140 <a href="${utils.createRenderUrl(renderResponse,einrichtungShow, einrichtung.id)}">${getFullFacilityName9(einrichtung,'employee-facility-list')}</a>
1141 <#if counter < mitarbeiter.einrichtungList?size>
1142 <hr>
1143 </#if>
1144 </li>
1145 </#list>
1146 </ul>
1147 </div>
1148 </div>
1149 </#if>
1150 </div>
1151 </div>
1152 </div>
1153 <@employeesExport16 employeeData=mitarbeiter />
1154</#if>
1155
1156<#if vr.zfinder2017??>
1157 <#if vr.zfinder2017.ausgewaehlteLeistung??>
1158 ausgewaehlteLeistung
1159 </#if>
1160 <#if vr.zfinder2017.additionalInformation??>
1161 additionalInformation
1162 </#if>
1163</#if>
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178<#function createLoginURL destination>
1179 <#assign
1180 login_url1_WithHtml = 'href="'+ login_url +'?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&_com_liferay_login_web_portlet_LoginPortlet_redirect='
1181 login_url2_WithHtml = '" rel="nofollow" data-redirect="true"'
1182 login_url_WithHtml = login_url1_WithHtml + destination + login_url2_WithHtml
1183 />
1184 <#return login_url_WithHtml />
1185</#function>
1186
1187<#macro employeesExport16 employeeData>
1188 <div id="export" style="display:none;">
1189 <div id="export-id">${employeeData.id}</div>
1190 <div id="export-person">
1191 <div id="export-person-anrede"><#if employeeData.anrede??>${employeeData.anrede}</#if></div>
1192 <div id="export-person-titel"><#if employeeData.titel??>${employeeData.titel}</#if></div>
1193 <div id="export-person-vorname"><#if employeeData.vorname??>${employeeData.vorname} </#if></div>
1194 <div id="export-person-familienname"><#if employeeData.familienname??>${employeeData.familienname} </#if></div>
1195 <div id="export-person-funktion"><#if employeeData.position??>${employeeData.position} </#if></div>
1196 </div>
1197 <div id="export-beschreibung"><#if employeeData.beschreibung??>${employeeData.beschreibung}</#if></div>
1198 <div id="export-kontakt">
1199 <div id="export-kontakt-telefonnummer"><#if employeeData.telefonnummer??>${employeeData.telefonnummer}</#if></div>
1200 <div id="export-kontakt-faxnummer"><#if employeeData.faxnummer??>${employeeData.faxnummer} </#if></div>
1201 <div id="export-kontakt-telefonnummer-mobil"><#if employeeData.mobil??>${employeeData.mobil} </#if></div>
1202 <div id="export-kontakt-email-adresse"><#if employeeData.email??>${employeeData.email} </#if></div>
1203 </div>
1204 <div id="export-anschrift">
1205 <#if employeeData.einrichtungList??>
1206 <#assign einrichtung = employeeData.einrichtungList[0]/>
1207 <#else>
1208 <#assign einrichtung = '' />
1209 </#if>
1210 <div id="export-anschrift-url-einrichtung">
1211 <#if einrichtung?? && einrichtung?has_content>
1212 <a href="${utils.createRenderUrl(renderResponse,einrichtungShow, einrichtung.id)}">
1213 ${einrichtung.name}
1214 </a>
1215 </#if>
1216 </div>
1217 <#if einrichtung?? && einrichtung?has_content>
1218 <div id="export-anschrift-strasse"><#if einrichtung.anschrift.strasse??>${einrichtung.anschrift.strasse} </#if></div>
1219 <div id="export-anschrift-hausnummer"><#if einrichtung.anschrift.hausnummer??>${einrichtung.anschrift.hausnummer} </#if></div>
1220 <div id="export-anschrift-ort"><#if einrichtung.anschrift.ort??>${einrichtung.anschrift.ort}</#if></div>
1221 <div id="export-anschrift-postleitzahl"><#if einrichtung.anschrift.postleitzahl??>${einrichtung.anschrift.postleitzahl} </#if></div>
1222 <div id="export-anschrift-zusatz"><#if einrichtung.anschrift.zusatz??>${einrichtung.anschrift.zusatz} </#if></div>
1223 <div id="export-anschrift-postfach"><#if einrichtung.anschrift.postfach??>${einrichtung.anschrift.postfach} </#if></div>
1224 </#if>
1225
1226 <div id="export-anschrift-raum"><#if employeeData.raum??>${employeeData.raum} </#if></div>
1227 </div>
1228 <div id="export-servicezeiten">
1229 <div id="export-servicezeiten-tabelle">
1230 <#assign serviceZeitenEmpty = employeeData.servicezeitenFreitext?has_content />
1231 <#if employeeData.servicezeitenStrukturiert?? && employeeData.servicezeitenStrukturiert.tage??>
1232 <#list employeeData.servicezeitenStrukturiert.tage?values as value>
1233 <#list value.paare?values as paare>
1234 <#if paare?? && paare?has_content>
1235 <#assign serviceZeitenEmpty = false />
1236 <#break>
1237 </#if>
1238 </#list>
1239 <#if !serviceZeitenEmpty>
1240 <#break>
1241 </#if>
1242 </#list>
1243 </#if>
1244 <#if serviceZeitenEmpty??>
1245 <@createTimeTable15 employeeData/>
1246 <#elseif employeeData.servicezeiten??>
1247 ${employeeData.servicezeiten}
1248 </#if>
1249 </div>
1250 <div id="export-servicezeiten-anmerkungen"><#if employeeData.servicezeitenFreitext??> ${employeeData.servicezeitenFreitext} </#if></div>
1251 </div>
1252
1253 <div id="export-amt-fachbereich">
1254 <#if employeeData.amtFachbereich??>
1255 <a href="${utils.createRenderUrl(renderResponse,einrichtungShow, employeeData.amtFachbereich.id)}">${employeeData.amtFachbereich.name}</a>
1256 </#if>
1257 </div>
1258
1259 <#if einrichtung??>
1260 <div id="export-verkehrsanbindung">
1261 <#if einrichtung.anschrift.verkehrsanbindung??>${einrichtung.anschrift.verkehrsanbindung}</#if>
1262 </div>
1263 <div id="export-geokoordinaten">
1264 <#if einrichtung.anschrift.geokodierung??>
1265 <div id="export-geokooridnaten-breitengrad"><#if einrichtung.anschrift.geokodierung.latitude??>${einrichtung.anschrift.geokodierung.latitude} </#if>
1266 </div>
1267 <div id="export-geokooridnaten-laengengrad"><#if einrichtung.anschrift.geokodierung.longitude??>${einrichtung.anschrift.geokodierung.longitude} </#if>
1268 </div>
1269 </#if>
1270 <div id="export-geokooridnaten-anfahrt-url">
1271 <#if einrichtung.anschrift.anfahrtUrl?? && einrichtung.anschrift.anfahrtUrl?has_content>
1272 <#assign anfahrtUrl = einrichtung.anschrift.anfahrtUrl[0]/>
1273 <a href="${anfahrtUrl.uri}">${anfahrtUrl.titel}</a>
1274 </#if>
1275 </div>
1276
1277 </div>
1278 </#if>
1279 <div id="export-dienstleistungen">
1280 <ul>
1281 <#if mitarbeiter.dienstleistungList??>
1282 <#list employeeData.dienstleistungList as dienstleistung>
1283 <li>
1284 <a href="${utils.createRenderUrl(renderResponse,dienstleistungShow, dienstleistung.id)}">
1285 ${dienstleistung.name}
1286 </a>
1287 </li>
1288 </#list>
1289 </#if>
1290 </ul>
1291 </div>
1292 <div id="export-einrichtungen">
1293 <ul>
1294 <#list employeeData.einrichtungList as einrichtung>
1295 <li>
1296 <a href="${utils.createRenderUrl(renderResponse,einrichtungShow, einrichtung.id)}">
1297 ${einrichtung.name}
1298 </a>
1299 </li>
1300 </#list>
1301 </ul>
1302 </div>
1303 </div>
1304</#macro>
1305
1306<#macro portletSearch>
1307 <script>
1308 $(document).ready( function() {
1309 const trigger = $('.search-detail');
1310
1311 $('html').click(function() {
1312 console.log("hide")
1313 });
1314
1315 $(trigger).click(function(event){
1316 console.log("EGAL!")
1317 event.stopPropagation();
1318 });
1319 });
1320 </script>
1321
1322 <script>
1323 $(document).ready(function () {
1324 $(".search-placeholder").append(jQuery(".search-area").parent().parent());
1325 $(".search-placeholder").append(jQuery("#wait"));
1326 $(".search-placeholder").append(jQuery("#resp").parent());
1327 });
1328
1329 $('#co').submit(function (evt) {
1330 evt.preventDefault();
1331 });
1332 </script>
1333 <div id="search-dropdown" <#if !bis2017.ausgewaehlteDienstleistung?? || !bis2017.ausgewaehlteEinrichtung?? || !bis2017.ausgewaehlterMitarbeiter??> style="display: none !important" </#if>>
1334 <div id="resp">
1335 <#if vr??>
1336 <script>
1337 $(".search-placeholder").addClass("search-with-results");
1338 $("#form-element-query").keyup(function () {
1339
1340 if (!this.value) {
1341 $(".search-placeholder.search").removeClass("search-with-results");
1342 }
1343
1344 });
1345 </script>
1346 <div class="row mt-3">
1347 <div class="col-12">
1348 <div class="search-detail">
1349 <#if bis2017.ausgewaehlteDienstleistung?? && bis2017.ausgewaehlteEinrichtung?? && bis2017.ausgewaehlterMitarbeiter?? && (!dienstleistung) && (!mitarbeiter) && (!einrichtung)>
1350 <p>Es gab keine Treffer zu Ihrer Suchanfrage.</p>
1351 <#else>
1352 <div class="row">
1353
1354 <#if suchergebnisDienstleistung??>
1355 <div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-4">
1356 <h2>Dienstleistungen (${suchergebnisDienstleistung?size}</h2>
1357 <ol>
1358 <#list suchergebnisDienstleistung as i>
1359 <li class="mb-2">
1360 <a href="${utils.getDienstleistungUrl(i.id)}" class="el--search__form__assist__kat__list__item">${i.name}</a>
1361 </li>
1362 </#list>
1363 </ol>
1364 </div>
1365 </#if>
1366
1367 <#if suchergebnisEinrichtung??>
1368 <div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-4">
1369 <h2>Einrichtungen (${suchergebnisEinrichtung?size})</h2>
1370 <ol>
1371 <#list suchergebnisEinrichtung as i>
1372 <li class="mb-2">
1373 <a href="${utils.getEinrichtungUrl(i.id)}" class="el--search__form__assist__kat__list__item">${i.name}</a>
1374 </li>
1375 </#list>
1376 </ol>
1377 </div>
1378 </#if>
1379
1380 <#if suchergebnisMitarbeiter??>
1381 <div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-4">
1382 <h2>Ansprechpartner (${suchergebnisMitarbeiter?size})</h2>
1383 <ol>
1384 <#list suchergebnisMitarbeiter as i>
1385 <li class="mb-2">
1386 <a href="${utils.getMitarbeiterUrl(i.id)}" class="el--search__form__assist__kat__list__item">${i.volleAnsprache()}</a>
1387 </li>
1388 </#list>
1389 </ol>
1390 </div>
1391 </#if>
1392 </div>
1393 </#if>
1394 </div>
1395 </div>
1396 </div>
1397 </#if>
1398 </div>
1399 </div>
1400 <div class="search-styling">
1401 <div class="card p-4">
1402 <div class="search-placeholder search">
1403 <h1>Suche</h1>
1404 </div>
1405 </div>
1406 </div>
1407</#macro>
1408
1409<#function createPersoIcon13 class>
1410 <#return '<i aria-label="Icon-Elektronischer Personalausweis" class="'+class+'"><img aria-hidden="true" style="background: white;border-radius: 0.2rem;width: auto;height: 16px;display: inline;vertical-align: baseline;" class="persoIcon '+class+'" src ="/o/bot-theme/images/perso.svg" alt=""/></i>' />
1411</#function>
1412
1413<#macro externContentLoader9 headline content contentUrl privacyTitle privacyUrl showButtonText hideButtonText>
1414 <div class="externContentLoader" aria-hidden="true">
1415 <div class="row">
1416 <div class="col-12 contentCol">
1417 <div class="extern-hide">
1418 ${headline}
1419 ${content}
1420 </div>
1421 <div class="extern-show d-none" data-content="${contentUrl}"></div>
1422 </div>
1423 <div class="col-6 mt-2">
1424 <button class="btn btn-primary load-extern">
1425 ${showButtonText}
1426 </button>
1427 <button class="btn btn-primary remove-extern d-none">
1428 ${hideButtonText}
1429 </button>
1430 </div>
1431 <div class="col-6 mt-3 privacyUrl">
1432 <a href="${privacyUrl}">
1433 ${privacyTitle}
1434 </a>
1435 </div>
1436 </div>
1437 </div>
1438
1439 <script>
1440 $(document).ready(function(){
1441
1442 function loadExtern(element,url){
1443 $(element).append('<iframe style="height: 100%" src=' + url +' width="100%"></iframe>');
1444 }
1445
1446 function removeExtern(element){
1447 $(element).remove();
1448 }
1449
1450 function showContent(contentElement,buttonElement){
1451 contentElement.removeClass("d-none");
1452 buttonElement.removeClass("d-none");
1453 contentElement.addClass("d-block");
1454 buttonElement.addClass("d-block");
1455 }
1456 function hideContent(contentElement,buttonElement){
1457 contentElement.removeClass("d-block");
1458 buttonElement.removeClass("d-block");
1459 contentElement.addClass("d-none");
1460 buttonElement.addClass("d-none");
1461 }
1462 function findClosest(element,toFindElement){
1463 return $(element).find(toFindElement);
1464 }
1465
1466 function getParent(element){
1467 return $(element).closest(".externContentLoader");
1468 }
1469
1470 $(".load-extern").on("click",function(){
1471 let parent = getParent(this);
1472 let externShow = findClosest(parent,".extern-show");
1473 let externHide = findClosest(parent,".extern-hide");
1474 let externShowBtn = $(this);
1475 let externHideBtn = findClosest(parent,".remove-extern");
1476
1477
1478 showContent(externShow,externHideBtn);
1479 hideContent(externHide,externShowBtn);
1480 loadExtern(externShow,$(externShow).attr("data-content"))
1481 })
1482
1483 $(".remove-extern").on("click",function(){
1484 let parent = getParent(this);
1485 let externShow = findClosest(parent,".extern-show");
1486 let externHide = findClosest(parent,".extern-hide");
1487 let externShowBtn = findClosest(parent,".load-extern");
1488 let externHideBtn = $(this);
1489
1490 hideContent(externShow,externHideBtn);
1491 showContent(externHide,externShowBtn);
1492 removeExtern(externShow.children());
1493 })
1494 })
1495 </script>
1496</#macro>
1497
1498<#macro createTimeTable15 baseVariable>
1499 <#assign serviceZeitenEmpty = baseVariable.servicezeitenFreitext?has_content />
1500 <#if baseVariable.servicezeitenStrukturiert?? && baseVariable.servicezeitenStrukturiert.tage??>
1501 <#list baseVariable.servicezeitenStrukturiert.tage?values as value>
1502 <#list value.paare?values as paare>
1503 <#if paare?? && paare?has_content>
1504 <#assign serviceZeitenEmpty = false />
1505 <#break>
1506 </#if>
1507 </#list>
1508 <#if !serviceZeitenEmpty>
1509 <#break>
1510 </#if>
1511 </#list>
1512 </#if>
1513
1514
1515 <#if !serviceZeitenEmpty>
1516 <table id="serviceTimeTable" class="table table-striped" style="width:100%;">
1517 <thead class="">
1518 <tr>
1519 <th style="width: calc(20%)" class="">Wochentag</th>
1520 <th style="width: calc(80% / 2)" class="">Servicezeitraum 1</th>
1521 <th style="width: calc(80% / 2)" class="">Servicezeitraum 2</th>
1522 </tr>
1523 </thead>
1524 <tbody>
1525 <#list baseVariable.servicezeitenStrukturiert.tage as tagName, tagZeiten>
1526 <#assign emptyTag = true />
1527 <#list tagZeiten.paare?values as tagZeitenPaar>
1528 <#if tagZeitenPaar?? && tagZeitenPaar?has_content && tagZeitenPaar != '-' >
1529 <#assign emptyTag = false />
1530 <#break>
1531 </#if>
1532 </#list>
1533 <#if emptyTag>
1534 <#else>
1535 <#if tagName??>
1536 <#assign
1537 tagNameFormated = tagName?substring(0, 1)?upper_case
1538 tagNameFormated = tagNameFormated + tagName?substring(1)?lower_case
1539 />
1540 <tr>
1541 <td>${tagNameFormated}</td>
1542 <#assign ersterEintraginSpalte = true />
1543 <#list tagZeiten.paare as key, value>
1544 <#if key == "VORMITTAGS">
1545 <#if value.getVon()?? && value.getBis()?has_content && value.getBis()?? && value.getBis()?has_content>
1546 <td class="">
1547 ${value.getVon()} bis ${value.getBis()} Uhr
1548 </td>
1549 <#else>
1550 <td class=""></td>
1551 </#if>
1552 </#if>
1553 <#if key == "NACHMITTAGS">
1554 <#if value.getVon()?? && value.getBis()?has_content && value.getBis()?? && value.getBis()?has_content>
1555 <td class="">
1556 ${value.getVon()} bis ${value.getBis()} Uhr
1557 </td>
1558 <#else>
1559 <td class=""></td>
1560 </#if>
1561 </#if>
1562 </#list>
1563 </tr>
1564 </#if>
1565 </#if>
1566 </#list>
1567 </tbody>
1568 </table>
1569 </#if>
1570</#macro>
1571
1572<#function createPhoneHref3 baseObject >
1573 <#return createNumberHref3(baseObject.telefonnummer,'tel') />
1574</#function>
1575<#function createFaxHref3 baseObject >
1576 <#return createNumberHref3(baseObject.faxnummer,'fax') />
1577</#function>
1578<#function createMailHref5 baseObject >
1579 <#return 'mailto:'+baseObject.email />
1580</#function>
1581<#function createMobilHref3 baseObject >
1582 <#return createNumberHref3(baseObject.mobil,'tel' ) />
1583</#function>
1584<#function createNumberHref3 baseObject prefix>
1585 <#assign
1586 phonenumber = baseObject?replace('-','')?replace(' ','')
1587 index = phonenumber?index_of('0')
1588 index = index + 1
1589 combinatedPhonenumber = prefix+":+49"+phonenumber?substring(index)
1590 />
1591 <#return combinatedPhonenumber />
1592</#function>
1593
1594<#function createContactList9 base listClass>
1595 <#assign
1596 listString = "<ul class='${listClass}' aria-label='Kontaktmöglichkeiten' style='list-style: none !important;padding: 0 !important;'>"
1597 />
1598 <#if base.telefonnummer??>
1599 <#assign listString = listString+
1600 "<li class='telefonnummer-li'>
1601 <p class='m-0'>Telefon:
1602 <a href='${createPhoneHref3(base)}' title='anrufen'>${base.telefonnummer} </a>
1603 </p>
1604 </li>"
1605 />
1606 </#if>
1607 <#if base.mobil??>
1608 <#assign listString = listString+
1609 "<li class='mobilnummer-li'>
1610 <p class='m-0'>Mobil:
1611 <a href='${createMobilHref3(base)}' title='anrufen'>${base.mobil} </a>
1612 </p>
1613 </li>"
1614 />
1615 </#if>
1616 <#if base.faxnummer??>
1617 <#assign listString = listString+
1618 "<li class='faxnummer-li'>
1619 <p class='m-0'>Fax:
1620 <a href='${createFaxHref3(base)}' title='Faxen'>${base.faxnummer} </a>
1621 </p>
1622 </li>"
1623 />
1624 </#if>
1625 <#if base.email??>
1626 <#assign listString = listString+
1627 "<li class='email-li'>
1628 <p class='m-0'>E-Mail:
1629 <a href='${createMailHref5(base)}' title='E-Mail schreiben'>${base.email}</a>
1630 </p>
1631 </li>"
1632 />
1633 </#if>
1634 <#assign listString = listString+"</ul>" />
1635 <#return listString />
1636</#function>
1637
1638<#function getFullFacilityName9 einrichtung spanClass>
1639 <#assign
1640 getFullFacilityNameCounter = 1
1641 einrichtungsname = ''
1642 />
1643 <#if einrichtung.breadcrumb?? && einrichtung.breadcrumb?has_content>
1644 <#list einrichtung.breadcrumb as i>
1645 <#if i.showAlways && i.name != einrichtung.name>
1646 <#assign
1647 einrichtungsname = einrichtungsname+' <span class="facility-name-level-'+getFullFacilityNameCounter+' '+spanClass+'">'+i.name+' </span>'
1648 getFullFacilityNameCounter = getFullFacilityNameCounter+1
1649 />
1650 </#if>
1651 </#list>
1652
1653 </#if>
1654
1655 <#if einrichtungsname == ''>
1656 <#assign einrichtungsname = '<span class="facility-name-level-1 '+spanClass+'">'+einrichtung.name+'</span>' />
1657 <#else>
1658 <#assign einrichtungsname = einrichtungsname+'<span class="facility-name-level-'+getFullFacilityNameCounter+' '+spanClass+'">'+einrichtung.name+' </span>' />
1659 </#if>
1660 <#return einrichtungsname />
1661</#function>
1662
1663<#function createAddressUL16 einrichtung listClass mitarbeiter>
1664 <#assign
1665 fullFacilityNameClass = listClass+'name'
1666 listString ="<ul aria-label='Adresse' class='address-list ${listClass}' style='list-style: none !important;padding: 0 !important;'>"
1667 listString = listString+
1668 "<li>
1669 ${getFullFacilityName9(einrichtung,fullFacilityNameClass)}
1670 </li>"
1671 listString = listString+
1672 "<li class='nameDerAdresse-li'>
1673 <span class='nameDerAdresse'>
1674 ${einrichtung.anschrift.name}
1675 </span>
1676 </li>"
1677 />
1678 <#if existsAndHasContent1(einrichtung.anschrift.strasse!'') || existsAndHasContent1(einrichtung.anschrift.hausnummer!'') >
1679 <#assign listString = listString+ "<li class='strasse-hausnummer-li'>" />
1680 <#if existsAndHasContent1(einrichtung.anschrift.strasse!'')>
1681 <#assign listString = listString+ "<span aria-label='Strasse' class='strasse'>${einrichtung.anschrift.strasse}</span> "/>
1682 </#if>
1683 <#if existsAndHasContent1(einrichtung.anschrift.hausnummer!'')>
1684 <#assign listString = listString+ "<span aria-label='Hausnummer' class='hausnummer'>${einrichtung.anschrift.hausnummer}</span> "/>
1685 </#if>
1686 <#assign listString = listString+ "</li>" />
1687 </#if>
1688 <#if existsAndHasContent1(einrichtung.anschrift.postleitzahl!'') || existsAndHasContent1(einrichtung.anschrift.ort!'')>
1689 <#assign listString = listString+ "<li class='postleitzahl-ort-li'>" />
1690 <#if existsAndHasContent1(einrichtung.anschrift.postleitzahl!'')>
1691 <#assign listString = listString+ "<span aria-label='Postleitzahl' class='postleitzahl'>${einrichtung.anschrift.postleitzahl}</span> "/>
1692 </#if>
1693 <#if existsAndHasContent1(einrichtung.anschrift.ort!'')>
1694 <#assign listString = listString+ "<span aria-label='Ort' class='ort'>${einrichtung.anschrift.ort}</span>" />
1695 </#if>
1696 <#assign listString = listString+ "</li>"/>
1697 </#if>
1698 <#if existsAndHasContent1(mitarbeiter!'')>
1699 <#if mitarbeiter.raum??>
1700 <#assign listString = listString+ "<li class='raum-li'>" />
1701 <#if einrichtung.anschrift.postleitzahl??>
1702 <#assign listString = listString+ "<span aria-label='Raum' class='raum'>Raum ${mitarbeiter.raum}</span> "/>
1703 </#if>
1704 <#assign listString = listString+ "</li>" />
1705 </#if>
1706 </#if>
1707
1708 <#if existsAndHasContent1(einrichtung.anschrift.postfach!'')>
1709 <#assign listString = listString+
1710 "<li class='mt-2 postfach-li'>
1711 <p class='m-0'><span class='postfach'>Postfach ${einrichtung.anschrift.getPostfach()}</span></p>
1712 <p class='m-0'>"
1713 />
1714
1715 <#if existsAndHasContent1(einrichtung.anschrift.postfachPostleitzahl!'')>
1716 <#assign listString = listString+ "<span aria-label='Postfach Postleitzahl' class='postleitzahl'>
1717 ${einrichtung.anschrift.postfachPostleitzahl}
1718 </span>"
1719 />
1720 </#if>
1721 <#if existsAndHasContent1(einrichtung.anschrift.postfachOrt!'')>
1722 <#assign listString = listString+ "<span aria-label='Postfach Ort' class='ort'>
1723 ${einrichtung.anschrift.postfachOrt}
1724 </span>"
1725 />
1726 </#if>
1727 <#assign listString = listString+ "</p></li>"/>
1728 </#if>
1729 <#if existsAndHasContent1(einrichtung.anschrift.zusatz!'')>
1730 <#assign listString = listString+
1731 "<li class='mt-2 adresszusatz-li'>
1732 <p class='m-0'>
1733 <span class='adresszusatz'>
1734 <strong>Adresszusatz: </strong>
1735 <br/>
1736 ${einrichtung.anschrift.getZusatz()}
1737 </span>
1738 </p></li>"
1739 />
1740 </#if>
1741 <#assign listString = listString+'</ul>'/>
1742 <#return listString />
1743</#function>
1744
1745<#macro kostenliste3>
1746 <#if existsAndHasContent1(dienstleistung.kostenmodul.beschreibung!'') || existsAndHasContent1(dienstleistung.kostenmodul.kosten!'')>
1747 <#if existsAndHasContent1(dienstleistung.kostenmodul.kosten!'')>
1748 <#assign showDescription = false />
1749 <#list dienstleistung.kostenmodul.kosten as kosten>
1750 <#if existsAndHasContent1(kosten.beschreibung!'')>
1751 <#assign showDescription = true />
1752 </#if>
1753 </#list>
1754 <table class="w-100">
1755 <thead>
1756 <tr>
1757 <th <#if showDescription> style="width:60%" <#else> style="width:80%" </#if>
1758 class="pl-0 pr-2 py-2">Name
1759 </th>
1760 <th class="p-2 d-none">Typ</th>
1761 <th <#if showDescription> style="width:15%" <#else> style="width:20%" </#if>
1762 class="p-2">Kosten</th>
1763 <#if showDescription>
1764 <th class="p-2" style="width:25%">Beschreibung</th>
1765 </#if>
1766 </tr>
1767 </thead>
1768 <tbody>
1769 <#list dienstleistung.kostenmodul.kosten as kosten>
1770 <tr>
1771 <td class="pl-0 pr-2 py-2">${kosten.name}</td>
1772 <td class="p-2 d-none">
1773 <#assign kostenTypeName = kosten.typ+'' />
1774 ${kostenTypeName?substring(0, 1)?upper_case}${kostenTypeName?substring(1)?lower_case}
1775 </td>
1776 <td class="p-2">
1777 <#if kosten.isKostenfrei()>
1778 kostenfrei
1779 <#elseif kosten.isKostenVariabel()>
1780 zwischen ${utils.formatCurrency(kosten.von)} und ${utils.formatCurrency(kosten.bis)} EUR
1781 <#else>
1782 ${utils.formatCurrency(kosten.von)} EUR
1783 </#if>
1784 </td>
1785 <#if showDescription>
1786 <td class="p-2"> <#if kosten.beschreibung??> ${kosten.beschreibung} </#if></td>
1787 </#if>
1788 </tr>
1789 </#list>
1790 </tbody>
1791 </table>
1792 </#if>
1793 ${dienstleistung.kostenmodul.beschreibung}
1794 </#if>
1795</#macro>
1796
1797<#macro openstreetmap52 headline lat lng>
1798 <#if (lat?has_content && lng?has_content) && (lat gt 0 && lng gt 0)>
1799 <hr>
1800 <h2>${headline}</h2>
1801 <div style="">
1802 <#assign
1803 url = 'https://www.openstreetmap.org'
1804 uri = '/export/embed.html?'
1805 delimiter = '%2C'
1806 box = 'bbox=' + (lng + 0.000911951065064) + delimiter + (lat + 0.00044345841716) + delimiter + (lng - 0.000911951065064) + delimiter + (lat - 0.00044345421122) + '&layer=mapnik&marker='+lat+delimiter+lng
1807 headline = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-extern-content-map-headline"))
1808 content = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-extern-content-map-content"))
1809 privacyTitle = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-extern-content-map-privacy-title"))
1810 privacyUrl = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-extern-content-map-privacy-url"))
1811 showButtonText = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-extern-content-map-show-button-title"))
1812 hideButtonText = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-extern-content-map-hide-button-title"))
1813 contentUrl = url+uri+box
1814 />
1815 <@externContentLoader9 headline content contentUrl privacyTitle privacyUrl showButtonText hideButtonText />
1816 <hr>
1817 </div>
1818 </#if>
1819</#macro>
1820
1821<#function collapseBefore20 title icon colappseId>
1822 <#if dienstleistung?has_content>
1823 <#assign shortName = 'dl'/>
1824 <#elseif einrichtung?has_content>
1825 <#assign shortName = 'fa'/>
1826 <#elseif mitarbeiter?has_content>
1827 <#assign shortName = 'mi'/>
1828 </#if>
1829
1830 <#if colappseId != ''>
1831 <#assign collapeId = colappseId?replace(' ','')?replace('\\.','')?replace('/','')/>
1832 <#else>
1833 <#assign collapeId = title?replace(' ','')?replace('\\.','')?replace('/','')/>
1834 </#if>
1835 <#return "<div class='card collapseCard' id='collapse-${shortName}-base-${collapeId}'>
1836 <div class='card-header'>
1837 <a class='card-link collapsed' data-toggle='collapse' href='#${shortName}-${collapeId}' aria-expanded='false'>
1838 ${icon}
1839 <h2>${title}</h2>
1840 </a>
1841 </div>
1842 <div id='${shortName}-${collapeId}' class='collapse'>
1843 <div class='card-body'> "/>
1844</#function>
1845
1846<#function collapseAfter>
1847 <#return "</div></div></div>"/>
1848</#function>
1849
1850<#function createDLnewLink8 css, linkClass, bevoreLinkTitle, icon, title, targetParam, descriptionParam, hrefParam, aditionalAttributsParams>
1851 <#if descriptionParam?? && descriptionParam?has_content>
1852 <#assign descriptionTitle = "title='${descriptionParam}'" />
1853 </#if>
1854 <#if targetParam == "blank">
1855 <#assign target = "_blank" />
1856 <#elseif targetParam == "self">
1857 <#assign target = "_self" />
1858 <#else>
1859 <#assign target = "_blank" />
1860 </#if>
1861 <#if hrefParam?has_content && hrefParam != ''>
1862 <#assign href= "href='${hrefParam}'" />
1863 <#else>
1864 <#assign href = '' />
1865 </#if>
1866
1867 <#if aditionalAttributsParams?? && aditionalAttributsParams?has_content>
1868 <#assign attributs = aditionalAttributsParams />
1869 <#else>
1870 <#assign attributs = '' />
1871 </#if>
1872 <#return "<a class='${linkClass}'
1873 style='${css}'
1874 target='${target}'
1875 ${descriptionTitle}
1876 ${href}
1877
1878 ${attributs}>
1879 <!--${aditionalAttributsParams} -->
1880 ${bevoreLinkTitle}
1881 ${icon}
1882 <span>${title}</span>
1883 </a>" />
1884</#function>
1885
1886<#function iconLegendListEntry5 show icon content>
1887 <#assign value = '' />
1888 <#if show>
1889 <#assign value = "<li class=''>
1890 <div class='row'>
1891 <div class='col-2' style='min-height: 35px;display: flex;justify-content: center;align-items: center;'>
1892 <p class='mb-0'>${icon}
1893 </div>
1894 <div class='col-10' style='min-height: 35px;display: flex;justify-content:left ;align-items: center;'>
1895 <p class='mb-0'>${content}
1896 </div>
1897 </div>
1898 </li>"
1899 />
1900 </#if>
1901 <#return value>
1902</#function>
1903
1904<#macro iconLegendList10 elementId destination fontColor persoLogo persoContent lockIcon lockContent moneyIcon moneyContent>
1905 <#if showDLLockIcon || showDLMoneyIcon || showDLPersoLogo>
1906 <div class="<#if showDLIcons??> sr-only </#if>" style="font-size: 0.7rem" id="${elementId}">
1907 <h3 class="mb-0 mt-3" style="color:${fontColor}; font-weight: 700 !important;font-size: small !important;">Icon Legende</h3>
1908 <ul style="font-size: 0.7rem; list-style: none !important; padding-left: 0 !important;" aria-label="Icon Legende">
1909 ${iconLegendListEntry5(showDLPersoLogo,persoLogo, persoContent)}
1910 ${iconLegendListEntry5(showDLLockIcon,lockIcon, lockContent)}
1911 ${iconLegendListEntry5(showDLMoneyIcon,moneyIcon, moneyContent)}
1912 </ul>
1913 <a class="sr-only sr-only-focusable" href="#${destination}" >Sprung zur den Onlinedienstleistungen</a>
1914 </div>
1915 </#if>
1916</#macro>
1917
1918<#macro collapseList6 collapseId headline htmlContent htmlClass showAs>
1919 <button
1920 data-toggle="collapse"
1921 data-target="#${collapseId}"
1922 class="${htmlClass} <#if showAs == "button"> btn btn-secondary </#if> w-100 text-left text-break">
1923 ${headline}
1924 </button>
1925 <div id="${collapseId}" class="collapse">
1926 ${htmlContent}
1927 </div>
1928</#macro>
1929
1930<#function card3 title content>
1931 <#return "<div class='card'>
1932 <div class='card-header'>
1933 <h2>${title}</h2>
1934 </div>
1935 <div class='card-body'>
1936 ${content}
1937 </div>
1938 </div>" />
1939</#function>
1940
1941<#function getLabelName4 dienstleistung pathName default >
1942<#-- <#if dienstleistung.labels?? && dienstleistung.labels?has_content>
1943 ${dienstleistung.labels?size}
1944 <#if dienstleistung.labels.getOrDefault(pathName, default)?? && dienstleistung.labels.getOrDefault(pathName, default)?has_content>
1945 <#return dienstleistung.labels.getOrDefault(pathName, default) />
1946 </#if>
1947 <#else>-->
1948 <#return default>
1949<#-- </#if>-->
1950</#function>
1951
1952<#function renderTextmodul12 modul labelPath defaultLabelName>
1953 <#assign
1954 value =""
1955 label = "${getLabelName4(dienstleistung, labelPath,defaultLabelName)}"
1956 elementId = labelPath?replace('.','')
1957 />
1958 <#if existsAndHasContent1(modul.inhalt!'')>
1959 <#if showCollapse>
1960 <#assign value = value + "${collapseBefore20(label,collapseIcon,elementId)}"/>
1961 </#if>
1962 <#assign value = value + "${content_item3(label,modul.inhalt ,showLines)}"/>
1963 <#if showCollapse>
1964 <#assign value = value + "${collapseAfter()}"/>
1965 </#if>
1966 </#if>
1967 <#return value/>
1968</#function>
1969
1970<#function content_item3 title content line>
1971 <#assign value = "<div>" />
1972 <#if line == true>
1973 <#assign value = value + "<hr>"/>
1974 </#if>
1975 <#if line == true>
1976 <#assign value = value + "<h2>${title}</h2>"/>
1977 </#if>
1978 <#assign value = value + "${content}</div>"/>
1979 <#return value />
1980</#function>
1981
1982<#function linklooper7 linkList>
1983 <#assign
1984 value = ""
1985 class = ""
1986 target = ""
1987 />
1988 <#if linkList??>
1989 <#list linkList.weiterfuehrenderLink as link>
1990 <#if linksAsButton>
1991 <#assign class = "btn btn-secondary w-100 text-left mt-2" />
1992 </#if>
1993 <#if link.neuesFenster>
1994 target='_blank'
1995 </#if>
1996 <#assign
1997 value = value + "<li>
1998 <a href='${link.uri}' title='${link.titel}' class='${class}' ${target}>${IconBeforeOnlineServices}${link.titel}</a>
1999 </li>"/>
2000 </#list>
2001 </#if>
2002 <#return value>
2003</#function>
2004
2005<#function linklooperUL1 linkList>
2006 <#assign
2007 value = ""
2008 class = ""
2009 target = ""
2010 />
2011 <#if linkList??>
2012 <#list linkList.weiterfuehrenderLink as link>
2013 <#if linksAsButton>
2014 <#assign class = "btn btn-secondary w-100 text-left" />
2015 </#if>
2016 <#if link.neuesFenster>
2017 target='_blank'
2018 </#if>
2019 <#assign
2020 value = value + "<li>
2021 <a href='${link.uri}' title='${link.titel}' class='${class}' ${target}>${link.titel}</a>
2022 </li>"/>
2023 </#list>
2024 </#if>
2025 <#return value>
2026</#function>
2027
2028<#macro onlineServices147 linkToIconsid destination dienstleistung linkCss linkclass beforeLinkTitle lockIcon persoIcon moneyIcon dlNeedsLogin dlNeedsEidLogin dlHasCosts dlAndHasCosts internetAdressen>
2029 <#assign
2030 iconBefore = getterUtil.getString(themeDisplay.getThemeSetting("03-vr-details-left-online-services-icon"))
2031 beforeLinkTitle = iconBefore
2032 />
2033
2034 <#if existsAndSizeGTZero(dienstleistung.extensions)
2035 || existsAndSizeGTZero(dienstleistung.formulare)
2036 || (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content)
2037 || existsAndSizeGTZero(dienstleistung.internetadressen)
2038 || existsAndSizeGTZero(dienstleistung.textmodul.formulare)>
2039 <#if showDLIcons && (showDLLockIcon || showDLMoneyIcon)>
2040 <a class="sr-only sr-only-focusable" href="#${destination}" id="${linkToIconsid}">Sprung zur Icon Legende.</a>
2041 </#if>
2042 <ul style="list-style: none !important; padding-left: 0 !important;">
2043 <#assign
2044 css = linkCss
2045 dlElementClass = linkClass
2046 />
2047 <#if existsAndSizeGTZero(dienstleistung.extensions)>
2048 <#assign userAuthLevel = utils.getAuthLevel(renderRequest)/>
2049 <#assign idCounter = 1 />
2050 <#list dienstleistung.extensions as formular>
2051
2052 <#assign title = formular.titel/>
2053 <#assign minAuthLevel = formular.minAuthLevel />
2054 <#if loginForAllExtensions>
2055 <#if minAuthLevel == 0 >
2056 <#assign minAuthLevel = 1 />
2057 </#if>
2058 </#if>
2059 <#if userAuthLevel gte minAuthLevel>
2060 <li class="mb-2">
2061 <p class="mb-0">
2062 <#assign description = "${formular.titel}."/>
2063 <#if formular.paymentSupported>
2064 <#assign description =description + dlHasCosts />
2065 </#if>
2066 <#assign target = 'self'/>
2067 <#assign icon = ''/>
2068 <#if formular.paymentSupported>
2069 <#assign showDLMoneyIcon = true />
2070 <#assign icon = icon+moneyIcon />
2071 </#if>
2072 <#assign href = formular.uri/>
2073 <#assign aditionalAttributs = ''/>
2074 ${createDLnewLink8(css dlElementClass iconBefore icon title target description href aditionalAttributs)}
2075 </p>
2076 </li>
2077 <#else>
2078 <#if minAuthLevel == 1>
2079 <#assign showDLLockIcon = true />
2080 <li class="mb-2">
2081 <p class="mb-0">
2082 <#assign description = "${formular.titel}. ${dlNeedsLogin}" />
2083 <#if formular.paymentSupported>
2084 <#assign description = description + dlAndHasCosts />
2085 </#if>
2086 <#assign target = 'self' />
2087 <#assign icon = lockIcon />
2088 <#if formular.paymentSupported >
2089 <#assign showDLMoneyIcon = true />
2090 <#assign icon =icon+moneyIcon />
2091 </#if>
2092 <#assign href = '' />
2093 <#assign aditionalAttributs = "${createLoginURL(formular.uri)}"/>
2094 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2095 </p>
2096 </li>
2097 <#elseif minAuthLevel == 2>
2098 <#assign showDLLockIcon = true />
2099 <li class="mb-2">
2100 <p class="mb-0">
2101 <#assign description = "${formular.titel}. ${dlNeedsLogin}"/>
2102 <#if formular.paymentSupported >
2103 <#assign description = description + dlAndHasCosts />
2104 </#if>
2105 <#assign target = 'self'/>
2106 <#assign icon =lockIcon/>
2107 <#if formular.paymentSupported>
2108 <#assign showDLMoneyIcon = true />
2109 <#assign icon =icon+moneyIcon/>
2110 </#if>
2111 <#assign href = '' />
2112 <#assign aditionalAttributs = "${createLoginURL(formular.uri)}"/>
2113 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2114 </p>
2115 </li>
2116 <#elseif minAuthLevel == 3>
2117 <#assign showDLPersoLogo = true />
2118 <li class="mb-2">
2119 <p class="mb-0">
2120 <#assign description = "${formular.titel}. ${dlNeedsEidLogin}"/>
2121 <#if formular.paymentSupported>
2122 <#assign description = description + dlAndHasCosts/>
2123 </#if>
2124 <#assign target = 'self'/>
2125
2126 <#assign persoIconId = 'PersoIcon'+idCounter/>
2127 <#assign icon = "${createPersoIcon13(persoIconId)}"/>
2128
2129 <#if formular.paymentSupported >
2130 <#assign showDLMoneyIcon = true />
2131 <#assign icon =icon+moneyIcon/>
2132 </#if>
2133 <#assign serviceName = dienstleistung.name />
2134 <#assign nameForDescrptionSite = serviceName?replace('\\&','')?replace(' ',' ')?replace('\\?','')?replace('\\#','')?replace('\\*','')?replace('\\+','')?replace('\\','')?replace('\\/','') />
2135
2136 <#assign href = "${eIDLoginURLLevel4}?dlname=${nameForDescrptionSite}&dlurl=${themeDisplay.getURLCurrent()}"/>
2137 <#assign aditionalAttributs = '' />
2138 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2139 </p>
2140 </li>
2141 </#if>
2142 </#if>
2143 <#assign idCounter = idCounter + 1 />
2144 </#list>
2145 </#if>
2146 <#if !utils.angemeldet && !dienstleistung.nutzbarAlsGast>
2147 <#if dienstleistung.formulare??>
2148 <#assign showDLLockIcon = true/>
2149 <#list dienstleistung.formulare as formular>
2150 <li class="mb-2">
2151 <p class="mb-0">
2152 <#assign title = formular.titel/>
2153 <#assign description = "${title}. ${dlNeedsLogin}"/>
2154 <#if formular.neuesFenster>
2155 <#assign target = "blank"/>
2156 <#else>
2157 <#assign target = 'self'/>
2158 </#if>
2159 <#assign icon =lockIcon/>
2160 <#assign href = ''/>
2161 <#assign aditionalAttributs = "${createLoginURL(formular.uri)}"/>
2162 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2163 </p>
2164 </li>
2165 </#list>
2166 </#if>
2167 <#if dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content>
2168 <#assign showDLLockIcon = true />
2169 <li class="mb-2">
2170 <p class="mb-0">
2171 <#assign title = 'Zum Kontaktformular' />
2172 <#assign description = "${title}. ${dlNeedsLogin}"/>
2173 <#assign target = ''/>
2174 <#assign icon =lockIcon/>
2175 <#assign href = ''/>
2176 <#assign aditionalAttributs = "${createLoginURL(dienstleistung.kontaktformularUrl)}"/>
2177 <!-- ${aditionalAttributs} -->
2178 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2179 </p>
2180 </li>
2181 </#if>
2182 <#if formularWithLogin>
2183 <!-- Linkformulare und Links-->
2184 <#if existsAndSizeGTZero(dienstleistung.textmodul.formulare)>
2185 <#list dienstleistung.textmodul.formulare.weiterfuehrenderLink as formular>
2186 <li class="mb-2">
2187 <p class="mb-0">
2188 <#if formular.titel != "" && !formular.titel??>
2189 <#assign title = formular.titel/>
2190 <#else>
2191 <#assign title = formular.uri/>
2192 </#if>
2193
2194 <#assign description = "${title}. ${dlNeedsLogin}"/>
2195 <#if formular.neuesFenster>
2196 <#assign target = 'blank'/>
2197 <#else>
2198 <#assign target = 'self'/>
2199 </#if>
2200 <#assign icon = lockIcon/>
2201 <#assign href = '' />
2202 <#assign aditionalAttributs = "${createLoginURL(formular.uri)}" />
2203 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2204 </p>
2205 </li>
2206 </#list>
2207 </#if>
2208 <#if internetAdressen == true && existsAndSizeGTZero(dienstleistung.internetadressen)>
2209 <#list dienstleistung.internetadressen as link>
2210 <li class="mb-2">
2211 <p class="mb-0">
2212 <#if link.titel != "" && link.titel??>
2213 <#assign title = link.titel/>
2214 <#else>
2215 <#assign title = link.uri/>
2216 </#if>
2217
2218 <#assign description = "${title}. ${dlNeedsLogin}"/>
2219 <#if link.neuesFenster>
2220 <#assign target = 'blank'/>
2221 <#else>
2222 <#assign target = 'self'/>
2223 </#if>
2224 <#assign icon =lockIcon/>
2225 <#assign href = ''/>
2226 <#assign aditionalAttributs = "${createLoginURL(link.uri)}"/>
2227 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2228 </p>
2229 </li>
2230 </#list>
2231 </#if>
2232 <!-- Linkformulare und Links ende-->
2233 </#if>
2234 <#else>
2235 <#if existsAndSizeGTZero(dienstleistung.formulare)>
2236 <#list dienstleistung.formulare as formular>
2237 <li class="mb-2">
2238 <p class="mb-0">
2239 <#assign title = formular.titel/>
2240 <#assign description = "${title}. ${dlNeedsLogin}"/>
2241 <#if formular.neuesFenster>
2242 <#assign target = 'blank'/>
2243 <#else>
2244 <#assign target = 'self'/>
2245 </#if>
2246 <#assign icon =''/>
2247 <#assign href = formular.uri/>
2248 <#assign aditionalAttributs = ''/>
2249 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2250 </p>
2251 </li>
2252 </#list>
2253 </#if>
2254 <#if dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content>
2255 <li class="mb-2">
2256 <p class="mb-0">
2257 <#assign title = 'Zum Kontaktformular'/>
2258 <#assign description = title/>
2259 <#assign target = ''/>
2260 <#assign icon = ''/>
2261 <#assign href = dienstleistung.kontaktformularUrl/>
2262 <#assign aditionalAttributs = '' />
2263 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2264 </p>
2265 </li>
2266 </#if>
2267 </#if>
2268 <#if formularWithLogin == false || utils.angemeldet || dienstleistung.nutzbarAlsGast>
2269 <#if existsAndSizeGTZero(dienstleistung.textmodul.formulare)>
2270 <#list dienstleistung.textmodul.formulare.weiterfuehrenderLink as formular >
2271 <li class="mb-2">
2272 <p class="mb-0">
2273
2274 <#if formular.titel != "" && formular.titel??>
2275 <#assign title = formular.titel />
2276 <#else>
2277 <#assign title = formular.uri />
2278 </#if>
2279
2280 <#assign description = title />
2281 <#if formular.neuesFenster >
2282 <#assign target = 'blank'/>
2283 <#else>
2284 <#assign target = 'self'/>
2285 </#if>
2286 <#assign icon ='' />
2287 <#assign href = formular.uri/>
2288 <#assign aditionalAttributs = '' />
2289 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2290 </p>
2291 </li>
2292 </#list>
2293 </#if>
2294 <#if internetAdressen == true && existsAndSizeGTZero(dienstleistung.internetadressen)>
2295 <#list dienstleistung.internetadressen as link>
2296 <li class="mb-2">
2297 <p class="mb-0">
2298 <#if link.titel != "" && link.titel??>
2299 <#assign title = link.titel/>
2300 <#else>
2301 <#assign title = link.uri/>
2302 </#if>
2303
2304 <#assign description = title />
2305 <#if link.neuesFenster>
2306 <#assign target = 'blank'/>
2307 <#else>
2308 <#assign target = 'self'/>
2309 </#if>
2310 <#assign icon =''/>
2311 <#assign href = link.uri/>
2312 <#assign aditionalAttributs = '' />
2313 ${createDLnewLink8(css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs)}
2314 </p>
2315 </li>
2316 </#list>
2317 </#if>
2318 </#if>
2319 </ul>
2320 </#if>
2321</#macro>
2322
2323
2324<#function existsAndSizeGTZero element>
2325 <#if element?? && element?size gt 0>
2326 <#return true />
2327 <#else>
2328 <#return false />
2329 </#if>
2330</#function>
2331
2332<#function existsAndHasContent1 element>
2333 <#if element?? && element?has_content>
2334 <#return true />
2335 <#else>
2336 <#return false />
2337 </#if>
2338</#function>