Header Navigation

Mobile Navigation

Diversity and Inclusion Hero

Diversity and Inclusion

Diversity and Inclusion policies practiced within organisation

Diversity and Inclusion content

Policy Statement

Spectrum is one of the leading providers of specialist care services in the UK for autistic people,

associated conditions, learning disabilities and complex behaviours. We recognise the ultimate value of the individual and their rights to be treated with dignity, respect whilst supporting individualsto fully participate in community life. The principles of positive behavioural support and person-centred planning underpin the services we provide. Spectrum is an equal opportunity employer. It is Spectrum’s policy to treat all service users, team members and job applicants fairly and equally, regardless of sex, pregnancy, trans-gender status, sexual orientation, religion or belief, marital status, civil partnership status, age or perceived age, race, colour, nationality, national or ethnic origins or disability. Furthermore, Spectrum will monitor the composition of the workforce to ensure that this policy is effective.Through this policy and procedure and the training and development of managers and team members, Spectrum will do all it can to promote good practice in this area to eliminate discrimination and harassment as far as is reasonably possible.

Diversity and Inclusion

CTA Footer

Footer

حصل خطأ عند معالجة القالب.
The following has evaluated to null or missing:
==> propsUtil.get(ucmLocaleKey)  [in template "64056#64102#365043" at line 5, 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 5, column 1]
----
1<div id="outer-footer" class="updatedFooter" style="padding-left: 0px; width: 1640px;"> 
2	 <div id="inner-footer-expert" class=""> 
3 
4<#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale"> 
5<#assign locale = propsUtil.get(ucmLocaleKey)/> 
6<#assign apiUrl = propsUtil.get("WEB72_API_DOMAIN")/> 
7 
8<#assign lr74CutoverCountryCode = propsUtil.get("LR74_CUTOVER_COUNTRY_CODE")/> 
9<#assign hays_logo = propsUtil.get("HAYS_LOGO")/> 
10 
11<#if lr74CutoverCountryCode??> 
12<#list lr74CutoverCountryCode?split(",") as countryCode> 
13 <#if countryCode = themeDisplay.getLocale()?keep_after_last("_") > 
14    <#assign apiUrl = propsUtil.get("API_DOMAIN")/> 
15 </#if> 
16</#list> 
17</#if> 
18 
19<#attempt> 
20 
21<#assign PortalCacheHelperUtil = staticUtil["com.liferay.portal.kernel.cache.PortalCacheHelperUtil"]> 
22<#assign PortalCacheManagerNames = staticUtil["com.liferay.portal.kernel.cache.PortalCacheManagerNames"]> 
23<#assign cacheName = "EXPERT_FOOTER_TEMPLATE_CACHE"> 
24<#assign cacheKey = "footerResponse_" + locale> 
25<#assign cache = PortalCacheHelperUtil.getPortalCache(PortalCacheManagerNames.SINGLE_VM,cacheName)> 
26<#assign response = (cache.get(cacheKey))?default("")> 
27 
28 
29<#if response?has_content> 
30<#assign responseObj = jsonFactoryUtil.createJSONObject(response)> 
31<#else> 
32<#assign response = httpUtil.URLtoString(apiUrl+"/o/HaysContentStructure/getcontentstructure/expertFooter/"+locale)> 
33<#assign responseObj = jsonFactoryUtil.createJSONObject(response)> 
34  ${cache.put(cacheKey,response,86400)} 
35</#if> 
36 
37<#if  responseObj?? && responseObj.results?? && responseObj.results?has_content> 
38<#assign getResponseResultArray = responseObj.getJSONArray("results")> 
39<div id="footer-bottom"> 
40 <#if getResponseResultArray.length() gt 0> 
41 <#assign siteUrl = getResponseResultArray.get(0).siteUrl> 
42 
43 <#if getResponseResultArray.get(0).getJSONArray("GroupHeading")?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length()?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length() gt 1> 
44 
45 <#assign groupHeadingArr = getResponseResultArray.get(0).getJSONArray("GroupHeading")> 
46 	<div class="row single-col gpHeading"> 
47	 <div class="col col-12"> 
48		 <nav> 
49			<ul> 
50			<#list 0 ..< groupHeadingArr.length()?number as i> 
51			    <#if groupHeadingArr.get(i).Link?starts_with("/")> 
52			     <#assign linkUrl = siteUrl + groupHeadingArr.get(i).Link> 
53					<li> 
54						<a href="${linkUrl}" target="">${groupHeadingArr.get(i).GroupHeading}</a> 
55					</li> 
56				<#else> 
57				    <li> 
58						<a href="${groupHeadingArr.get(i).Link}" target="">${groupHeadingArr.get(i).GroupHeading}</a> 
59					</li> 
60				</#if> 
61			</#list> 
62			</ul> 
63		  </nav> 
64		 </div> 
65	  </div> 
66	 <#elseif getResponseResultArray.get(0).getJSONArray("FooterLink")??> 
67	 <#assign FooterLinkArr = getResponseResultArray.get(0).getJSONArray("FooterLink")> 
68	 <div class="row single-col gpHeading"> 
69		<div class="col col-12"> 
70		 <nav> 
71			<ul> 
72			<#list 0 ..< FooterLinkArr.length()?number as i> 
73			     <#assign linkUrl = FooterLinkArr.get(i).FooterLink?replace("href=\"/", "href=\""+siteUrl+"/" ) > 
74					<li> 
75						${linkUrl} 
76					</li> 
77			</#list> 
78			</ul> 
79		  </nav> 
80		 </div> 
81	  </div> 
82 
83	 </#if> 
84 
85 
86	 	<div class="footer-added"> 
87 			<img src="${hays_logo}"></img> 
88 			<div class="copyright"> 
89			<p> 
90	    	<p class="last">${getResponseResultArray.get(0).CopyrightHTML}</p> 
91 
92			</p> 
93			</div> 
94			</div> 
95	</#if> 
96</div> 
97</#if> 
98<#recover> 
99 
100</#attempt> 
101 
102 
103	</div> 
104</div> 
105<script> 
106window.addEventListener('DOMContentLoaded', function () { 
107    var consent = document.getElementById("teconsent"); 
108 
109    // Find the <ul> inside the nav of gpHeading 
110    var ulElement = document.querySelector(".gpHeading nav ul"); 
111 
112    if (consent && ulElement) { 
113        var liWrapper = document.createElement("li"); 
114        liWrapper.appendChild(consent); 
115        ulElement.appendChild(liWrapper); 
116    } else { 
117        console.log("Consent element or target UL not found."); 
118
119}); 
120 
121$(document).ready(function(){ 
122    if((Liferay.ThemeDisplay.getLanguageId() != "en_GB") && (location.href.indexOf("/web/") != -1)) { 
123	console.log("link update required on the site"); 
124	$('a').each(function(index) { 
125		var layoutRelativeUrl = Liferay.ThemeDisplay.getLayoutRelativeURL(); 
126        var getSiteUrl = layoutRelativeUrl.substring(0, layoutRelativeUrl.lastIndexOf("/")); 
127		var linkVal = $(this).attr("href"); 
128		if((typeof linkVal !== "undefined") && linkVal.indexOf("https") == -1 && linkVal.indexOf("/")!= -1 && (linkVal.indexOf("/") === linkVal.lastIndexOf("/"))){ 
129		var updatedLink = getSiteUrl + linkVal ; 
130		$(this).attr("href", updatedLink) 
131		console.log("link updated - " + updatedLink); 
132
133	}); 
134
135}); 
136</script>