Fehler bei der Verarbeitung der Vorlage.
Denied resolving class org.apache.catalina.core.ApplicationHttpRequest by org.apache
1#set($utils = $vr.utils2017)
2#set($dienstleistungsuebersicht = $vr.bis2017.dienstleistungsuebersicht)
3#set($kachelDetailText = $getterUtil.getString($themeDisplay.getThemeSetting("Kachel-Detail-Text")))
4
5
6
7#macro(createLeave11 $jsObject $root)
8 #set($leaves = $root.properties.get('leaves'))
9 #if ($leaves)
10 #set($counter = $counter + 1)
11 #foreach ($leaf in $leaves)
12 ${jsObject}.leaves['$leaf.id'] = {
13 id: ${leaf.id},
14 name: '${leaf.name.replace('&', ' und')}',
15 url: '$utils.getDienstleistungUrl($leaf.id)'
16 }
17 #end
18 #end
19#end
20
21
22#macro(createChildren19 $jsObject $root)
23 #if ($root.children)
24 #set($jsObject = "['${root.name.replace('&', ' und')}'].child")
25 #foreach ($child in $root.children)
26 #set($jsObject = "['${root.name.replace('&', ' und')}'].child['${child.name.replace('&', ' und')}']")
27 tree${jsObject} = {
28 id:'${child.id}',
29 name:'${child.name.replace('&', ' und')}',
30 clearName:'${child.name.replace('&', ' und')}',
31 level: 1,
32 leaves:{},
33 child: {}
34 }
35 #createLeave11("tree${jsObject}", $child)
36 #createChildren19("tree${jsObject}", $child)
37 #end
38 #end
39#end
40
41
42<script>
43 let tree = {};
44 #if($dienstleistungsuebersicht.tree)
45 #foreach ($root in $dienstleistungsuebersicht.tree)
46 #if($root.name.contains('.'))
47 #set ($index = $root.name.indexOf('.'))
48 #set ($imageId= $root.name.substring(0, $index))
49 #set ($index = $index + 1)
50 #set ($name = $root.name.substring($index))
51 #else
52 #set ($imageId= '000')
53 #set ($name = $root.name)
54 #end
55
56 #set($jsObject = "['${root.name.replace('&', ' und')}']")
57 tree${jsObject} = {
58 id:'${root.id}',
59 name:'${root.name.replace('&', ' und')}',
60 clearName:'${name.replace('&', ' und')}',
61 image:'$imageId',
62 level: 1,
63 leaves:{},
64 child: {}
65 }
66 #createLeave11("tree${jsObject}", $root)
67 #createChildren19("tree${jsObject}", $root)
68 #end
69 #end
70 #set($serviceGroupFound = false)
71 #foreach ($root in $dienstleistungsuebersicht.tree)
72 #if($root.name.replace("&", " und") == $request.getParameter("bereich").replace("&", " und"))
73 #set($serviceGroupFound = true)
74 #break
75 #end
76 #end
77 #if($serviceGroupFound == false)
78 $(document).ready(function () {
79 for (const [key, value] of Object.entries(tree)) {
80 let kachelId = value.name.replaceAll(" ", "");
81 let itemList = '';
82 let moreServcie ='';
83 if(Object.keys(value.leaves).length > 0){
84 moreServcie ='<a href="?bereich='+value.name+'" class="weitereDienstleistungen">Weitere Dienstleistungen</a>';
85 }
86 let children = value.child;
87 if(Object.keys(children).length > 0){
88 for (const [childKey, childValue] of Object.entries(children)) {
89 if(childValue.name.includes('Häufig genutzte Dienstleistungen')){
90 for (const [childLeavesKey, childLeavesValue] of Object.entries(childValue.leaves)) {
91 itemList = itemList + '<li><a href="'+childLeavesValue.url+'">'+childLeavesValue.name+'</a></li>';
92 }
93 }
94 }
95 }
96
97 $('#kachel-list').append('<li id="'+kachelId+'">' +
98 '<div class="service-title-wrapper">'+
99 '<h4 style="width:70%" class="branch pull-left">'+value.clearName+'</h4>'+
100 '<i class="Headericon"><img src="/o/stadtportal-paderborn-theme/images/'+value.image+'-kachel-icon.png" alt=""></i>'+
101 '<br style="clear: both">'+
102 '</div>'+
103 '<ul class="level-(2) leaf list-unstyled kachel-item-list" style="display: none;">'+
104 itemList+
105 '</ul>'+
106 '<ul class="level-2 list-unstyled" style="display: none;"> </ul>'+
107 moreServcie+
108 '</li>');
109 }
110 });
111 #else
112
113 function createServiceEntriesForOneSection(leaves, targetNode) {
114 if(Object.keys(leaves).length > 0) {
115 for (const [leaveKey, leaveValue] of Object.entries(leaves)) {
116 $(targetNode).append('<li><a href="'+leaveValue.url+'">' + leaveValue.name + '</a></li>')
117 }
118 }
119 }
120 function createOnlineAndAppointmentSections(children) {
121 let list = $('#categoryList');
122 if(Object.keys(children).length > 0){
123 for (const [childKey, childValue] of Object.entries(children)) {
124 if(childValue.name.includes('- online')){
125 $(list).prepend('<li id="onlineService"><div class="service-title-wrapper"><h4 class="branch">Online Dienstleitungen <span class="flag flag-online">Online</span></h4></div><ul class="level-(2) leaf list-unstyled" id="onlineServiceList"></ul></li>');
126 createServiceEntriesForOneSection(childValue.leaves,'#onlineServiceList');
127 }else if(childValue.name.includes('- termin')){
128 if($('#categoryList #onlineService').length > 0){
129 $('<li id="appointmentService"><div class="service-title-wrapper"><h4 class="branch">Dienstleistungen mit Terminbuchung <span class="flag flag-termin">Terminvereinbarung</span></h4></div><ul class="level-(2) leaf list-unstyled" id="appointmentServiceList"></ul></li>').insertAfter('#onlineService');
130 }else{
131 $(list).prepend('<li id="appointmentService"><div class="service-title-wrapper"><h4 class="branch">Dienstleistungen mit Terminbuchung</h4></div><ul class="level-(2) leaf list-unstyled" id="appointmentServiceList"></ul></li>');
132 }
133 createServiceEntriesForOneSection(childValue.leaves,'#appointmentServiceList');
134 }
135 }
136 }
137 }
138 function createMostUsedServiceSection(children) {
139 let mostUsedService = $('#mostUsedService');
140 $(mostUsedService).append('<div class="col-12 mb-3"><p>Keine Dienstleistungen hinterlegt</p></div>')
141 if(Object.keys(children).length > 0){
142 $('.serviceBoxDetailRight .card.border-secondary.d-none').removeClass('d-none');
143 for (const [childKey, childValue] of Object.entries(children)) {
144 if(childValue.name.includes('Häufig genutzte Dienstleistungen')){
145 $(mostUsedService).empty();
146 if(Object.keys(childValue.leaves).length > 0) {
147 for (const [childLeavesKey, childLeavesValue] of Object.entries(childValue.leaves)) {
148 $(mostUsedService).append('<div class="col-12 col-lg-6 mb-3"><a href="'+childLeavesValue.url+'">' + childLeavesValue.name + '</a></div>')
149 }
150 }
151 }
152 }
153 }
154 }
155 let serviceName = '$request.getParameter("bereich").replace("&", " und")';
156 $(document).ready(function () {
157 if(tree[serviceName] !== undefined && !tree[serviceName].empty){
158 let leaves = tree[serviceName].leaves;
159 let children = tree[serviceName].child;
160 createServiceEntriesForOneSection(leaves,'#serviceList');
161 createOnlineAndAppointmentSections(children);
162 createMostUsedServiceSection(children)
163 }
164 });
165 #end
166</script>
167
168#if($request.getParameter("bereich") && $serviceGroupFound)
169 #set ($index = $request.getParameter("bereich").indexOf('.'))
170 #set ($index = $index + 1)
171 #set ($name = $request.getParameter("bereich").substring($index))
172<div id="serviceDetailList" class="px-3 mt-3">
173 <div class="text-right user-tool-asset-addon-entries"></div>
174 <div class="clearfix journal-content-article">
175 <article class="col-xs-12 col-lg-12 content-left">
176 <header>
177 <h2 style="color:black;" class="article-headline smallheader pt-0">${name}</h2>
178 </header>
179 <div class="row my-3">
180 <div class="col-md-12 col-lg-6 mb-3 serviceBoxDetailLeft">
181 <div>
182 <p>
183 ${kachelDetailText.replace('[name]',${name})}
184 </p>
185 </div>
186 </div>
187 <div class="col-md-12 col-lg-6 serviceBoxDetailRight">
188 <div class="card border-secondary rounded-0 d-none">
189 <div class="card-header bg-white">
190 <h3 class="font-weight-bold" style="color:#608119">Häufig genutzte Dienstleistungen</h3>
191 </div>
192 <div class="row card-body text-secondary haeufig-genutzte-dienstleistungen" id="mostUsedService"></div>
193 </div>
194 </div>
195 </div>
196 </article>
197 </div>
198 <div class="content-metadata-asset-addon-entries">
199 </div>
200 <div class="row dienstleistung-kategorie">
201 <div class="col-12">
202 <h3 style="color:black;" class="sr-only">Alle Dienstleistungen der Kategorie</h3>
203 <ul class="level-1 list-unstyled" id="categoryList">
204 <li>
205 <div class="service-title-wrapper">
206 <h4 class="branch">Weitere Dienstleistungen (Informationen)</h4>
207 </div>
208 <ul class="level-(2) leaf list-unstyled" id="serviceList"></ul>
209 </li>
210 </ul>
211 </div>
212 </div>
213</div>
214#else
215<div id="boxes">
216 <div class="text-right user-tool-asset-addon-entries"></div>
217 <div class="clearfix journal-content-article" data-analytics-asset-id="46696" data-analytics-asset-title="Dienstleistungen" data-analytics-asset-type="web-content">
218 <article class="col-xs-12 col-lg-12 content-left">
219 <header>
220 <h2 style="color:black;" class="article-headline smallheader">
221 Dienstleistungen</h2>
222 </header>
223 <div class="col-md-12 col-lg-7 intro sr-only">
224 <p>Hier finden Sie unser Angebot sowie
225 alle wichtigen Informationen zu den
226 Dienstleistungen</p>
227 </div>
228 </article>
229 </div>
230 <div class="content-metadata-asset-addon-entries">
231 </div>
232 <div class="kacheln mt-0">
233 <div class="portlet-content-container">
234 <div class="portlet-body">
235 <ul class="level-1 list-unstyled" id="kachel-list">
236
237 </ul>
238 </div>
239 </div>
240 </div>
241</div>
242#end
243
244
245
246#if ($dienstleistungsuebersicht.tree.empty)
247<div class="alert alert-warning">Keine Dienstleistungenskategorien gefunden.</div>
248#end