Managing emotions
An error occurred while processing the template.
The following has evaluated to null or missing: ==> request["render-url-normal"] [in template "10157#10197#67243" at line 299, column 46] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to be 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 renderUrlNormal = request["re... [in template "10157#10197#67243" at line 299, column 19] ----
1<#--
2 ____ ____ _ _ ____
3 / ___| _ \| | | | _ \
4 | | _| | | | |_| | |_) |
5 | |_| | |_| | _ | _ <
6 \____|____/|_| |_|_| \_\
7 _ _ _ _ _ _ _ __ ___
8 | | ___ __ _ _ __ _ __ (_)_ __ __ _ / \ ___| |_(_)_ _(_) |_ _ _ \ \ / (_) _____ __
9 | | / _ \/ _` | '__| '_ \| | '_ \ / _` | / _ \ / __| __| \ \ / / | __| | | | \ \ / /| |/ _ \ \ /\ / /
10 | |__| __/ (_| | | | | | | | | | | (_| | / ___ \ (__| |_| |\ V /| | |_| |_| | \ V / | | __/\ V V /
11 |_____\___|\__,_|_| |_| |_|_|_| |_|\__, | /_/ \_\___|\__|_| \_/ |_|\__|\__, | \_/ |_|\___| \_/\_/
12 |___/ |___/
13-->
14<style scoped>
15.alert-info {
16 background-color: #0070b4;
17 border-color: #9ee3f9;
18 color: white;
19}
20
21.withRightBorder {
22 border-right: 0px solid;
23 padding-right: 10px;
24}
25
26.accordionBorder {
27 display: none;
28 border-bottom: 1px solid #ddd;
29}
30
31.accordionBorder h3{
32 margin-bottom: 0;
33}
34
35.accordionNoPadding{
36 padding-left: 0;
37}
38
39.accordion a:hover{
40 text-decoration: none;
41}
42
43.ausCuricChevronDown:before{
44 float: left;
45 padding-right:10px;
46 content: "\f078";
47 font-family: 'fontawesome-alloy';
48 font-size: 20px;
49 font-weight: initial;
50}
51
52.ausCuricChevronUp:before{
53 float: left;
54 padding-right:10px;
55 content: "\f077";
56 font-family: 'fontawesome-alloy';
57 font-size: 20px;
58 font-weight: initial;
59}
60
61
62
63button.close {
64 color: white !important;
65 opacity: 1 !important;
66}
67</style>
68
69
70<#assign themeImagePath = themeDisplay.pathThemeImages>
71
72<#assign cssClass = "journal-article-"+.vars['reserved-article-id'].data>
73<#assign learningActivityService = serviceLocator.findService("au.gov.wa.gdhr.content.service.LearningActivityService")>
74<#assign learningActivitySearchService = serviceLocator.findService("au.gov.wa.gdhr.content.service.LearningActivitySearchService")>
75<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
76<#assign assetTagService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagService")>
77<#assign userService = serviceLocator.findService("com.liferay.portal.kernel.service.UserService")>
78<#assign commonTemplateService = serviceLocator.findService("au.gov.wa.gdhr.content.service.CommonTemplateService") >
79
80<#assign jaId = .vars['reserved-article-id'].data>
81<#assign locale = localeUtil.fromLanguageId(request.locale)>
82<#assign languageId = localeUtil.fromLanguageId(request.locale)>
83<#assign learningActivity = learningActivityService.getLearningActivity(jaId,getterUtil.getLong(groupId),locale,languageId)>
84<#assign portalUrl = themeDisplay.portalURL>
85<#assign scheme = request['scheme']>
86<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
87<#assign layoutId = getterUtil.getLong(plid)>
88<#assign layout = layoutLocalService.getLayout(layoutId)>
89<#assign hide = layout.getExpandoBridge().getAttribute('hide-in-breadcrums')>
90<#assign pageHasReturnButton = layout.expandoBridge.getAttribute('has_return_button')!true />
91
92<#assign companyGroupId = getterUtil.getLong(groupId)>
93<#assign articleId = .vars['reserved-article-id'].data>
94<#assign articleTitle = .vars['reserved-article-title'].data>
95<#assign filename = htmlUtil.escapeURL(articleTitle)>
96<#assign baseExportServiceUrl = "/c/portal/journal_content_docmosis/export_article">
97<#assign baseDownloadUrl = "${baseExportServiceUrl}?groupId=${companyGroupId}&articleId=${articleId}&filename=${htmlUtil.escapeURL(articleTitle)}">
98
99
100<script>
101 /* ------------------------------------------------------------------------------------
102 Function to toggle the specified element
103 - Optional boolean to determine if the element toggles when the user clicks outside
104 - Example: toggleDropdown($(".dropdown"),true);
105 ------------------------------------------------------------------------------------- */
106 var toggleDropdown = function(e,dropdownTarget,toggleOnBlur) {
107 /* Stop the default link behaviour */
108 e.preventDefault();
109
110 /* Stop the event from bubbling up to the document */
111 e.stopPropagation();
112
113 /* Close any elements that are still toggled and have focus */
114 /* These elements have called the toggleDropdown function with toggleOnBlur set to true */
115 $(".is-toggled.has-focus").each(function() {
116 /* Don't toggle for the current dropdown target */
117 if (!$(this).is(dropdownTarget)) {
118 $(this).toggleClass("is-toggled has-focus");
119 }
120 });
121
122 /* Toggle the dropdown menu when the dropdown controller is clicked */
123 if (toggleOnBlur) {
124 /* Add a class to show this item can be collapsed when other elements are toggled */
125 $(dropdownTarget).toggleClass("is-toggled has-focus");
126 } else {
127 $(dropdownTarget).toggleClass("is-toggled");
128 }
129
130 /* Toggle the element when it loses focus through the click event */
131 if (toggleOnBlur) {
132 $(document).click(function (e){
133 /* Captures clicks outside of the current target */
134 if (!dropdownTarget.is(e.target) /* If the target of the click isn't the container */
135 && dropdownTarget.has(e.target).length === 0) /* nor a descendant of the container */
136 {
137 /* Hide the dropdown menu if it is enabled */
138 if ($(dropdownTarget).hasClass("is-toggled has-focus")) {
139 $(dropdownTarget).toggleClass("is-toggled has-focus");
140 }
141 }
142 });
143 }
144 }
145
146 /* ------------------------------------------------------------------------------------
147 jQuery code goes here that needs to wait for the DOM to completely load
148 ------------------------------------------------------------------------------------- */
149 $(function() {
150 /* Toggle the dropdown menu when the dropdown controller is clicked */
151 $(".toggle-control").click(function(e) {
152 /* Specify the target element to toggle */
153 var targetDropdown = $(this).parent();
154
155 if ($(this).hasClass("toggle-on-blur")) {
156 /* Call the toggle function and specify for the element to collapse when it loses focus */
157 toggleDropdown(e,targetDropdown,true);
158 } else {
159 /* Call the toggle function */
160 toggleDropdown(e,targetDropdown);
161 }
162 });
163
164 /* Switch the content within the target when the source controller is clicked */
165 $(".switch-control").click(function(e) {
166 /* Store the current switch control */
167 var switchControl = $(this);
168 /* Store the switch content source */
169 var switchSource = $(this).next(".switch-content");
170 /* Store the current switch container's grandparent */
171 var switchSourceParent = $(this).parent().parent();
172
173 /* Clear all the active states for all other switches in this group */
174 $(this).parent().parent().find(".switch-control").each(function() {
175 /* Method to exclude the current switch control */
176 if ($(this).find(".sr-only").text() != switchControl.find(".sr-only").text()) {
177 $(this).removeClass("is-active");
178 }
179 });
180
181 /* If the current switch control is active, you are deactivating so clear the switch target's content */
182 if (switchControl.hasClass("is-active")) {
183 $(".switch-target").html("");
184 $(".switch-target").removeClass("has-content");
185 } else {
186 /* If the current switch control is not active, you are activating it so populate the switch target's content */
187 $(".switch-target").html($(switchSource).html());
188 $(".switch-target").addClass("has-content");
189 }
190
191 /* Change the state of the current switch control */
192 switchControl.toggleClass("is-active");
193
194 /* Clear the switch target and remove the active state from the current switch control */
195 $(document).click(function (e){
196 if (!switchSourceParent.is(e.target) /* If the target of the click isn't the container */
197 && switchSourceParent.has(e.target).length === 0) /* nor a descendant of the container */
198 {
199 /* Hide the dropdown menu if it is enabled */
200 if (switchControl.hasClass("is-active")) {
201 switchControl.toggleClass("is-active");
202 }
203
204 $(".switch-target").html("");
205 $(".switch-target").removeClass("has-content");
206 }
207 });
208 });
209
210
211 /*Clipboard copy code*/
212 var hasFlash = false;
213 try {
214 var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
215 if (fo) {
216 hasFlash = true;
217 }
218 } catch (e) {
219 if (navigator.mimeTypes
220 && navigator.mimeTypes['application/x-shockwave-flash'] != undefined
221 && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
222 hasFlash = true;
223 }
224 }
225
226<#if learningActivity.learningActivity??>
227 if (hasFlash){
228 var client = new ZeroClipboard(document.getElementById('permLink${learningActivity.learningActivity}'),
229 { moviePath: Liferay.ThemeDisplay.getPortalURL() + '/gdhr-new-theme/js/lib/ZeroClipboard.swf',
230 debug:true });
231
232 client.on( 'ready', function(c) {
233 client.on("copy", function (event){
234 event.clipboardData.setData("text/plain", $(client.elements()[0]).attr('data-link'));
235 });
236 client.on("aftercopy", function (event){
237 $('#dismiss${learningActivity.learningActivity}').remove();
238 var dismissableAlert = $('<div class="alert alert-info alert-dismissable" id="dismiss${learningActivity.learningActivity}"/>');
239 dismissableAlert.append('The link ' + $(client.elements()[0]).attr('data-link') + ' has been copied to your clipboard');
240 dismissableAlert.append($('<button type="button" class="close" data-dismiss="alert" aria-hidden="true"><span>×</span></button>'));
241 $('#buttons').append(dismissableAlert);
242 });
243 });
244
245 // In case of error - such as Flash not being available
246 client.on( 'wrongflash noflash', function() {
247 ZeroClipboard.destroy();
248 });
249 } else {
250 $('#permLink${learningActivity.learningActivity}').on("click", function (event){
251 $('#dismiss${learningActivity.learningActivity}').remove();
252 var dismissableAlert = $('<div class="alert alert-info alert-dismissable" id="dismiss${learningActivity.learningActivity}"/>');
253 dismissableAlert.append($('#permLink${learningActivity.learningActivity}').attr('data-link'));
254 dismissableAlert.append($('<button type="button" class="close" data-dismiss="alert" aria-hidden="true"><span>×</span></button>'));
255 $('#buttons').append(dismissableAlert);
256 });
257 }
258 $( "ul" ).each(function( index ) {
259 if( $(this) .prev() .is('ol')) {
260 $(this) .css('margin-left', '35px');
261 $(this) .prev().css('margin-bottom', '2px');
262 $(this).css('margin-bottom', '2px');
263 }});
264</#if>
265 });
266
267 function goBack(){
268 if(window.history.length){
269 window.history.back();
270 }
271 }
272
273 function showLink(linkValue, linkDiv){
274 var textbox = document.getElementById(linkDiv);
275 textbox.value = linkValue;
276 textbox.style.display= "block";
277 textbox.select();
278 }
279
280 function hideLink(linkDiv){
281 linkDiv.style.display = "none";
282 }
283
284 <#if hide>
285 removeViewPageFromBreadcrumbs();
286 </#if>
287 </script>
288
289<div class="${cssClass}">
290
291 <div class="row">
292 <div class="col-md-12">
293
294 <#if !pageHasReturnButton>
295 <#-- Back button -->
296 <div class="back-link">
297 <span class="header-back-to">
298 <span class="icon-circle-arrow-left"></span>
299 <#assign renderUrlNormal = request["render-url-normal"]>
300 <#assign portletNamespace = request["portlet-namespace"]>
301 <#assign portletNamespaceStrutsActionParam = portletNamespace+"struts_action">
302 <#assign portletNamespaceStrutsActionValue = "/asset_publisher/view">
303 <#assign backURL = httpUtil.addParameter(renderUrlNormal,portletNamespaceStrutsActionParam,portletNamespaceStrutsActionValue)>
304
305 <a href="${backURL}" title="Go Back">Return</a>
306 </span>
307 </div>
308 </#if>
309
310 <h2 class="heading-primary">${learningActivity.title}</h2>
311
312 <#assign activityTitle = learningActivity.title>
313 <#assign companyGroupId = getterUtil.getLong(groupId)>
314 <#assign completeUrl = scheme + '://' + portalUrl + learningActivity.stableLink />
315
316 <div id="buttons">
317 <div class="btn-group">
318 <a class="btn btn-primary" href="${baseDownloadUrl}&extension=docx" title="Download Learning Activity in Microsoft Word DOCX format"> WORD </a>
319 <a class="btn btn-primary" href="${baseDownloadUrl}&extension=pdf" title="Download Learning Activity in Adobe PDF format"> PDF </a>
320 </div>
321 </div>
322 </div>
323 </div>
324
325 <#-- @since https://jira.permeance.com.au/browse/SHBBVP002-57 -->
326 <#if (learningActivity.time)?has_content>
327 <div class="row">
328 <div class="col-md-12">
329 <div class="row">
330 <div class="time">
331 <span class="sr-only">Time to complete ${learningActivity.title}:</span>
332 ${learningActivity.time}
333 </div>
334 </div>
335 </div>
336 </div>
337 </#if>
338
339 <div class="row">
340 <div class="col-md-8 withRightBorder">
341 <br/>
342 <h3 class="heading-secondary">Year level: ${learningActivity.typicalAgeRange}</h3>
343
344 <h3 class="heading-secondary">Description</h3>
345 <p>${learningActivity.description}</p>
346
347 <h3 class="heading-secondary">Learning focus</h3>
348 <p>${learning_focus.getData()}</p>
349
350 <#if (learningActivity.keyUnderstandings)?has_content>
351 <h3 class="heading-secondary">Key understandings</h3>
352 <p>${learningActivity.keyUnderstandings}</p>
353 </#if>
354
355 <#-- REMOVED 10 July 2014 as per PC/PT instruction
356 <hr class="divider small" />
357 -->
358 <h3 class="heading-secondary">Materials</h3>
359
360 <#if learningActivity.materials?has_content>
361 <#list learningActivity.materials as material>
362 <#assign formattedMat = material?replace('<p>','','if') />
363 <#assign formattedMat = formattedMat?replace('</p>','','i')/>
364 ${formattedMat}
365 </#list>
366 <#else>
367 <p>There are no listed materials.</p>
368 </#if>
369
370 <div class="accordion accordionBorder">
371
372
373 <div class="accordion-heading">
374 <a href="#auscuric-collapse-1" data-parent="#aus-curric-1" data-toggle="collapse" class="accordion-toggle accordionNoPadding"><h3>Australian curriculum
375 <span class="ausCuricChevronDown"></span>
376 </h3>
377 </a>
378 </div>
379 <div class="accordion-body collapse" id="auscuric-collapse-1">
380 <div class="accordion-inner">
381 <#assign generalCapabilities =
382 learningActivityService.getGeneralCapabilityImageDetails(learningActivity,locale)>
383 <#if generalCapabilities?has_content>
384 <h4 class="heading-tertiary">
385 General capabilities <span class="js-only"></span>
386 </h4>
387 <div class="general-capabilities">
388 <#list generalCapabilities?keys as key> <#assign generalCapability =
389 generalCapabilities[key]> <#assign associatedGeneralCapabilties =
390 learningActivityService.getChildrenCategories(generalCapability.rootCategoryId,learningActivity.generalCapabilities,locale)>
391 <#assign imagePath = themeImagePath +'/' + 'generalCapabilities/' +
392 generalCapability.imageName> <#assign imageTitle =
393 generalCapability.title> <#assign titleDescriptor =
394 generalCapability.description> <#if
395 associatedGeneralCapabilties?has_content>
396 <div class="general-capability switch-container">
397 <#--
398 <button class="switch-control" title="${imageTitle}">
399 <img alt="${imageTitle}" height="30" src="${imagePath}"
400 title="${imageTitle} (click for details)" width="30" /> <span
401 class="sr-only">${imageTitle}</span>
402 </button>
403 -->
404 <button class="switch-control" title="${imageTitle}">
405 <img alt="${imageTitle}" height="30" src="${imagePath}"
406 title="${titleDescriptor} (click for details)" width="30" /> <span
407 class="sr-only">${imageTitle}</span>
408 </button>
409 <div class="switch-content">
410 <#list associatedGeneralCapabilties?keys as key>
411 <h4 class="heading-tertiary">${key}</h4>
412 <#assign values = associatedGeneralCapabilties[key]> <#list values
413 as value>
414 <p>${value.getTitle(locale)}</p>
415 </#list> </#list>
416 </div>
417 </div>
418 <#else>
419 <div class="general-capability is-inactive">
420 <img alt="${titleDescriptor}" height="30" src="${imagePath}"
421 title="${titleDescriptor}" width="30" /> <span class="sr-only">${imageTitle}</span>
422 <h4 class="heading-tertiary">${imageTitle}</h4>
423 </div>
424 </#if> </#list>
425 <div class="switch-target"></div>
426 </div>
427 <#else>
428 <h4 class="heading-tertiary">General capabilities</h4>
429 <p>No General Capabilities values have been selected.</p>
430 </#if>
431
432
433 <#if learningActivity.nationalCurriculum?has_content> <#assign
434 categoryMap =
435 learningActivityService.getCategoryMap(learningActivity.nationalCurriculum,locale)>
436
437 <#list categoryMap?keys as key>
438 <h4 class="heading-tertiary">${key}</h4>
439 <#assign values = categoryMap[key]> <#list values as value> <#assign
440 title = value.getTitle(locale)> <#if
441 value.getDescription(locale)?has_content>
442 <div class="toggle-container padding-vertical">
443 <div class="gravur toggle-control">
444 <#if value.getParentCategoryId() != 0> ${title} <span
445 title="Show details" class="off-state"><i class="icon-plus"></i></span>
446 <span title="Hide details" class="on-state"><i
447 class="icon-minus"></i></span> </#if>
448 <div class="clear"></div>
449 </div>
450 <div class="clear"></div>
451 <div class="toggle-content">
452 <p>${value.getDescription(locale)}</p>
453 </div>
454 </div>
455 <#else> <#if value.getParentCategoryId() != 0>
456 <p>
457 <strong>${title}</strong>
458 </p>
459 </#if> </#if> </#list> </#list> <#else>
460 <p>No Australian Curriculum values have been selected.</p>
461 </#if> <#-- REMOVED 10 July 2014 as per PC/PT instruction
462 <h3 class="heading-secondary">Subject</h3>
463
464 <#if learningActivity.subject?has_content> <#list
465 learningActivity.subject as scot> <#assign scotCategoryId
466 =getterUtil.getLong(scot)> <#assign scotCategory =
467 assetCategoryService.getCategory(scotCategoryId)>
468 <p>${scotCategory.getTitle(locale)}</p>
469 </#list> <#else>
470 <p>No Subject values have been selected.</p>
471 </#if>
472
473
474 <hr class="divider small" />
475 -->
476
477 <h3 class="heading-secondary">Blooms revised taxonomy</h3>
478
479 <#if learningActivity.blooms?has_content> <#list
480 learningActivity.blooms as bloom> <#assign bloomsCategoryId
481 =getterUtil.getLong(bloom)> <#assign bloomsCategory =
482 assetCategoryService.getCategory(bloomsCategoryId)>
483 <p>${bloomsCategory.getTitle(locale)}</p>
484 </#list> <#else>
485 <p>No Blooms values have been selected.</p>
486 </#if>
487
488 <h3 class="heading-secondary">Inquiry learning phase</h3>
489
490 <#if learningActivity.inquiryLearningPhase?has_content> <#list
491 learningActivity.inquiryLearningPhase as ipl> <#assign
492 inquiryLearningPhaseCategoryId =getterUtil.getLong(ipl)> <#assign
493 inquiryLearningPhaseCategory =
494 assetCategoryService.getCategory(inquiryLearningPhaseCategoryId)>
495 <p>
496 <a href=${inquiryLearningPhaseCategory.getDescription(locale)}>${inquiryLearningPhaseCategory.getTitle(locale)}</a>
497 </p>
498 </#list> <#else>
499 <p>No Inquiry Learning phase values have been selected.</p>
500 </#if> <#-- REMOVED 10 July 2014 as per PC/PT instruction
501 <hr class="divider small" />
502
503 <h3 class="heading-secondary">Keywords</h3>
504 <#assign keywords = ""> <#if learningActivity.tags?has_content>
505 <#assign size = learningActivity.tags?size> <#assign counter = 0>
506 <#list learningActivity.tags as tag> <#assign keywords = keywords +
507 tag> <#assign counter = counter + 1> <#if counter < size> <#assign
508 keywords = keywords + ", "> </#if> </#list>
509 <p>${keywords}</p>
510 <#else>
511 <p>No Keywords have been selected.</p>
512 </#if>-->
513 </div>
514 </div>
515 </div>
516
517 </div>
518
519
520 <div class="col-md-4">
521
522 <style>
523 .related-asset-icon {margin-right: 1em;}
524 .related-asset-item {margin-left: 2em;}
525 </style>
526
527 <#assign commonTemplateService = serviceLocator.findService("au.gov.wa.gdhr.content.service.CommonTemplateService") >
528 <#assign jaId = .vars['reserved-article-id'].data>
529 <#assign identifiedRelatedAssetsList = commonTemplateService.getIdentifiedRelatedAssetModelsForWebContent(scopeGroupId, jaId) >
530
531 <#assign teachingNotesStructureKey = commonTemplateService.getStructureKeyByName(scopeGroupId, "Teaching Note") >
532 <#assign backgroundNotesStructureKey = commonTemplateService.getStructureKeyByName(scopeGroupId, "Background Note") >
533 <#assign resourceCollectionStructureKey = commonTemplateService.getStructureKeyByName(scopeGroupId, "Resource Collection") >
534 <#assign faqStructureKey = commonTemplateService.getStructureKeyByName(scopeGroupId, "FAQ") >
535 <#assign videoStructureKey = commonTemplateService.getStructureKeyByName(scopeGroupId, "Video") >
536 <#assign bookletBrochureStructureKey = commonTemplateService.getStructureKeyByName(scopeGroupId, "Booklets and Brochures") >
537
538 <#assign hasRelatedResources = false >
539 <#assign listRRImages = [] >
540 <#assign listRRVideos = [] >
541 <#assign listRRDownloads = [] >
542 <#assign listRRTeachingNotes = [] >
543 <#assign listRRBackgroundNotes = [] >
544 <#assign listRRResourceCollections = [] >
545 <#assign listRRFAQs = [] >
546 <#assign listRRExternalLinks = [] >
547 <#assign listRRBookletBrochure = [] >
548
549
550 <#list identifiedRelatedAssetsList as identifiedModel>
551 <#if identifiedModel.type == "JournalArticle">
552 <#if (identifiedModel.model.structureId == teachingNotesStructureKey) >
553 <#assign hasRelatedResources = true >
554 <#assign listRRTeachingNotes = listRRTeachingNotes + [identifiedModel] >
555 </#if>
556 <#if (identifiedModel.model.structureId == backgroundNotesStructureKey) >
557 <#assign hasRelatedResources = true >
558 <#assign listRRBackgroundNotes = listRRBackgroundNotes + [identifiedModel] >
559 </#if>
560 <#if (identifiedModel.model.structureId == resourceCollectionStructureKey) >
561 <#assign hasRelatedResources = true >
562 <#assign listRRResourceCollections = listRRResourceCollections + [identifiedModel] >
563 </#if>
564 <#if (identifiedModel.model.structureId == faqStructureKey) >
565 <#assign hasRelatedResources = true >
566 <#assign listRRFAQs = listRRFAQs + [identifiedModel] >
567 </#if>
568 <#if (identifiedModel.model.structureId == videoStructureKey) >
569 <#assign hasRelatedResources = true >
570 <#assign listRRVideos = listRRVideos + [identifiedModel] >
571 </#if>
572 <#if (identifiedModel.model.structureId == bookletBrochureStructureKey) >
573 <#assign hasRelatedResources = true >
574 <#assign listRRBookletBrochure = listRRBookletBrochure + [identifiedModel] >
575 </#if>
576 </#if>
577 <#if identifiedModel.type == "FileEntry">
578 <#if (identifiedModel.model.mimeType?starts_with("image/")) >
579 <#assign hasRelatedResources = true >
580 <#assign listRRImages = listRRImages + [identifiedModel] >
581 <#else>
582 <#assign hasRelatedResources = true >
583 <#assign listRRDownloads = listRRDownloads + [identifiedModel] >
584 </#if>
585 </#if>
586 <#if identifiedModel.type == "BookmarksEntry">
587 <#assign hasRelatedResources = true >
588 <#assign listRRExternalLinks = listRRExternalLinks + [identifiedModel] >
589 </#if>
590 </#list>
591
592
593 <#if hasRelatedResources>
594 <h3 style="color:#007FBC;">Related items</h3>
595 <#--
596 |
597 <#if (listRRImages?size > 0)><a href="#rrimages">Images</a> | </#if>
598 <#if (listRRVideos?size > 0)><a href="#rrvideos">Videos</a> | </#if>
599 <#if (listRRDownloads?size > 0)><a href="#rrdownloads">Teaching Resource (download)</a> | </#if>
600 <#if (listRRTeachingNotes?size > 0)><a href="#rrtcnotes">Teaching Notes</a> | </#if>
601 <#if (listRRBackgroundNotes?size > 0)><a href="#rrbgnotes">Background Notes</a> | </#if>
602 <#if (listRRResourceCollections?size > 0)><a href="#rrrescollections">Resource Collections</a> | </#if>
603 <#if (listRRFAQs?size > 0)><a href="#rrfaqs">FAQs</a> | </#if>
604 <#if (listRRBookletBrochure?size > 0)><a href="#rrbandb">Booklets and Brochures</a> | </#if>
605
606 <#if (listRRExternalLinks?size > 0)><a href="#rrextlinks">External Links</a> | </#if>-->
607 <#if (listRRImages?size > 0)>
608 <a name="rrimages"></a>
609 <i class="icon-picture related-asset-icon"></i><span class="heading-secondary">Images</span>
610 <ul class="unstyled">
611 <#list listRRImages as identifiedModel>
612 <li class="related-asset-item"><a href="/documents/${identifiedModel.model.groupId}/${htmlUtil.escapeURL(identifiedModel.model.title)}/${identifiedModel.model.folderId}/${identifiedModel.model.uuid}?t=${dateUtil.newTime()}"><img src="/documents/${identifiedModel.model.groupId}/${htmlUtil.escapeURL(identifiedModel.model.title)}/${identifiedModel.model.folderId}/${identifiedModel.model.uuid}?t=${dateUtil.newTime()}&imageThumbnail=1"/> ${htmlUtil.escape(identifiedModel.model.title)}</a></li>
613 </#list>
614 </ul>
615 </#if>
616
617 <#if (listRRVideos?size > 0)>
618 <a name="rrvideos"></a>
619 <i class="icon-film related-asset-icon"></i><span class="heading-secondary">Videos</span>
620 <ul class="unstyled">
621 <#list listRRVideos as identifiedModel>
622 <li class="related-asset-item"><a href="/-/${identifiedModel.model.urlTitle}">${htmlUtil.escape(identifiedModel.model.titleCurrentValue)}</a></li>
623 </#list>
624 </ul>
625 </#if>
626
627 <#if (listRRDownloads?size > 0)>
628 <a name="rrdownloads"></a>
629 <i class="icon-download-alt related-asset-icon"></i><span class="heading-secondary">Teaching resource (download)</span>
630 <ul class="unstyled">
631 <#list listRRDownloads as identifiedModel>
632 <li class="related-asset-item"><a href="/documents/${identifiedModel.model.groupId}/${htmlUtil.escapeURL(identifiedModel.model.title)}/${identifiedModel.model.folderId}/${identifiedModel.model.uuid}?t=${dateUtil.newTime()}">${htmlUtil.escape(identifiedModel.model.title)}</a></li>
633 </#list>
634 </ul>
635 </#if>
636
637 <#if (listRRTeachingNotes?size > 0)>
638 <a name="rrtcnotes"></a>
639 <i class="icon-book related-asset-icon"></i><span class="heading-secondary">Guides</span>
640 <ul class="unstyled">
641 <#list listRRTeachingNotes as identifiedModel>
642 <li class="related-asset-item"><a href="/-/${identifiedModel.model.urlTitle}">${htmlUtil.escape(identifiedModel.model.titleCurrentValue)}</a></li>
643 </#list>
644 <#if (listRRBackgroundNotes?size > 0)>
645 <#list listRRBackgroundNotes as identifiedModel>
646 <li class="related-asset-item"><a href="/-/${identifiedModel.model.urlTitle}">${htmlUtil.escape(identifiedModel.model.titleCurrentValue)}</a></li>
647 </#list>
648 </#if>
649 </ul>
650 <#elseif (listRRBackgroundNotes?size > 0)>
651 <a name="rrtcnotes"></a>
652 <i class="icon-book related-asset-icon"></i><span class="heading-secondary">Guides</span>
653 <ul class="unstyled">
654 <#list listRRBackgroundNotes as identifiedModel>
655 <li class="related-asset-item"><a href="/-/${identifiedModel.model.urlTitle}">${htmlUtil.escape(identifiedModel.model.titleCurrentValue)}</a></li>
656 </#list>
657 <#if (listRRTeachingNotes?size > 0)>
658 <#list listRRTeachingNotes as identifiedModel>
659 <li class="related-asset-item"><a href="/-/${identifiedModel.model.urlTitle}">${htmlUtil.escape(identifiedModel.model.titleCurrentValue)}</a></li>
660 </#list>
661 </#if>
662 </ul>
663 <#else>
664 <!--NO CONTENT-->
665 </#if>
666
667
668 <#if (listRRResourceCollections?size > 0)>
669 <a name="rrrescollections"></a>
670 <i class="icon-briefcase related-asset-icon"></i><span class="heading-secondary">Resource collections</span>
671 <ul class="unstyled">
672 <#list listRRResourceCollections as identifiedModel>
673 <li class="related-asset-item"><a href="/-/${identifiedModel.model.urlTitle}">${htmlUtil.escape(identifiedModel.model.titleCurrentValue)}</a></li>
674 </#list>
675 </ul>
676 </#if>
677
678 <#if (listRRFAQs?size > 0)>
679 <a name="rrfaqs"></a>
680 <i class="icon-question-sign related-asset-icon"></i><span class="heading-secondary">FAQs</span>
681 <ul class="unstyled">
682 <#list listRRFAQs as identifiedModel>
683 <li class="related-asset-item"><a href="/-/${identifiedModel.model.urlTitle}">${htmlUtil.escape(identifiedModel.model.titleCurrentValue)}</a></li>
684 </#list>
685 </ul>
686 </#if>
687
688 <#if (listRRBookletBrochure?size > 0)>
689 <a name="rrbandb"></a>
690 <i class="icon-book related-asset-icon"></i><span class="heading-secondary">Booklets and Brochures</span>
691 <ul class="unstyled">
692 <#list listRRBookletBrochure as identifiedModel>
693 <li class="related-asset-item"><a href="/-/${identifiedModel.model.urlTitle}">${htmlUtil.escape(identifiedModel.model.titleCurrentValue)}</a></li>
694 </#list>
695 </ul>
696 </#if>
697
698 <#if (listRRExternalLinks?size > 0)>
699 <a name="rrextlinks"></a>
700 <i class="icon-link related-asset-icon"></i> <span class="heading-secondary">External links</span>
701 <ul class="unstyled">
702 <#list listRRExternalLinks as identifiedModel>
703 <li class="related-asset-item"><a href="${identifiedModel.model.url}">${htmlUtil.escape(identifiedModel.model.name)}</a></li>
704 </#list>
705 </ul>
706 </#if>
707
708 </#if>
709
710
711
712
713
714
715 </div>
716 </div>
717
718
719
720 <hr class="divider small" />
721
722 <div class="row">
723 <div class="col-md-12">
724
725 <#-- Relocate 'Before you get started' before the 'Learning activities' -->
726 <#-- @since https://jira.permeance.com.au/browse/SHBBVP002-58 -->
727
728 <#list learningActivity.activitySections as activitySection>
729 <#assign name = (activitySection.name)!"" />
730 <#assign label = (activitySection.label)!"" />
731 <#if name?trim?lower_case == "before you get started" || label?trim?lower_case == "before you get started">
732 <div class="row">
733 <div class="span">
734 <#if name?has_content>
735 <h3 class="heading-secondary">${name}</h3>
736 <p>${label}</p>
737 <p>${activitySection.body}</p>
738 <#else>
739 <h3 class="heading-secondary">${label}</h3>
740 <p>${activitySection.body}</p>
741 </#if>
742 </div>
743 </div>
744 </#if>
745 </#list>
746
747 <h3 class="heading-secondary" style="color: #007fbc;">Learning activities</h3>
748
749 <#list learningActivity.activitySections as activitySection>
750 <#assign name = (activitySection.name)!"" />
751 <#assign label = (activitySection.label)!"" />
752 <#if name?trim?lower_case != "before you get started" && label?trim?lower_case != "before you get started">
753 <div class="row">
754 <div class="span">
755 <#if name?has_content>
756 <h4 class="heading-tertiary">${name}</h4>
757 <#else>
758 <h4>${label}</h4>
759 </#if>
760 </div>
761 </div>
762 <#-- @since https://jira.permeance.com.au/browse/SHBBVP002-57 -->
763 <#if (activitySection.time)?has_content>
764 <div class="row">
765 <div class="time time-subsection">
766 <span class="sr-only">Time to complete ${name}:</span>
767 ${activitySection.time}
768 </div>
769 </div>
770 </#if>
771 <div class="row">
772 <div class="span">
773 <#if name?has_content>
774 <p>${label}</p>
775 <p>${activitySection.body}</p>
776 <#else>
777 <p>${activitySection.body}</p>
778 </#if>
779 </div>
780 </div>
781 </#if>
782 </#list>
783
784 </div>
785 </div>
786</div>
787
788<style>
789.related-asset-icon {
790 margin-right: 1em;
791}
792
793.related-asset-item {
794 margin-left: 2em;
795}
796</style>
797
798<script>
799$( ".accordion-heading" ).click(function() {
800 $(this).find("h3 span").toggleClass('ausCuricChevronDown, ausCuricChevronUp');
801 console.log("gog her");
802 });
803</script>