Java method "static com.open.reply.ipc.contributor.util.IpcContributorUtil.filterNavItemsByUserCF(com.liferay.portal.kernel.model.User, List, boolean, boolean)" threw an exception; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign entries = ipcContributorUtil... [in template "20095#20121#35052" at line 12, column 1]
----
1<#--
2SIDEBAR FTL
3To allow the page content to pad according to the opening of the sidebar, please assign (in the theme)
4a id of sidebar-menu-wrapper to the div wrapping the content of the page.
5This will allow assigning the class "active" to that wrapper once the sidebar will be opened.
6-->
7<#include "${templatesPath}/NAVIGATION-MACRO-FTL" />
8<#assign homeUrl = propsUtil.get("default.landing.page.path")/>
9<#assign
10 httpComponentsUtil = staticUtil["com.liferay.portal.kernel.util.HttpComponentsUtil"]
11/>
12<#assign
13 entries = ipcContributorUtil.filterNavItemsByUserCF(user, entries, false, true)
14/>
15
16<#if !entries?has_content>
17 <#if themeDisplay.isSignedIn()>
18 <div class="alert alert-info">
19 <@liferay.language
20 key="there-are-no-menu-items-to-display" />
21 </div>
22 </#if>
23<#else>
24 <#assign
25 portletDisplay=themeDisplay.getPortletDisplay()
26 navbarId="navbar_"+ portletDisplay.getId()
27 />
28 <div class="${navbarId}">
29 <!-- Sidebar -->
30 <nav id="sidebar" class="ipc-sidebar">
31 <div class="sidebar-header">
32 <a href="${homeUrl}">
33 <div class="ico-logo-emea"></div>
34 </a>
35 </div>
36 <ul class="list-unstyled components" aria-label="<@liferay.language key=" site-pages" />" role="menubar">
37 <#assign navItems=entries />
38 <#list navItems as navItem>
39 <#assign showChildrenNavItems=(displayDepth != 1) && navItem.hasBrowsableChildren() />
40 <#if (navItem.isBrowsable() || showChildrenNavItems)>
41 <#assign nav_item_attr_has_popup="" nav_item_caret="" nav_item_css_class="lfr-nav-item nav-item" nav_item_href_link="" nav_item_link_css_class="nav-link" />
42 <#if showChildrenNavItems>
43 <#assign nav_item_attr_has_popup="aria-haspopup='true'" />
44 <#assign nav_item_caret>
45 <span class="lfr-nav-child-toggle">
46 <@liferay_aui.icon image="angle-down" markupView="lexicon" />
47 </span>
48 </#assign>
49 <#assign nav_item_css_class="${nav_item_css_class} dropdown" nav_item_link_css_class="${nav_item_link_css_class} dropdown-toggle" />
50 </#if>
51 <#if navItem.isBrowsable()>
52 <#assign nav_item_href_link="href='${navItem.getURL()}'" />
53 </#if>
54 <#if !navItem.isChildSelected() && navItem.isSelected()>
55 <#assign nav_item_css_class="${nav_item_css_class} selected active" />
56 </#if>
57 <#if navItem.isChildSelected()>
58 <#assign nav_item_css_class="${nav_item_css_class} selected active" />
59 </#if>
60 <#if isHelpPage(navItem)>
61 <#assign help_page_nav_item= navItem />
62 <#else>
63 <li class="${nav_item_css_class}" id="layout_${portletDisplay.getId()}_${navItem.getLayoutId()}"
64 role="presentation">
65 <#if nav_item_href_link?has_content>
66 <a
67 ${nav_item_attr_has_popup} class="${nav_item_link_css_class}"
68 ${nav_item_href_link} ${navItem.getTarget()} role="menuitem">
69 <@liferay_theme["layout-icon"] layout=navItem.getLayout() />
70 <span class="text-link text-wrap"> ${navItem.getName()}</span>
71 </a>
72 <#else>
73 <a data-toggle="collapse" aria-expanded="false"
74 class="dropdown-toggle ${nav_item_link_css_class}"
75 ${nav_item_attr_has_popup} href="#plid-${navItem.getLayout().getPlid()}"
76 ${navItem.getTarget()} role="menuitem">
77 <@liferay_theme["layout-icon"] layout=navItem.getLayout() />
78 <span class="text-link text-wrap"> ${navItem.getName()}</span>
79 <i class="ico-arrow">
80 </i>
81 </a>
82 <#if showChildrenNavItems>
83 <ul aria-expanded="false" class="collapse ${navItem.isChildSelected()?then('show','')}"
84 role="menu"
85 id="plid-${navItem.getLayout().getPlid()}">
86 <@ipcBuildChildrenNavItems displayDepth=displayDepth navItem=navItem />
87 </ul>
88 </#if>
89 </#if>
90 </li>
91 </#if>
92 </#if>
93 </#list>
94 </ul>
95 <ul class="list-unstyled CTAs">
96 <#assign layout = themeDisplay.getLayout()/>
97 <#assign activeClass = ""/>
98 <#if layout?contains("support")>
99 <#assign activeClass = "active selected"/>
100 </#if>
101 <li class="${activeClass}">
102 <#if help_page_nav_item?has_content>
103 <#assign
104 helpUrl = help_page_nav_item.getURL()
105 />
106 <a href="${helpUrl}" class="help-section text-left pl-0 align-items-center d-flex">
107 <span class="text-truncate">
108 <i class="ico-help"></i>
109 </span>
110 <span class="text-link"> ${help_page_nav_item.getName()}</span>
111 </a>
112 </#if>
113 </li>
114 </ul>
115 </nav>
116 </div>
117</#if>
118
119<#macro ipcBuildChildrenNavItems
120 displayDepth
121 navItem
122 menuItem = true
123 navItemLevel = 2
124>
125 <#assign
126 childNavigationItems = ipcContributorUtil.filterNavItemsByUserCF(user, navItem.getChildren(), false, true)
127 />
128 <#list childNavigationItems as childNavigationItem>
129 <#assign nav_child_css_class = "" />
130 <#if !childNavigationItem.isChildSelected() && childNavigationItem.isSelected()>
131 <#assign nav_child_css_class = "active selected" />
132 </#if>
133 <li class="${nav_child_css_class}" id="layout_${portletDisplay.getId()}_${childNavigationItem.getLayoutId()}"
134 role="presentation">
135 <#if childNavigationItem.isBrowsable()>
136 <#if menuItem>
137 <a class="dropdown-item" href="${childNavigationItem.getURL()}" ${childNavigationItem.getTarget()}
138 role="menuitem">${childNavigationItem.getName()}</a>
139 <#else>
140 <a class="dropdown-item"
141 href="${childNavigationItem.getURL()}" ${childNavigationItem.getTarget()}>${childNavigationItem.getName()}</a>
142 </#if>
143 </#if>
144 </li>
145 <#if childNavigationItem.hasBrowsableChildren() && ((displayDepth == 0) || (navItemLevel < displayDepth))>
146 <ul class="list-unstyled pl-3">
147 <@ipcBuildChildrenNavItems
148 displayDepth=displayDepth
149 menuItem=false
150 navItem=childNavigationItem
151 navItemLevel=(navItemLevel + 1)
152 />
153 </ul>
154 </#if>
155 </#list>
156</#macro>
157
158<#function isHelpPage navItem>
159 <#local expandoB = navItem.getLayout().getExpandoBridge()>
160 <#return expandoB.getAttribute("help-page")?? && expandoB.getAttribute("help-page") == true>
161</#function>
162
163<#if entries?has_content>
164 <script>
165
166 $(document).ready(function () {
167 $('#sidebarCollapse').on('click', function () {
168 let sidebar = $("#sidebar");
169 let wrapper = $(".sidebar-menu-wrapper");
170 // prefer this approach over toggling since this avoids desync between the wrapper and the contents
171 //TODO add wrapper selector as a portlet preference.
172 if (sidebar.hasClass('active')) {
173 sidebar.removeClass('active');
174 if (wrapper.length) {
175 wrapper.removeClass('active');
176 }
177 } else {
178 sidebar.addClass('active');
179 if (wrapper.length) {
180 wrapper.addClass('active');
181 }
182 $("#sidebar ul li a[data-toggle='collapse'] + ul[aria-expanded]").collapse('hide');
183 }
184 });
185
186 $("#sidebar ul li a").click(function (e) {
187 var width = (window.innerWidth > 0) ? window.innerWidth : document.documentElement.clientWidth;
188 if (width > 1024) {
189 let sidebar = $("#sidebar");
190 if (sidebar.hasClass('active') && $(this).hasClass("dropdown-toggle")) {
191 sidebar.removeClass('active');
192 }
193 }
194
195 if (!$(this).hasClass("dropdown-item")) {
196 $("#sidebar ul li ul").collapse('hide');
197 }
198
199 if ($("#sidebar ul li ul").hasClass('active')) {
200 e.preventDefault();
201 $("#sidebarCollapse").trigger("click");
202 $("#sidebar ul li a[data-toggle='collapse'] + ul[aria-expanded]").collapse('hide');
203 }
204 });
205
206 });
207
208 $(window).on('load resize', function () {
209 var parentNav = $(".nav-item.dropdown");
210 var viewportSize = $(window).width();
211 //console.log("viewportSize="+viewportSize);
212 if (viewportSize >= 991) {
213 if ($("#sidebar").hasClass('active')) {
214 $("#sidebarCollapse").trigger("click");
215 }
216 $(parentNav).on('click', function () {
217 $("#sidebar").removeClass("active");
218 });
219 }
220 });
221 </script>
222
223
224 <@liferay_aui.script use="liferay-navigation-interaction">
225 var navigation = A.one('#${navbarId}');
226 Liferay.Data.NAV_INTERACTION_LIST_SELECTOR = '.navbar-site';
227 Liferay.Data.NAV_LIST_SELECTOR = '.navbar-site';
228 if (navigation) {
229 navigation.plug(Liferay.NavigationInteraction);
230 }
231 </@>
232</#if>
We use cookies to deliver personalized content, analyze trends, administer the site, track user movements on the site, and collect demographic information about our user base as a whole. Accept all cookies for the best possible experience on our website or manage your preferences. Visit our Privacy Policy