The following has evaluated to null or missing:
==> propsUtil.get(lrHeaderlinkRegisterURL) [in template "20115#20151#56198" at line 151, column 119]
----
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: ${propsUtil.get(lrHeaderlinkRegisterU... [in template "20115#20151#56198" at line 151, column 117]
----
1<script>
2
3function getCookie(c_name)
4 {
5 var i,x,y,ARRcookies=document.cookie.split(";");
6 //console.log("ARRcookies"+ARRcookies);
7 for (i=0;i<ARRcookies.length;i++)
8 {
9 x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
10 y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
11 x=x.replace(/^\s+|\s+$/g,"");
12 //console.log("x"+x);
13 if (x==c_name)
14 {
15 return decodeURIComponent(y);
16 }
17 }
18 }
19
20$(document).ready(function(){
21
22var username=getCookie("usrname");
23var cookieValueMaxLength = ${getterUtil.getInteger(propsUtil.get("COOKIE_VALUE_MAX_LENGTH"), 100)};
24if(typeof username !== "undefined" && username.length > cookieValueMaxLength)
25{
26 username = username.substring(0, cookieValueMaxLength)
27}
28
29console.log("if loop in functional cookie");
30var showusername = $(".usr-unhidden");
31var hideusername = $(".usr-hidden col-lg-12");
32if (username == null || username.length <= 0 || username === undefined)
33{
34console.log("nested if loop in functional cookie");
35showusername.hide();
36hideusername.show();
37}
38else
39{
40console.log("username"+username);
41var nameOfPerson = username.replace(/\++/g, " "); //Name of person
42document.getElementById("user").textContent = nameOfPerson;
43showusername.show();
44$('.usr-hidden').hide();
45}
46
47});
48
49</script>
50
51<div class="row single-col" id="menu">
52<div class="hays-col hays-col-12">
53
54 <nav id="nav-social">
55 <ul>
56
57
58 <#if LinkedInText.getData()?has_content>
59 <li><a href="${LinkedInText.getData()}" class="icon icon-30 icon-linkedin" target="_blank"></a></li>
60 </#if>
61 <#if TwitterText.getData()?has_content>
62 <li><a href="${TwitterText.getData()}" class="icon icon-30 icon-twitter-custom" target="_blank" ><img src="https://www9.hays.com/UI/storybook/assets/img/svg/socials/twitter_x.svg"></a></li>
63 </#if>
64 <#if YouKuText.getData()?has_content>
65 <li><a href="${YouKuText.getData()}" class="icon icon-30 icon-youku" target="_blank"></a></li>
66 </#if>
67 <#if WeChatText.getData()?has_content>
68 <li><a href="${WeChatText.getData()}" class="icon icon-30 icon-wechat" target="_blank"></a></li>
69 </#if>
70 <#if FacebookText.getData()?has_content>
71 <li><a href="${FacebookText.getData()}" class="icon icon-30 icon-facebook" target="_blank"></a></li>
72 </#if>
73 <#if InstagramLink?? && InstagramLink.getData()?has_content>
74 <li><a href="${InstagramLink.getData()}" class="icon icon-30 icon-instagram" target="_blank"></a></li>
75 </#if>
76 </ul>
77 </nav>
78
79 <#assign isFullWidthLayoutEnabled = getterUtil.getBoolean(themeDisplay.getThemeSetting("full-width-layout-enabled"))>
80 <#if isFullWidthLayoutEnabled>
81 <#assign nav_user_class = "col-lg-12" />
82 <#else>
83 <#assign nav_user_class = "hays-col-lg-12" />
84 </#if>
85
86 <nav id="nav-user" class="usr-hidden ${nav_user_class}">
87 <ul>
88 <#if siteType == "Expert">
89 <#assign
90 languages = languageUtil.get(locale, "lr_languages")
91 theme_language = themeDisplay.getLocale()?keep_before("_")
92 countryISO = locale?keep_after("_")
93 />
94 <#elseif siteType == "HR">
95 <#assign
96 languages = languageUtil.get(locale, "lr_languages_HR")
97 theme_language = themeDisplay.getLocale()?keep_before("_")
98 countryISO = locale?keep_after("_")
99 />
100 </#if>
101 <#list languages?split(",") as lang>
102 <#assign langLabel = languageUtil.get( locale, "lr_language_"+lang)>
103 <#if lang != theme_language>
104 <#assign currentUrl = themeDisplay.getURLCurrent() />
105
106 <#assign portalUrl = themeDisplay.getPortalURL() />
107 <#assign fullUrl = portalUrl+currentUrl />
108
109
110 <#assign Plid = layout.getPlid()>
111 <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
112 <#assign nodeId = LayoutLocalService.getLayout(Plid).getExpandoBridge().getAttribute("NodeId")>
113 <#if nodeId == "home">
114 <!-- <li><a href=${portalUrl?replace(portalUrl,portalUrl+"/"+lang)} class="chLang" title="${langLabel}">${langLabel}</a></li> -->
115 <#elseif currentUrl?contains(themeDisplay.getLocale()) || currentUrl?contains(theme_language) >
116 <!-- <li><a href=${fullUrl?replace(portalUrl+"/"+theme_language, portalUrl+"/"+lang)} class="chLang" title="${langLabel}">${langLabel} </a></li> -->
117 <#else>
118 <!-- <li><a href=${fullUrl?replace(portalUrl, portalUrl+"/"+lang)} class="chLang" title="${langLabel}">${langLabel} </a></li> -->
119 </#if>
120 </#if>
121 </#list>
122
123<#assign languageEntryMap =
124 {
125 "displayStyle" : "ddmTemplate_1264879",
126 "displayCurrentLocale": "false",
127 "displayStyleGroupId": 32774
128 }
129/>
130<#assign languageEntry = freeMarkerPortletPreferences.getPreferences(languageEntryMap) />
131<@liferay_portlet["runtime"]
132 defaultPreferences=languageEntry
133 portletProviderAction=portletProviderAction.VIEW
134 instanceId="header_lang"
135 portletProviderClassName="com.liferay.portal.kernel.servlet.taglib.ui.LanguageEntry" />
136
137<#assign headerLinkLocales = 'en_HK,en_SG,en_MY'>
138<#assign urlRestruct = propsUtil.get("URL_RESTRUCTURING")!"">
139<#assign mobileUrlKey = themeDisplay.getLocale()+"."+siteType+"."+"Mobile_URL">
140<#assign web2mobileUrlKey = themeDisplay.getLocale()+"."+siteType+"."+"WEB2_Mobile_URL">
141<#assign langs = themeDisplay.getLocale().getLanguage() >
142<#assign lrHeaderlinkAccount = themeDisplay.getLocale()+"."+siteType+"."+"headerlink_account">
143<#assign lrHeaderlinkSendcv = themeDisplay.getLocale()+"."+siteType+"."+"headerlink_sendcv">
144<#assign lrHeaderlinkMyAccount = themeDisplay.getLocale()+"."+siteType+"."+"headerlink_myaccount">
145<#assign lrHeaderlinkProfile = themeDisplay.getLocale()+"."+siteType+"."+"headerlink_profile">
146<#assign lrHeaderlinkLogin = themeDisplay.getLocale()+"."+siteType+"."+"headerlink_login">
147<#assign lrHeaderlinkRegisterURL = themeDisplay.getLocale()+"."+siteType+"."+"headerlink_registerurl">
148
149
150 <li id="login"><a class="un-login" data-senna-off="true" href="${propsUtil.get(web2mobileUrlKey)}${propsUtil.get(lrHeaderlinkLogin)}/?lang=${langs}" onclick="return Hays_gaq_push(this.href)">${languageUtil.get( locale, "lr_Login")}</a></li>
151 <li id="create-an-account"><a data-senna-off="true" href="${propsUtil.get(web2mobileUrlKey)}${propsUtil.get(lrHeaderlinkRegisterURL)}/?lang=${langs}" >${languageUtil.get( locale, "lr_create_a_my_hays_account")}</a></li>
152 <li id="user-create" class="last"><a data-senna-off="true" href="/${propsUtil.get(lrHeaderlinkAccount)}/${propsUtil.get(lrHeaderlinkSendcv)}?lang=${langs}" id="btn_send_CV">${languageUtil.get( locale, "lr_SendyourCV")}</a></li>
153
154 </ul>
155 </nav>
156 <nav id="nav-user" class="usr-unhidden">
157 <ul>
158 <li>
159 ${languageUtil.get( locale, "wwGreeting")} <span id="user"></span>
160 </li>
161
162 <li id="my-account"><a data-senna-off="true" href="${propsUtil.get(web2mobileUrlKey)}/${propsUtil.get(lrHeaderlinkMyAccount)}/${propsUtil.get(lrHeaderlinkProfile)}/" onclick="return Hays_gaq_push(this.href)">${languageUtil.get( locale, "lr_MyAccount")}</a></li>
163 <li id="un-login"><a data-senna-off="true" href="${propsUtil.get(web2mobileUrlKey)}/${propsUtil.get(lrHeaderlinkAccount)}/logout/" onclick="return Hays_gaq_push(this.href)">${languageUtil.get( locale, "lr_Logout")}</a></li>
164
165
166 </ul>
167</nav>
168
169
170 <nav id="nav-main">
171 <ul>
172 <#if GlobalNavigation.getSiblings()?has_content>
173 <#list GlobalNavigation.getSiblings() as cur_GlobalNavigation>
174 <li class="first">
175 <#if themeDisplay.isSignedIn()>
176 <#if cur_GlobalNavigation.getData()?contains("/" + themeDisplay.getLocale().getLanguage()) && !cur_GlobalNavigation.getData()?contains("href=\"http" )>
177 ${cur_GlobalNavigation.getData()?replace("/" + themeDisplay.getLocale().getLanguage(), "/" + themeDisplay.getLocale().getLanguage() + "/web" + themeDisplay.getLayout().getGroup().getFriendlyURL())}
178 <#elseif !cur_GlobalNavigation.getData()?contains("href=\"http" )>
179 ${cur_GlobalNavigation.getData()?replace("href=\"", "href=\"/web" + themeDisplay.getLayout().getGroup().getFriendlyURL())}
180 <#else>
181 ${cur_GlobalNavigation.getData()}
182 </#if>
183 <#else>
184 ${cur_GlobalNavigation.getData()}
185 </#if>
186 </li>
187 </#list>
188 </#if>
189 <#if WorldwideTitle.WorldwideLinksHTML.getSiblings()?size gt 0 && WorldwideTitle.WorldwideLinksHTML.getData()?has_content && WorldwideTitle.getData()?has_content>
190 <li><a href="#" id="toggle-worldwide">${WorldwideTitle.getData()}<i class="icon-sort-down"></i></a></li>
191 <#else>
192 <li><a href="#" id="toggle-worldwide">${WorldwideTitle.getData()}</a></li>
193 </#if>
194
195 </ul>
196 <div id="hays-worldwide">
197 <a href="#" class="btn-close icon-glyph-3 icon-cancel"></a>
198 <div class="row">
199 <#assign worldColNum = 1>
200 <#assign worldColMax = 5>
201 <#if WorldwideTitle.WorldwideLinksHTML.getSiblings()?has_content>
202 <#assign nNumRecords = WorldwideTitle.WorldwideLinksHTML.getSiblings()?size>
203 <#assign nPos = 0>
204 <#if (nNumRecords%worldColMax)==0>
205 <#assign numLinksInColoumn=nNumRecords/worldColMax>
206 <#else>
207 <#assign numLinksInColoumn=(nNumRecords/worldColMax)+1>
208 </#if>
209 <#list WorldwideTitle.WorldwideLinksHTML.getSiblings() as cur_WorldwideTitle>
210 <#if nPos==0>
211 <ul class="hays-col hays-col-2">
212 </#if>
213 <li>
214 <#if themeDisplay.isSignedIn()>
215 <#if cur_WorldwideTitle.getData()?contains("/" + themeDisplay.getLocale().getLanguage()) && !cur_WorldwideTitle.getData()?contains("href=\"http" )>
216 ${cur_WorldwideTitle.getData()?replace("/" + themeDisplay.getLocale().getLanguage(), "/" + themeDisplay.getLocale().getLanguage() + "/web" + themeDisplay.getLayout().getGroup().getFriendlyURL())}
217 <#elseif !cur_WorldwideTitle.getData()?contains("href=\"http")>
218 ${cur_WorldwideTitle.getData()?replace("href=\"", "href=\"/web" + themeDisplay.getLayout().getGroup().getFriendlyURL())}
219 <#else>
220 ${cur_WorldwideTitle.getData()}
221 </#if>
222 <#else>
223 ${cur_WorldwideTitle.getData()}
224 </#if>
225 </li>
226 <#if worldColNum%numLinksInColoumn == 0>
227 </ul>
228 <ul class="hays-col hays-col-2">
229 </#if>
230 <#assign nPos=nPos+1>
231 <#assign worldColNum=worldColNum+1>
232 </#list>
233 </#if>
234 </ul>
235 </div>
236 </div>
237 <div id="hays-employer-subNav">
238 <a href="#" class="btn-close icon-glyph-3 icon-cancel"></a>
239 <div class="row">
240 <#assign employerColNum = 1>
241 <#assign employerColMax = 5>
242 <#if TabNavigationEmployer.getSiblings()?has_content>
243 <#assign nNumRecords = TabNavigationEmployer.getSiblings()?size>
244 <#assign nPos = 0>
245 <#if (nNumRecords%employerColMax)==0>
246 <#assign numLinksInColoumn=nNumRecords/employerColMax>
247 <#else>
248 <#assign numLinksInColoumn=(nNumRecords/employerColMax)+1>
249 </#if>
250 <#list TabNavigationEmployer.getSiblings() as cur_EmployerTitle>
251 <#if nPos==0>
252 <ul class="hays-col hays-col-2">
253 </#if>
254 <li>
255 <a class="here" target="" href="${cur_EmployerTitle.EmployerLink.getData()}">
256 ${cur_EmployerTitle.getData()}
257 </a>
258 </li>
259 <#if employerColNum%numLinksInColoumn == 0>
260 </ul>
261 <ul class="hays-col hays-col-2">
262 </#if>
263 <#assign nPos=nPos+1>
264 <#assign employerColNum=employerColNum+1>
265 </#list>
266 </#if>
267 </ul>
268 </div>
269 </div>
270 </nav>
271 <nav id="nav-sub">
272 <#assign parentNodeId = "">
273 <#if layout.getParentLayoutId() != 0>
274 <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
275 <#assign parentNodeId = LayoutLocalService.getLayout(themeDisplay.getScopeGroupId(), false, layout.getParentLayoutId()).getExpandoBridge().getAttribute("NodeId")>
276 </#if>
277 <#assign currentNodeId = layout.getExpandoBridge().getAttribute("NodeId")>
278 <#if parentNodeId == "job-seeker" || currentNodeId == "job-seeker">
279 <#if TabNavigationJobSeeker.getSiblings()?has_content>
280 <ul>
281 <#list TabNavigationJobSeeker.getSiblings() as cur_TabNavigationJobSeeker>
282 <li class="first">
283 <a class="here" target="" href="${cur_TabNavigationJobSeeker.JobseekerLink.getData()}">
284 <span>${cur_TabNavigationJobSeeker.getData()}</span>
285 </a>
286 </li>
287 </#list>
288 </ul>
289 </#if>
290 </#if>
291
292 <#if parentNodeId == "expertise" || currentNodeId == "expertise">
293 <#if TabNavigationEmployer.getSiblings()?has_content>
294 <ul>
295 <#list TabNavigationEmployer.getSiblings() as cur_TabNavigationEmployer>
296 <li class="first">
297 <a class="here" target="" href="${cur_TabNavigationEmployer.EmployerLink.getData()}">
298 <span>${cur_TabNavigationEmployer.getData()}</span>
299 </a>
300 </li>
301 </#list>
302 </ul>
303 </#if>
304 </#if>
305 </nav>
306</div>