Our locations
We have offices in Leeds, London and Manchester and we’d like you to be able to come to one of those offices for at least 2-3 days a week, working remotely for the rest of the week.
We have offices in Leeds, London and Manchester and we’d like you to be able to come to one of those offices for at least 2-3 days a week, working remotely for the rest of the week.
The following has evaluated to null or missing: ==> propsUtil.get(ucmLocaleKey) [in template "64056#64102#365043" at line 28, column 19] ---- 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: #assign locale = propsUtil.get(ucmLoc... [in template "64056#64102#365043" at line 28, column 1] ----
1<div id="outer-footer" class="updatedFooter" style="padding-left: 0px; width: 1640px;">
2 <div id="inner-footer-expert" class="">
3 <div id="footerLogo">
4 <#--<#if FooterLogo.getData()?? && FooterLogo.getData() != "">
5 <#assign footerLogoHTML = "${FooterLogo.getData()}"/>
6 <#if (footerLogoHTML?length > 0)>
7 ${footerLogoHTML}
8 <#else>
9 <img src="https://www/hays.co.uk/cs/HaysMicroSites/assets/img/hayslogo.gif" id="defaultLogo" alt="Hays
10 footer logo">
11 </#if>
12 </#if>-->
13 <#assign haysLogo = propsUtil.get("HAYS_LOGO")/>
14 <img src="${haysLogo}" id="defaultLogo" alt="Hays
15 footer logo">
16 </div>
17 <div id="footerLogo-Links">
18 <#if Link.getSiblings()?has_content>
19 <#list Link.getSiblings() as cur_Link>
20 <#if cur_Link.getData()?? && cur_Link.getData() != "">
21 <#assign linkData = "${cur_Link.getData()}"/>
22 ${linkData}
23 </#if>
24 </#list>
25 </#if>
26 </div>
27 <#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale">
28<#assign locale = propsUtil.get(ucmLocaleKey)/>
29<#assign apiUrl = propsUtil.get("WEB72_API_DOMAIN")/>
30
31<#assign lr74CutoverCountryCode = propsUtil.get("LR74_CUTOVER_COUNTRY_CODE")/>
32<#if lr74CutoverCountryCode??>
33<#list lr74CutoverCountryCode?split(",") as countryCode>
34 <#if countryCode = themeDisplay.getLocale()?keep_after_last("_") >
35 <#assign apiUrl = propsUtil.get("API_DOMAIN")/>
36 </#if>
37</#list>
38</#if>
39
40<#attempt>
41
42<#if httpUtil.URLtoString(apiUrl+"/o/HaysContentStructure/getcontentstructure/expertFooter/"+locale)??>
43<#assign response = httpUtil.URLtoString(apiUrl+"/o/HaysContentStructure/getcontentstructure/expertFooter/"+locale)>
44<#assign responseObj = jsonFactoryUtil.createJSONObject(response)>
45<#assign getResponseResultArray = responseObj.getJSONArray("results")>
46<div id="footer-bottom">
47 <#if getResponseResultArray.length() gt 0>
48 <#assign siteUrl = getResponseResultArray.get(0).siteUrl>
49
50 <#if getResponseResultArray.get(0).getJSONArray("GroupHeading")?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length()?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length() gt 1>
51
52 <#assign groupHeadingArr = getResponseResultArray.get(0).getJSONArray("GroupHeading")>
53 <div class="row single-col gpHeading">
54 <div class="col col-12">
55 <nav>
56 <ul>
57 <#list 0 ..< groupHeadingArr.length()?number as i>
58 <#if groupHeadingArr.get(i).Link?starts_with("/")>
59 <#assign linkUrl = siteUrl + groupHeadingArr.get(i).Link>
60 <li>
61 <a href="${linkUrl}" target="">${groupHeadingArr.get(i).GroupHeading}</a>
62 </li>
63 <#else>
64 <li>
65 <a href="${groupHeadingArr.get(i).Link}" target="">${groupHeadingArr.get(i).GroupHeading}</a>
66 </li>
67 </#if>
68 </#list>
69 </ul>
70 </nav>
71 </div>
72 </div>
73 <#elseif getResponseResultArray.get(0).getJSONArray("FooterLink")??>
74 <#assign FooterLinkArr = getResponseResultArray.get(0).getJSONArray("FooterLink")>
75 <div class="row single-col">
76 <div class="col col-12">
77 <nav>
78 <ul>
79 <#list 0 ..< FooterLinkArr.length()?number as i>
80 <#assign linkUrl = FooterLinkArr.get(i).FooterLink?replace("href=\"/", "href=\""+siteUrl+"/" ) >
81 <li>
82 ${linkUrl}
83 </li>
84 </#list>
85 </ul>
86 </nav>
87 </div>
88 </div>
89
90 </#if>
91 <div class="row single-col">
92 <div class="col col-12">
93 <p class="last">${getResponseResultArray.get(0).CopyrightHTML}</p>
94 </div>
95 </div>
96 </#if>
97</div>
98</#if>
99<#recover>
100
101</#attempt>
102
103 <div id="copyright-text">
104 <#if CopyrightText?? && CopyrightText.getData()?? && CopyrightText.getData() != "">
105 ${CopyrightText.getData()}
106 </#if>
107 </div>
108 </div>
109</div>
110<script>
111$(document).ready(function(){
112 if((Liferay.ThemeDisplay.getLanguageId() != "en_GB") && (location.href.indexOf("/web/") != -1)) {
113 console.log("link update required on the site");
114 $('a').each(function(index) {
115 var layoutRelativeUrl = Liferay.ThemeDisplay.getLayoutRelativeURL();
116 var getSiteUrl = layoutRelativeUrl.substring(0, layoutRelativeUrl.lastIndexOf("/"));
117 var linkVal = $(this).attr("href");
118 if((typeof linkVal !== "undefined") && linkVal.indexOf("https") == -1 && linkVal.indexOf("/")!= -1 && (linkVal.indexOf("/") === linkVal.lastIndexOf("/"))){
119 var updatedLink = getSiteUrl + linkVal ;
120 $(this).attr("href", updatedLink)
121 console.log("link updated - " + updatedLink);
122 }
123 });
124 }
125});
126</script>