Event Totals
An error occurred while processing the template.
The following has evaluated to null or missing:
==> entry.getLinkedToLayout() [in template "20116#20152#83683" at line 51, column 48]
----
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 friendlyURL = entry.getLinked... [in template "20116#20152#83683" at line 51, column 25]
----
1<#assign liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"] />
2<@liferay_theme["defineObjects"] />
3
4<#assign layout = themeDisplay['plid'] />
5<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
6<#assign layoutObject = layoutService.getLayout(layout?number) />
7<#assign pageTitle = layoutObject.getName(locale) />
8<#assign ancestors = layoutObject.getAncestors() />
9<#assign queryStringChilds = (request.getParameter("leftNavNumbOfChildrenShown")!"9999")?number />
10
11<#assign logoURL = "/image/layout_icon?img_id=" />
12<#assign logoDefaultURL = themeDisplay.getPathThemeImages() + "/aqha-icons/generic-logo-white-2x.png" />
13<#assign finalLogoURL = "" />
14<#if layoutObject.getIconImageId()?has_content && layoutObject.getIconImageId() != 0>
15 <#assign finalLogoURL = logoURL + layoutObject.getIconImageId() />
16<#else>
17 <#assign finalLogoURL = logoDefaultURL />
18</#if>
19
20<style>
21.brand-logo{
22 background-image: url("${finalLogoURL}");
23 background-position: center;
24 background-size: contain;
25 background-repeat: no-repeat;
26 min-width: 100%;
27 min-height: 150px;
28 }
29
30 .vertAlign{
31 display: flex;
32 align-items: center;
33 }
34
35</style>
36
37 <div class="left-nav-menu nav-side-menu">
38 <div class="brand-logo">
39 <#-- <img class="background-contain img-responsive" alt="icon"
40 src="/image/layout_icon?img_id=${layoutObject.getIconImageId()}" /> -->
41 </div>
42 <div class="menu-list" id="jsLeftNavCollapse">
43 <ul id="left-menu-content" class="left-navigation-menu">
44 <#if entries?has_content>
45 <#list entries as entry>
46 <li class="<@isCurrentPage entry.getPlid() /> row vertAlign jsMainMenu" style="padding: 10px 4px;">
47 <div class="col-sm-10">
48 <a class="jsLinkToPage" href="<#if entry.getType() != 'link_to_layout'>${portalUtil.getLayoutURL(entry, themeDisplay)}<#else>
49 <#assign pageGroup = entry.getGroup() />
50 <#assign siteDefaultURL = htmlUtil.escape(pageGroup.getDisplayURL(themeDisplay, false)) />
51 <#assign friendlyURL = entry.getLinkedToLayout().friendlyURL />
52 <#assign entryViewURL = siteDefaultURL + friendlyURL />
53 ${entryViewURL}</#if>" ${entry.getTarget()}><strong>${entry.getName(locale)}</strong>
54 </a>
55 </div>
56 <#if entry.hasChildren() && queryStringChilds gt 1 >
57 <div class="b-left-navigation-menu__arrow b-main-level col-sm-2">
58 <i class="<@hasChildren entry /> ${entry.hasChildren()?then('jsHasChildren','')} b-chevron--down fa fa-angle-right" aria-hidden="true"
59 <#if entry.hasChildren()>data-toggle="collapse" data-target="#${entry.uuid}" data-parent="#jsLeftNavCollapse"></#if> </i>
60 </div>
61 </#if>
62 </li>
63 <#if entry.hasChildren() && queryStringChilds gt 1 >
64 <ul class="sub-menu collapse" id="${entry.uuid}">
65 <@buildNavigationSecondLevel entry.getChildren() 1 />
66 </ul>
67 </#if>
68 </#list>
69 </#if>
70 </ul>
71 </div>
72<#-- Start Macros -->
73<#macro buildNavigationSecondLevel curEntries navLevel>
74<#local navLevelp = navLevel + 1 />
75<#list curEntries as curEntry>
76 <li class="${curEntry?index} <@isCurrentPage curEntry.getPlid() /> row vertAlign jsSubMenu" style="padding: 10px 4px;" >
77 <div class="col-sm-10">
78 <a class="jsLinkToPage" href="<#if entry.getType()!= 'link_to_layout'>${portalUtil.getLayoutURL(curEntry, themeDisplay)}<#else><#assign pageGroup = entry.getGroup() />
79 <#assign siteDefaultURL = htmlUtil.escape(pageGroup.getDisplayURL(themeDisplay, false)) />
80 <#assign friendlyURL = entry.getLinkedToLayout().friendlyURL />
81 <#assign entryViewURL = siteDefaultURL + friendlyURL />
82
83 ${entryViewURL}</#if>" ${curEntry.getTarget()} class="${curEntry?index}">
84 ${curEntry.getName(locale)}
85 </a>
86 </div>
87 <#if curEntry.hasChildren() && navLevelp lt queryStringChilds >
88 <div class="b-left-navigation-menu__arrow b-sub-level col-sm-2">
89 <i class="<@hasChildrenSecondLevel curEntry /> ${curEntry.hasChildren()?then('jsHasChildren','')} b-chevron--down fa fa-angle-right" aria-hidden="true"
90 <#if curEntry.hasChildren()> data-toggle="collapse" data-target="#${curEntry.uuid}" data-parent="#jsLeftNavCollapse"</#if> ></i>
91 </div>
92 </#if>
93 </li>
94 <#if curEntry.hasChildren() && navLevelp lt queryStringChilds >
95 <ul class="sub-menu collapse" id="${curEntry.uuid}">
96 <@buildNavigationSecondLevel curEntry.getChildren() navLevelp />
97 </ul>
98 </#if>
99</#list>
100</#macro>
101
102
103<#macro isCurrentPage currentPageID>
104<#if currentPageID == themeDisplay.getLayout().getPlid()>
105sub-menu current-page
106</#if>
107</#macro>
108
109<#macro hasChildren entry>
110<#if entry.hasChildren()>collapsed active hasChildrens</#if>
111</#macro>
112
113<#macro hasChildrenSecondLevel entry>
114<#if entry.hasChildren()>collapsed active hasChildrensSecondLevel</#if>
115</#macro>
116<#-- End Macros -->
117
118<#-- Start Functions -->
119<#function removeSpaces inputString>
120<#return inputString?replace(" ", "-")>
121</#function>
122<#-- End Functions -->
123<script>
124 //Updated approach to display left nav items to fix Jira AQHANG-2648
125 AUI().ready(function(){
126 $(".jsLinkToPage").on("click", function(event){
127 event.preventDefault();
128 $current = $(this);
129 window.location.href = $current.attr("href");
130 });
131
132 $(".left-nav-menu .hasChildrens").on("click", function(element){
133 element.preventDefault();
134 $('.left-nav-menu .collapse').collapse('hide');
135
136 if( ! $(element.currentTarget).hasClass("currentItem") ) {
137 $(".left-nav-menu .opened").toggleClass("fa-angle-down")
138 .toggleClass("fa-angle-right")
139 .toggleClass("currentItem")
140 .toggleClass("opened");
141 }
142
143 $(element.currentTarget).toggleClass("currentItem");//.find(".b-left-navigation-menu__arrow.b-main-level i")
144 $(element.currentTarget).toggleClass("opened");//.find(".b-left-navigation-menu__arrow.b-main-level i")
145 $(element.currentTarget).toggleClass("fa-angle-right");//.find(".b-left-navigation-menu__arrow.b-main-level i")
146 $(element.currentTarget).toggleClass("fa-angle-down");//.find(".b-left-navigation-menu__arrow.b-main-level i")
147 });
148
149 $(".hasChildrensSecondLevel").on("click",function(element){
150 element.preventDefault();
151 $(element.currentTarget).toggleClass("opened");//find(".b-left-navigation-menu__arrow.b-sub-level i").
152 $(element.currentTarget).toggleClass("fa-angle-right");//find(".b-left-navigation-menu__arrow.b-sub-level i").
153 $(element.currentTarget).toggleClass("fa-angle-down");//find(".b-left-navigation-menu__arrow.b-sub-level i").
154 });
155
156 // After page rendering we trigger the previous click to show/indicate the current page.
157 $(".current-page").parent().prev(".jsMainMenu").find('i').trigger("click");
158 $(".current-page").parent().prev(".jsSubMenu").find('i').trigger("click");
159 });
160</script>
Event Totals
See totals from AQHA-approved events.