Register of Interests

Register of Interests

Contact Information
phone
(345) 244-3685
Contact Information
phone
Phone:
(345) 244-3685
email
Email:
roi@standardsinpubliclifecommission.ky
An error occurred while processing the template.
Java method "jdk.proxy148.$Proxy979.getArticleByUrlTitle(long, String)" threw an exception when invoked on jdk.proxy148.$Proxy979 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@563254ac"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign departmentJSON = JournalArtic...  [in template "20097#20123#110842" at line 9, column 17]
----
1<div class ="list-eservices-container" style="display:grid; grid-template-columns: repeat(auto-fit, minmax(max(500px,2vw), 1fr)); grid-gap: 2rem; 
2"> 
3	 
4 
5<#assign ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService")/> 
6		<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
7	  <#assign currentURLSplit = currentURL?split("/")/> 
8		<#assign departmentTitle = currentURLSplit[6]?keep_before("?")/> 
9		<#assign departmentJSON = JournalArticleLocalService.getArticleByUrlTitle(groupId, departmentTitle)/> 
10	  <#assign departmentId = departmentJSON.resourcePrimKey/> 
11	<#if entries?has_content> 
12		<#list entries as curEntry> 
13			 <#assign fields = curEntry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues()/> 
14			 <#assign original_journal_article=JournalArticleLocalService.fetchArticle(curEntry.classPK-1)/> 
15			 <#assign current_version_journal_article=JournalArticleLocalService.fetchArticle(groupId,original_journal_article.getArticleId())/> 
16			 <#assign docXml=current_version_journal_article.getDocument()/> 
17			 <#assign asset_type = JournalArticleLocalService.getArticle(curEntry.classPK-1).getDDMStructure().getName(locale)?trim/> 
18						<#if asset_type == 'eService'> 
19									<#if docXml.selectSingleNode("/root/dynamic-element[@name='department_name']/dynamic-content")?has_content> 
20											<#assign taggedDepartmentJSON = docXml.selectSingleNode("/root/dynamic-element[@name='department_name']/dynamic-content").getText()/> 
21									</#if> 
22									<#if docXml.selectSingleNode("/root/dynamic-element[@name='service_url']/dynamic-content")?has_content> 
23											<#assign service_url = docXml.selectSingleNode("/root/dynamic-element[@name='service_url']/dynamic-content").getText()/> 
24									</#if> 
25							<#if taggedDepartmentJSON != '{}'>	 
26							<#assign taggedDepartmentClassPK = taggedDepartmentJSON?eval.classPK?number/> 
27								</#if> 
28							<#if (taggedDepartmentClassPK == departmentId)> 
29		 
30          <div class="row search_result_item " style="padding: 1.5rem 1rem 1rem 0.5rem; margin: 0 0 1rem 0 !important;"> 
31						<div class="col-md-10 asset_title"> 
32							 <a href="${service_url}"  class="is-eservice" style="color: #0067B1" onclick="recordClick('${current_version_journal_article.articleId}', '${curEntry.getTitle(locale)}', '${service_url}'); return false;"> 
33                                ${curEntry.getTitle(locale)} 
34                            </a> 
35						</div>						 
36						<#if docXml.selectSingleNode("/root/dynamic-element[@name='short_description']/dynamic-content")?has_content> 
37							<#assign short_description = docXml.selectSingleNode("/root/dynamic-element[@name='short_description']/dynamic-content").getText()/> 
38	<div class="col-md-12 asset_desc"> 
39								${short_description} 
40							</div> 
41						</#if> 
42<#if docXml.selectSingleNode("/root/dynamic-element[@name='support_number']/dynamic-content")?has_content> 
43							<#assign support_number = docXml.selectSingleNode("/root/dynamic-element[@name='support_number']/dynamic-content").getText()/> 
44								<div class="col-md-12 pt-1"> 
45									<#if support_number?has_content> 
46										<span class="support_label">Phone:</span> <a href="tel:${support_number}" class="support_value">${support_number}</a> 
47									<#else> 
48										<span class="support_label">Phone:</span> <span style="font-weight:normal">Not available</span> 
49									</#if> 
50								</div> 
51						</#if> 
52						<#if docXml.selectSingleNode("/root/dynamic-element[@name='support_email']/dynamic-content")?has_content> 
53							<#assign support_email = docXml.selectSingleNode("/root/dynamic-element[@name='support_email']/dynamic-content").getText()/> 
54 
55								<div class="col-md-12 pt-1"> 
56									<#if support_email?has_content> 
57										<span class="support_label">Email:</span> <a href="mailto:${support_email}" class="support_value">${support_email}</a> 
58									<#else> 
59										<span class="support_label">Email:</span> <span style="font-weight:normal">Not available</span> 
60									</#if> 
61								</div> 
62						</#if> 
63										<div class="col-md-2 dep_name_responsive text-center"> 
64									<#if docXml.selectSingleNode("/root/dynamic-element[@name='department_name']/dynamic-content")?has_content> 
65							<#assign department_name = docXml.selectSingleNode("/root/dynamic-element[@name='department_name']/dynamic-content").getText()?eval/> 
66							<#if department_name.title??> 
67								<#assign dep_old_id = JournalArticleLocalService.fetchArticle(getterUtil.getLong(department_name.classPK)-1) /> 
68								<#assign new_dep_id=JournalArticleLocalService.fetchArticle(groupId,dep_old_id.getArticleId())/> 
69								<#assign depXml=new_dep_id.getDocument()/> 
70									<#if depXml.selectSingleNode("/root/dynamic-element[@name='abbreviation']/dynamic-content")?has_content> 
71										<#if depXml.selectSingleNode("/root/dynamic-element[@name='website_url']/dynamic-content")?has_content> 
72											<#if depXml.selectSingleNode("/root/dynamic-element[@name='website_url']/dynamic-content")?contains("https") || depXml.selectSingleNode("/root/dynamic-element[@name='website_url']/dynamic-content")?contains("http")> 
73												<a href="${depXml.selectSingleNode("/root/dynamic-element[@name='website_url']/dynamic-content").getText()}" target="_blank">${depXml.selectSingleNode("/root/dynamic-element[@name='abbreviation']/dynamic-content").getText()}</a> 
74											<#else> 
75												<#assign new_url = 'http://' + depXml.selectSingleNode("/root/dynamic-element[@name='website_url']/dynamic-content").getText()/> 
76												<a href="${new_url}" target="_blank">${depXml.selectSingleNode("/root/dynamic-element[@name='abbreviation']/dynamic-content").getText()}</a> 
77											</#if> 
78											<#else> 
79												${depXml.selectSingleNode("/root/dynamic-element[@name='abbreviation']/dynamic-content").getText()} 
80										</#if> 
81										<#else> 
82																	${department_name.title}</a> 
83											 
84									</#if> 
85									</#if> 
86						</#if> 
87 
88								</div> 
89											 
90			</div> 
91			</#if> 
92								</#if> 
93							 
94							 
95			</#list> 
96		</#if> 
97 
98									 
99</div> 
100							 
101		 
102 
103										<style> 
104				.pagination-results{ 
105					visibility:hidden; 
106
107				.search-results-container{ 
108				 
109
110				.asset_title { 
111				font-size:1.4rem; 
112				font-weight: 700; 
113				line-height: 1.25rem; 
114				color: var(--color-action-primary-default); 
115
116				.asset_desc { 
117				font-size:1rem; 
118					padding-top:0.4rem; 
119					padding-bottom:0.4rem; 
120
121				.search_result_item { 
122				border: 0.0625rem solid var(--color-neutral-3); 
123				border-radius: 0.5rem; 
124				margin-bottom: 1rem; /*1rem 0*/ 
125					 
126
127				 
128				.dep_name_responsive { 
129				display:none; 
130
131				 
132				@media only screen and (max-width: 750px) { 
133					.dep_name { 
134					display:none;  
135					}  
136					.dep_name_responsive { 
137					display:block; 
138						padding: 0.125rem 0.5rem; 
139background: var(--color-neutral-5); 
140border-radius: 0.25rem; 
141color: var(--color-neutral-0); 
142font-weight: 700; 
143font-size: 0.8125rem; 
144line-height: 1.25rem; 
145						margin-top:1rem; 
146
147
148				 
149				.support_label  { 
150				font-size:1rem; 
151
152				 
153				.support_value { 
154				font-size:1rem; 
155
156											 
157											 
158				 
159				@media only screen and (max-width: 481px) { 
160					.ml-10, .mx-10, .mr-10{ 
161						margin-left: 0 !important; 
162						margin-right: 0 !important; 
163
164					 
165					.pl-5, .px-5{ 
166						padding-left: var(--spacer-4, 3rem) !important; 
167
168					 
169					.list-eservices-container { 
170					display: block !important; 
171
172					 
173					/*.search_result_item{ 
174		margin-right: 4rem !important; 
175		padding-right: 4rem !important; 
176	}*/ 
177	 
178	.asset_desc{ 
179		padding-right: 4rem !important; 
180
181	 
182	.dep_name_responsive{ 
183		margin-right: 4rem; 
184
185					 
186					.row{ 
187						display: block !important; 
188
189					 
190					/*.asset_title{ 
191						padding-right:4rem !important; 
192					}*/ 
193					 
194
195				 
196				@media only screen and (max-width: 641px) { 
197					.ml-10, .mx-10, .mr-10{ 
198						margin-left: 0 !important; 
199						margin-right: 0 !important; 
200
201					 
202					.pl-5, .px-5{ 
203						padding-left: var(--spacer-4, 3rem) !important; 
204
205					 
206
207     
208@media only screen and (max-width: 769px) { 
209    .ml-10, .mx-10, .mr-10{ 
210						margin-left: 0 !important; 
211			margin-right: 0 !important; 
212
213	 
214	.pl-5, .px-5{ 
215						padding-left: var(--spacer-4, 3rem) !important; 
216
217	 
218	 
219
220				 
221			</style> 
222							 
223<script> 
224function recordClick(eserviceId, eserviceName, serviceUrl) { 
225    const authToken = Liferay.authToken; 
226     
227    fetch('/o/clickthrough/record-click/' + eserviceId + '/' + eserviceName + '/?p_auth=' + authToken, { 
228        method: 'POST', 
229        headers: { 
230            'Content-Type': 'application/json', 
231        }, 
232        credentials: 'include' 
233    }) 
234    .catch(error => { 
235        // Error handling without logging 
236    }) 
237    .finally(() => { 
238        // Check if dialog exists 
239        const dialog = document.getElementById("myDialog"); 
240         
241        if (dialog && dialog.style.display !== 'block') { 
242            window.location.href = serviceUrl; 
243
244        else { 
245            window.location.href = serviceUrl; 
246
247    }); 
248     
249    return false; 
250
251</script>