The game - opap.gr
New game with hot wins!



How to play Powerspin On Fire
An error occurred while processing the template.
The following has evaluated to null or missing: ==> journalArticle.getDDMTemplateKey [in template "37301#37343#37741" at line 47, column 44] ---- 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: @liferay_journal["journal-article"] a... [in template "37301#37343#37741" at line 45, column 29] ----
1<#if entries?has_content>
2 <#assign listEntriesId = ""/>
3 <#list entries as entry>
4 <#assign listEntriesId = "${listEntriesId}${entry.getEntryId()}"/>
5 </#list>
6 <#assign tagged = "news"/>
7 <#list entries[0].getTags() as tag>
8 <#if tag.name == "announcement">
9 <#assign tagged = "announcement"/>
10 </#if>
11 </#list>
12 <#attempt>
13 <#assign
14 carousel_interval = (portletPreferences["carouselAutoplay"]?first)!"0"
15 />
16 <#recover>
17 <#assign
18 carousel_interval = "0"
19 />
20 </#attempt>
21 <#if carousel_interval == '0' || carousel_interval == ''>
22 <#assign carousel_interval = "false" />
23 </#if>
24 <div id="${renderResponse.getNamespace()}carousel" class="opap-ntf-${tagged} carousel slide <#if tagged == "news">shadow<#else>d-none</#if>"
25 data-interval=${carousel_interval} data-ride="<#if entries?size lte 1 || carousel_interval == "false">false<#else>carousel</#if>">
26 <#if tagged == "announcement">
27 <a class="opap-dismiss" href="javascript:void(0);" onclick="OPAPNotificationDismiss${renderResponse.getNamespace()}(false)" role="button">
28 <i class="icon-remove"></i>
29 </a>
30 </#if>
31 <#if entries?size gt 1>
32 <a class="opap-carousel-control-prev rounded-circle bg-white" href="javascript:void(0);" role="button"
33 data-target="#${renderResponse.getNamespace()}carousel" data-slide="prev">
34 <i class="icon-chevron-left" aria-hidden="true"></i>
35 </a>
36 </#if>
37 <div class="carousel-inner">
38 <#list entries as entry>
39 <#assign
40 assetRenderer = entry.getAssetRenderer()
41 journalArticle = assetRenderer.getAssetObject()
42 />
43 <#if journalArticle.getStatus() == 0>
44 <div class="carousel-item <#if entry?index == 0>active</#if>">
45 <@liferay_journal["journal-article"]
46 articleId=journalArticle.getArticleId()
47 ddmTemplateKey=journalArticle.getDDMTemplateKey()
48 groupId=journalArticle.getGroupId()
49 />
50 </div>
51 </#if>
52 </#list>
53 </div>
54 <#if entries?size gt 1>
55 <a class="opap-carousel-control-next rounded-circle bg-white" href="javascript:void(0);" role="button"
56 data-target="#${renderResponse.getNamespace()}carousel" data-slide="next">
57 <i class="icon-chevron-right" aria-hidden="true"></i>
58 </a>
59 </#if>
60 </div>
61 <script>
62 (function () {
63 let OPAP_ANNOUNCEMENTS_KEY = 'showAnnouncementDialog';
64 let OPAP_ANNOUNCEMENTS_UUID = "${listEntriesId}".split("").sort((a, b) => a && b ? a.localeCompare(b) : -1).join("");
65 window.OPAPNotificationDismiss${renderResponse.getNamespace()} = function (toggle) {
66 let container = document.querySelector('#${renderResponse.getNamespace()}carousel');
67 // defaults to true;
68 let show = sessionStorage.getItem(OPAP_ANNOUNCEMENTS_KEY + OPAP_ANNOUNCEMENTS_UUID) !== 'false';
69 if (toggle !== undefined) {
70 show = !!toggle;
71 sessionStorage.setItem(OPAP_ANNOUNCEMENTS_KEY + OPAP_ANNOUNCEMENTS_UUID, show === true ? 'true' : 'false');
72 }
73 container.classList.toggle('d-none', !show);
74 };
75 Liferay.on('allPortletsReady', function () { window.OPAPNotificationDismiss${renderResponse.getNamespace()}() });
76 })();
77 </script>
78</#if>