Publications Office of the EU
EU Open Data Days 2021: Programme - EU Open Data Days
DisplayCustomHeader
Homepage title banner

EU Open Data Days 23-25 November 2021

EU Open Data Days 23-25 November 2021

Objavitelj imovine
Došlo je do pogreške prilikom obrade predloška.
The following has evaluated to null or missing:
==> assetRenderer.getArticle  [in template "10157#10197#8348058" at line 11, column 28]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign article = assetRenderer.getAr...  [in template "10157#10197#8348058" at line 11, column 9]
----
1<#assign liferay_ui = PortletJspTagLibs["/META-INF/liferay-ui.tld"] />  
2<#assign liferay_portlet = PortalJspTagLibs["/META-INF/liferay-portlet-ext.tld"] /> 
3 
4<#assign columnsCounter = 1 /> 
5<#assign displayItemsInColumns = 1 /> 
6<#list entries as entry> 
7	<#assign entry = entry /> 
8	<#assign assetRenderer = entry.getAssetRenderer() /> 
9	<#assign className = assetRenderer.getClassName() > 
10 
11	<#assign article = assetRenderer.getArticle() /> 
12	<#assign articleId = article.getArticleId() /> 
13	<#assign groupId = article.getGroupId() /> 
14 
15	<#assign docXml = saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContent()) /> 
16 
17	<#assign date = docXml.valueOf("//dynamic-element[@name='Date1w4g']/dynamic-content/text()") /> 
18 
19	<#if entry_index == 0 > 
20		<#assign dateTraker = date /> 
21	</#if> 
22	<#assign order = docXml.valueOf("//dynamic-element[@name='Order']/dynamic-content/text()") /> 
23    <#if order?has_content > 
24    	<#if dateTraker != date >   
25    		<#assign dateTraker = date /> 
26    		<#assign columnsCounter = columnsCounter+1 /> 
27    	</#if> 
28	</#if> 
29</#list> 
30 
31<div class="row op-agenda">        
32		  			 
33		<#list entries as entry> 
34				<#assign entry = entry /> 
35				<#assign assetRenderer = entry.getAssetRenderer() /> 
36				<#assign className = assetRenderer.getClassName() > 
37				 
38				<#assign article = assetRenderer.getArticle() /> 
39				<#assign articleId = article.getArticleId() /> 
40				<#assign groupId = article.getGroupId() /> 
41				 
42				<#assign defaultLocale = "en_GB" /> 
43 
44				<#assign docXml = saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContent()) /> 
45				 
46				<#assign order = docXml.valueOf("//dynamic-element[@name='Order']/dynamic-content/text()") /> 
47                <#if order?has_content > 
48 
49    				<#assign title = docXml.valueOf("//dynamic-element[@name='TitleOfTheSession']/dynamic-content/text()") /> 
50    				<#assign subtitle = docXml.valueOf("//dynamic-element[@name='Subtitle']/dynamic-content/text()") /> 
51    				<#assign ShortDescription = docXml.valueOf("//dynamic-element[@name='ShortDescription']/dynamic-content/text()") /> 
52    				<#assign name = docXml.valueOf("//dynamic-element[@name='NameOfSpeaker']/dynamic-content[@language-id='"+defaultLocale+"']/text()") /> 
53    				<#assign time = docXml.valueOf("//dynamic-element[@name='Time']/dynamic-content/text()") /> 
54    				<#assign tags = docXml.valueOf("//dynamic-element[@name='Tags']/dynamic-content/text()") /> 
55    				<#assign tagsBgColor = docXml.valueOf("//dynamic-element[@name='TagsBgColor']/dynamic-content/text()") /> 
56    				<#assign tagsTextColor = docXml.valueOf("//dynamic-element[@name='TagsTextColor']/dynamic-content/text()") /> 
57    				<#assign join = docXml.valueOf("//dynamic-element[@name='Join']/dynamic-content/text()") /> 
58    				<#assign date = docXml.valueOf("//dynamic-element[@name='Date1w4g']/dynamic-content/text()") /> 
59    				 
60    				<#assign photoSrc = docXml.valueOf("//dynamic-element[@name='PictureOfTheSpeaker']/dynamic-content[@language-id='"+defaultLocale+"']/text()") /> 
61    				<#assign jsonPhotoSrc = jsonFactoryUtil.createJSONObject(photoSrc)> 
62    				<#if photoSrc != "" > 
63    				    <#assign photo = "/documents/"+ jsonPhotoSrc.groupId +"/" +jsonPhotoSrc.fileEntryId +"/"+ jsonPhotoSrc.name +"/"+jsonPhotoSrc.uuid > 
64    				</#if> 
65    					 
66    				<#if entry_index == 0 > 
67    					<#assign dateTraker = date /> 
68    				</#if> 
69    				<#if displayItemsInColumns == 1 && (dateTraker != date && entry_index != 0) >   
70    					</div></div> 
71    				</#if> 
72    				<#if displayItemsInColumns == 1 && (dateTraker != date || entry_index == 0) > 
73    					<div class="col-md-${12/columnsCounter} col-sm-12 agenda-column"> 
74    					   <div class="agendaBoxBorder"> 
75    						<div class="agenda-column-header"> 
76    						    <#assign dateY = date?datetime("yyyy-MM-dd")> 
77    	                        <#assign dateY = dateY?date /> 
78    							<h2>${dateY?string["dd MMMM yyyy"]} </h2> 
79    							<h3>${subtitle}<h3> 
80    						</div> 
81    				</#if> 
82    				 
83    				<div class="col-md-12 p-0 agenda-item order-${order}-t"> 
84    					<div class="col-12 tags"> 
85    						<#list tags?split(";") as tag> 
86    							<button  
87    							    style="border: unset; color: ${tagsTextColor}; background: ${tagsBgColor};" 
88    								class="btn btn-sm btn-default"  
89    								type="button"> 
90    								<span class="lfr-btn-label">${tag}</span> 
91    							</button> 
92    						</#list> 
93    					</div> 
94    					<div class="col-12 time"> 
95    						${time} 
96    					</div>	 
97    					<#if name != "" > 
98    					<div class="col-12 title-agenda"> 
99    						<h2>${title}<h2> 
100    					</div> 
101    					<div class="col-12 photo-name"> 
102    						<div class="col-3 photo"> 
103    							<img src="<#if photoSrc != ''>${photo}</#if>" alt=""/> 
104    						</div> 
105    						<div class="col-9 name"> 
106    							${name} 
107    						</div> 
108    						<div class="col-9 shortdescription"> 
109    							${ShortDescription} 
110    						</div> 
111    					</div> 
112    					</#if> 
113    					<div class="col-12 join"> 
114    						${join} 
115    					</div> 
116    				</div> 
117    				<#if displayItemsInColumns == 1 && dateTraker != date >   
118    					<#assign dateTraker = date /> 
119    				</#if> 
120				</#if> 
121		</#list> 
122	<#if displayItemsInColumns == 1 >   
123	</div> 
124		</div> 
125	</#if> 
126</div> 
127 
128<style> 
129.op-agenda .agenda-column-header{ 
130	background: #003399; 
131    color: #FFFFFF; 
132    padding: 8px 10px 8px 10px; 
133
134.op-agenda .agenda-column-header h2{ 
135	margin-bottom: 0; 
136	margin-top: 0; 
137	font-size: 16px; 
138	color: #FFFFFF; 
139    font-weight: bold; 
140    line-height: 22px; 
141
142.op-agenda .agenda-column-header h3{ 
143	margin-bottom: 0; 
144	margin-top: 0; 
145	font-size: 14px; 
146    font-weight: bold; 
147    color: #FFFFFF; 
148    line-height: 19px; 
149
150 
151.op-agenda .agenda-item .tags { 
152    padding: 23px 12px 10px 12px; 
153
154/* .op-agenda .agenda-item{ 
155	border-bottom: 1px solid grey; 
156
157.op-agenda .agenda-item > div{ 
158	padding-bottom: 15px; 
159}*/ 
160 
161.op-agenda .agenda-item .btn { 
162    background: #003399; 
163    justify-content: center; 
164    align-items: center; 
165    padding: 5px 8px 4px; 
166    border-radius: unset; 
167    font-style: normal; 
168    font-weight: bold; 
169    font-size: 12px; 
170    text-transform: uppercase; 
171    color: #ffffff; 
172    line-height: 18px; 
173
174 
175.op-agenda .agenda-item .title-agenda,  
176.op-agenda .agenda-item .title-agenda a{ 
177    margin: 0; 
178    padding-top: 10px; 
179    font-style: normal; 
180    font-weight: bold; 
181    text-align: left; 
182    margin-block-start: unset; 
183    font-size: 14px; 
184    padding-left: 0px; 
185    margin-left: 0px; 
186    line-height: 20px; 
187    color: #0045AD; 
188
189.title-agenda h2 { 
190    margin-block-start: 0; 
191    margin-block-end: 0; 
192    margin-inline-start: 0px; 
193    font-style: normal; 
194    font-weight: bold; 
195    text-align: left; 
196    font-size: 14px; 
197    padding-left: 12px; 
198    margin-left: 0px; 
199    line-height: 20px; 
200    color: #0045AD; 
201    margin-inline-end: 0px; 
202
203 
204.op-agenda .agenda-item .photo{ 
205    width: 60px; 
206    height: 60px; 
207    overflow: hidden; 
208    border-radius: 50%; 
209    float: left; 
210    margin: 5px 10px 5px 0; 
211
212.op-agenda .agenda-item .photo img{ 
213    height: 100%; 
214    -webkit-transform: translateX(-50%); 
215    transform: translateX(-50%); 
216    margin-left: 50%; 
217    transition: all ease-in-out 0.3s; 
218
219.op-agenda .agenda-item .name{ 
220    margin-left: 60px; 
221	margin-bottom: 10px; 
222    padding-left: 30px; 
223	color: #000000; 
224    font-style: normal; 
225    font-weight: normal; 
226    font-size: 13px; 
227    line-height: 14px; 
228   /* background: url(https://op.europa.eu/documents/10184/8176908/micro.svg/3c02d9b4-1aad-41a4-fdc6-94bf7a44ac78?t=1619144699251) no-repeat; */ 
229
230.op-agenda .agenda-item .shortdescription { 
231    margin-left: 60px; 
232    padding-left: 30px; 
233	font-size: 12px; 
234	line-height: 13px; 
235    color: #6F6E6E; 
236
237.col-12.photo-name { 
238    padding-left: 12px; 
239    float: left; 
240
241.agenda-item .join .btn { 
242    background: #4B72D6; 
243	font-style: normal; 
244	font-weight: bold; 
245	font-size: 12px; 
246	line-height: 18px; 
247	color: #FFFFFF; 
248
249.agenda-item .join .btn:hover { 
250    background: #0045AD; 
251    text-decoration: unset; 
252
253 
254.agenda-column .agendaBoxBorder{ 
255    border-left: 1px solid #003399; 
256    border-right: 1px solid #003399; 
257    border-bottom: 1px solid #003399; 
258    margin-left: -1px; 
259    margin-right: -1px; 
260
261 
262.col-md-12.p-0.agenda-item:not(:last-child) { 
263    margin-bottom: 48px !important; 
264
265 
266.op-agenda .agenda-item .time{ 
267    padding-left: 35px; 
268    padding-top: 0px; 
269    background: url(https://op.europa.eu/documents/10197/0/timeIcon.svg/0596dfad-0e84-cbc1-6158-601dbc783580?t=1625660957582) no-repeat 12px top; 
270	font-style: normal; 
271    font-weight: bold; 
272    font-size: 12px; 
273    line-height: 18px; 
274    color: #000000; 
275
276.op-agenda .agenda-item .join{ 
277	text-align: left; 
278
279.op-agenda .join .btn span{ 
280	width: 16px; 
281	height: 16px; 
282	position: absolute; 
283	display: block; 
284	left:10px; 
285
286.op-agenda .join .offset-3 a{ 
287    padding-left: 36px !important; 
288	padding-right: 10px !important; 
289    position: relative; 
290
291.op-agenda .join .btn-slides span{ 
292	background: url("data:image/svg+xml,%3Csvg class='bi bi-download' fill='%23fff' height='16' viewbox='0 0 16 16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z'%3E%3C/path%3E%3Cpath d='M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z'%3E%3C/path%3E%3C/svg%3E") left center no-repeat; 
293
294.op-agenda .join .btn-replay span{ 
295	background: url("data:image/svg+xml,%3Csvg class='bi bi-play' fill='%23fff' height='16' viewbox='0 0 16 16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.804 8 5 4.633v6.734L10.804 8zm.792-.696a.802.802 0 0 1 0 1.392l-6.363 3.692C4.713 12.69 4 12.345 4 11.692V4.308c0-.653.713-.998 1.233-.696l6.363 3.692z'%3E%3C/path%3E%3C/svg%3E") left center no-repeat; 
296
297</style>