D-HYDRO Gebruikersdag - Rivier, kust en zee
Contentverzamelaar
Er trad een fout op tijdens de verwerking van de sjabloon.
Java method "nl.deltares.portal.utils.impl.DsdParserUtilsImpl.getRegistration(long, String)" threw an exception when invoked on nl.deltares.portal.utils.impl.DsdParserUtilsImpl object "nl.deltares.portal.utils.impl.DsdParserUtilsImpl@7fa6da27"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign registration = dsdParserUtils... [in template "3948845#3948893#SESSION-1.0.1" at line 31, column 1] ----
1<style xmlns="http://www.w3.org/1999/html">
2 .videoThumbnail {
3 width: 250px;
4 border: 1px solid grey;
5 }
6
7 .icon-film {
8 line-height: 72px;
9 padding: 21px;
10 border: 1px solid grey;
11 }
12
13 .presentation {
14 margin-bottom: 24px;
15 }
16
17 .presentation_title {
18 display: inline-block;
19 min-width: 50%;
20 vertical-align: middle;
21 max-width: calc(100% - 300px);
22 }
23
24</style>
25
26<#assign dsdParserUtils = serviceLocator.findService("nl.deltares.portal.utils.DsdParserUtils") />
27<#assign dsdSessionUtils = serviceLocator.findService("nl.deltares.portal.utils.DsdSessionUtils") />
28<#assign dsdJournalArticleUtils = serviceLocator.findService("nl.deltares.portal.utils.DsdJournalArticleUtils") />
29<#assign articleId = .vars['reserved-article-id'].getData() />
30<#assign urltitle=.vars['reserved-article-url-title'].data />
31<#assign registration = dsdParserUtils.getRegistration(groupId,articleId) />
32<#assign displayContext = dsdParserUtils.getDisplayContextInstance(articleId, themeDisplay) />
33<#assign timeZoneId = registration.getTimeZoneId() />
34<#assign timeZone = timeZoneUtil.getTimeZone(timeZoneId) />
35<#assign room = registration.getRoom() />
36<#if registration.isEventInPast() >
37 <#assign isEventPast = "past-event"/>
38<#else>
39 <#assign isEventPast = "upcoming-event"/>
40</#if>
41<#assign typeMap = dsdJournalArticleUtils.getStructureFieldOptions(groupId,"SESSION","registrationType", registration.getLocale()) />
42<#if typeMap?? >
43 <#assign typeDisplayName = typeMap[registration.getType()] />
44<#else>
45 <#assign typeDisplayName = registration.getType() />
46</#if>
47<#assign calDescription = "">
48
49<#assign price = registration.getPrice() />
50<#assign vat = registration.getVAT() />
51<#assign registrations = dsdSessionUtils.getRegistrationCount(registration) />
52<#assign available = registration.getCapacity() - registrations />
53<#assign cancellationExceeded = registration.isCancellationPeriodExceeded() />
54<div class="c-sessions page">
55 <div class="c-sessions__item ${isEventPast}">
56 <div class="clearfix">
57
58 <div class="data-section">
59 <div class="c-sessions__item__date">
60 <span>${dateUtil.getDate(registration.getStartTime(), "dd", locale, timeZone)}</span>
61 ${dateUtil.getDate(registration.getStartTime(), "MMM", locale, timeZone)}
62 </div>
63 <h3 class="c-sessions__item__title h1">${registration.getTitle()}</h3>
64
65 <div class="media-section">
66 <img class="c-sessions__item__image" src="${displayContext.getSmallImageURL()}" alt="${registration.getTitle()}" style="max-width:400px;max-height:400px;"/>
67 </div>
68 <#assign calDescription += (registration.getTitle() + "<br/>") />
69 <#if !registration.isOpen() || registration.isEventInPast() >
70 <b>${languageUtil.get(locale, "dsd.theme.session.closed")}</b>
71 </#if>
72 <p class="c-sessions__item__time-date-place">
73 <#if registration.isMultiDayEvent() >
74 <#if registration.isDaily() >
75 <#assign dateString = dateUtil.getDate(registration.getStartTime(), "dd MMM yyyy", locale, timeZone)
76 + " - " + dateUtil.getDate(registration.getEndTime(), "dd MMM yyyy", locale, timeZone) />
77 <#assign timeString = displayContext.getStartTime() + " - " + displayContext.getEndTime() + " (" + timeZoneId + ")" />
78 <span class="c-sessions__item__time-date-place__date">
79 ${dateString}
80 </span>
81 <span class="c-sessions__item__time-date-place__time">
82 ${timeString}
83 </span>
84 <#else>
85 <#assign periods = registration.getStartAndEndTimesPerDay() />
86 <#list periods as period >
87 <#assign dateString = dateUtil.getDate(period.getStartDate(), "dd MMM yyyy", locale, timeZone) />
88 <#assign timeString = dateUtil.getDate(registration.getStartTime(), "HH:mm", locale, timeZone)
89 + " - " + dateUtil.getDate(registration.getEndTime(), "HH:mm", locale, timeZone)
90 + " (" + timeZoneId + ")" />
91 <span class="c-sessions__item__time-date-place__date">
92 ${dateString}
93 </span>
94 <span class="c-sessions__item__time-date-place__time">
95 ${timeString}
96 </span>
97 </#list>
98 </#if>
99 <#else>
100 <#assign dateString = dateUtil.getDate(registration.getStartTime(), "dd MMM yyyy", locale, timeZone) />
101 <#assign timeString = displayContext.getStartTime() + " - " + displayContext.getEndTime() + " (" + timeZone.getID() + ")" />
102 <span class="c-sessions__item__time-date-place__date">
103 ${dateString}
104 </span>
105 <span class="c-sessions__item__time-date-place__time">
106 ${timeString}
107 </span>
108 </#if>
109 <br/>
110 <span class="c-sessions__item__time-date-place__place">
111 <img src="${themeDisplay.getPathThemeImages()}/dsd/${registration.getType()?lower_case}.png"
112 alt=""> ${typeDisplayName} </img>
113 <#assign calDescription += typeDisplayName + "<br/>"/>
114 <br/>
115 <#if registration.isOpen() && !registration.isEventInPast() >
116 <br/>
117 ${registration.getCurrency()}
118 <#assign calDescription += registration.getCurrency()/>
119 <#if price == 0 >
120 ${languageUtil.get(locale, "dsd.theme.session.free")}
121 <#assign calDescription += (languageUtil.get(locale, "dsd.theme.session.free") + "<br/>") />
122 <#else>
123 <#assign vatText = languageUtil.get(locale, "dsd.theme.session.vat")?replace("%d", vat) />
124 ${registration.getPrice()} (${vatText})
125 <#assign calDescription += (registration.getPrice() + " " + vatText + "<br/>") />
126 </#if>
127 <br/>
128
129 <#if registration.getEventId() gt 0 >
130 <#assign event = dsdParserUtils.getEvent(groupId, registration.getEventId()?string) />
131 </#if>
132
133 ${languageUtil.get(locale, "dsd.theme.session.room")} :
134 <#if room??>
135
136 ${room.getTitle()}
137 <#if event?? && event.findBuilding(room)?? >
138 <#assign building = event.findBuilding(room) />
139 - ${languageUtil.get(locale, "dsd.theme.session.building")} : ${building.getTitle()}
140 </#if>
141 </#if>
142 <br/>
143 ${languageUtil.get(locale, "dsd.theme.session.available")} : ${available}
144 </#if>
145
146 </span>
147 <br/>
148
149 <#list registration.getPresenters() as presenter >
150 <#assign expert = presenter />
151 <#assign expertImageUrl = expert.getSmallImageURL(themeDisplay) />
152 <span>
153 <#if expertImageUrl?? && expertImageUrl != "">
154 <img class="expert-data__image" src="${expertImageUrl}"/>
155 </#if>
156 <a href="mailto:${expert.getEmail()}">${expert.getName()}</a>
157 </span>
158 </#list>
159 <#assign isRegistered = dsdSessionUtils.isUserRegisteredFor(user, registration) />
160 <span class="d-block">
161 <#if isRegistered >
162 <a href="${displayContext.getUnregisterURL(renderRequest)}" class="btn-lg btn-primary"
163 role="button" aria-pressed="true">
164 ${languageUtil.get(locale, "registrationform.unregister")}
165 </a>
166
167 <a href="${displayContext.getUpdateURL(renderRequest)}" class="btn-lg btn-primary"
168 role="button" aria-pressed="true">
169 ${languageUtil.get(locale, "registrationform.update")}
170 </a>
171 <#if cancellationExceeded >
172 <div>
173 <#assign courseConditionsUrl = displayContext.getCourseConditionsUrl() />
174 <small><i>${languageUtil.get(locale, "registrationform.cancelExpired")?replace("{0}", courseConditionsUrl)}</i></small>
175 </div>
176 </#if>
177 <#else >
178 <#if registration.canUserRegister(user.getUserId()) && themeDisplay.isSignedIn() && available gt 0>
179
180 <a href="#" data-article-id="${articleId}" class="btn-lg btn-primary add-to-cart"
181 role="button" aria-pressed="true">
182 ${languageUtil.get(locale, "shopping.cart.add")}
183 </a>
184 </#if>
185 </#if>
186 <#assign joinLink = dsdSessionUtils.getUserJoinLink(user, registration) />
187 <#if joinLink?? && joinLink != "">
188 <a href="${joinLink}" target="-_blank" class="btn-lg btn-primary" role="button"
189 aria-pressed="true">
190 ${languageUtil.get(locale, "registrationform.join")}
191 </a>
192 <#assign calDescription += (languageUtil.get(locale, "registrationform.join") + ": " + joinLink )/>
193 </#if>
194 <div class="add-to-calendar c-session__item__calendar"></div>
195 </span>
196 </div>
197 </div>
198 </div>
199 <div class="c-sessions__item__description">
200 ${description.getData()}
201 </div>
202
203 <#if schedules?? && schedules.getSiblings()?has_content && validator.isNotNull(schedules.getSiblings()?first.getData())>
204
205 <#list schedules.getSiblings() as cur_Schedule>
206 <#if cur_Schedule.scheduleDate?has_content >
207 <h3 class="c-sessions__item__title h1">
208 <#assign schedules_date_Data = getterUtil.getString(cur_Schedule.scheduleDate.getData())>
209 <#if validator.isNotNull(schedules_date_Data)>
210 <#assign schedules_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", schedules_date_Data, locale)>
211 ${languageUtil.get(locale, "dsd.theme.session.schedule")} -
212 ${dateUtil.getDate(schedules_date_DateObj, "dd MMM yyyy", locale, timeZone)}
213 </#if>
214 </h3>
215 </#if>
216 <div class="c-sessions__item__description">
217 ${cur_Schedule.getData()}
218 </div>
219 </#list>
220
221 </#if>
222 <#if (registration.getPresentations()?size > 0) >
223 <div class="c-events__item__uploads">
224 <p class="bold">${languageUtil.get(locale, "dsd.theme.session.presentations")}</p>
225 <#list registration.getPresentations() as presentation>
226
227 <#if presentation.isDownloadLink() >
228 <#assign iconClass = "icon-download-alt" />
229 <#else >
230 <#assign iconClass = "icon-film" />
231 </#if>
232
233 <#if presentation.getThumbnailLink()?? >
234 <#assign thumbnail = presentation.getThumbnailLink() />
235 <#else>
236 <#assign thumbnail = "" />
237 </#if>
238
239 <#assign viewURL = displayContext.getViewURL(presentation) />
240
241 <div class="presentation">
242 <a href="${viewURL}">
243 <#if thumbnail?? && thumbnail != "">
244 <img class="videoThumbnail" src="${thumbnail}" alt="${presentation.getTitle()}"/>
245 <#else>
246 <i class=${iconClass}></i>
247 </#if>
248 <div class="presentation_title">
249 <strong>${presentation.getTitle()}</strong>
250 </div>
251 </a>
252 <#if presentation.getPresenter() != "" >
253 <div>
254 >
255 <span>${presentation.getPresenter()}</span>
256 <span>(${presentation.getOrganization()})</span>
257 </div>
258 </#if>
259 </div>
260 </div>
261 </#list>
262</div>
263</#if>
264</div>
265<script>
266 var myCalendar = createCalendar({
267 options: {
268 class: '',
269 id: '${articleId}' // You need to pass an ID. If you don't, one will be generated for you.
270 },
271 data: {
272 title: '${registration.getTitle()}', // Event title
273 start: new Date(${registration.getStartTime()?long}),
274 end: new Date(${registration.getEndTime()?long}),
275 // If an end time is set, this will take precedence over duration
276 address: '${registration.getRoom().getTitle()}',
277
278 description: '${calDescription}'
279 }
280 });
281
282 document.querySelector('.add-to-calendar').appendChild(myCalendar);
283
284</script>
Registratie DSD-NL
REGISTRATIE
- Log in (rechtsboven) met uw MyDeltares-account of registreer u eerst als u nog geen account heeft.
Let op: als u al een DSD- of OSS-account heeft, maar nog geen MyDeltares-account, klik dan op Wachtwoord vergeten? om uw MyDeltares-account in te stellen. Nadat u het proces voor het opnieuw instellen van uw wachtwoord hebt voltooid, kunt u inloggen.
- Klik op de knop <IN WINKELWAGEN> voor de gewenste sessie.
- Ga naar uw “Winkelwagen” (rechterbovenhoek) om uw registratie af te ronden.
Mocht u problemen ondervinden bij de registratie, neem dan contact op met ons team via mydeltares@deltares.nl.