1<#assign namespace = renderResponse.getNamespace()>
2<#assign journalService = serviceLocator.findService('com.liferay.journal.service.JournalArticleService')/>
3<#assign hits = searchResultsPortletDisplayContext.getDocuments()>
4
5<div class="search__results search--locresults" id="search__results-${namespace}">
6 <div class="explore__right">
7 <div class="explore__rightinner">
8 <h2 class="explore__heading">
9 <span>Global locations</span>
10 <span class="explore__filtericon"></span>
11 </h2>
12 <div class="explore__results">
13 <div class="accordion" id="accordion-${namespace}">
14 <#if entries?has_content>
15
16 <#assign locationDetails = [] />
17 <#assign renderingCountry = "--NULL--" />
18
19 <#list entries as entry>
20 <#if !entry.isTemporarilyUnavailable()>
21 <#assign hit = hits[entry?index] />
22
23<#if hit?? && hit.articleId?? && hit.articleId?has_content>
24
25 <#assign
26 journalArticle = journalService.getArticle(
27 getterUtil.getLong(hit.groupId),
28 hit.articleId
29 )
30 document = saxReaderUtil.read(
31 journalArticle.getContentByLocale(locale.toString())
32 )
33 rootElement = document.getRootElement()
34 />
35
36 <#-- Country -->
37 Article ID : ${hit.articleId!''}<br>
38
39<#if rootElement??>
40 ROOT ELEMENT FOUND<br>
41<#else>
42 ROOT ELEMENT IS NULL<br>
43</#if>
44
45<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Country']") />
46
47<#if xPathSelector??>
48 XPATH FOUND<br>
49<#else>
50 XPATH NULL<br>
51</#if>
52
53<#attempt>
54 <#assign countryNode = xPathSelector.selectSingleNode(rootElement) />
55 Country Node Found<br>
56<#recover>
57 Country Node Failed for Article ${hit.articleId!''}<br>
58</#recover>
59
60
61 <#-- City -->
62 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='City']") />
63 <#assign cityNode = xPathSelector.selectSingleNode(rootElement) />
64 <#assign city = cityNode?? ? then(cityNode.getStringValue()?trim, "") />
65
66 <#-- Address -->
67 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Address']") />
68 <#assign addressNode = xPathSelector.selectSingleNode(rootElement) />
69 <#assign address = addressNode?? ? then(addressNode.getStringValue()?trim?replace("\n","<br/>"), "") />
70
71 <#-- ContactDetails -->
72 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='ContactDetails']") />
73 <#assign contactNode = xPathSelector.selectSingleNode(rootElement) />
74 <#assign contactDetails = contactNode?? ? then(contactNode.getStringValue()?trim?replace("\n","<br/>"), "") />
75
76 <#-- MapLink -->
77 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='MapLink_TitleFieldSet']//dynamic-element[@name='MapLink_External']") />
78 <#assign mapNode = xPathSelector.selectSingleNode(rootElement) />
79 <#assign mapLink = mapNode?? ? then(mapNode.getStringValue()?trim, "") />
80
81 <#assign locationDetail = {
82 'country': country,
83 'city': city,
84 'address': address,
85 'contactDetails': contactDetails,
86 'mapLink': mapLink
87 } />
88
89</#if>
90 <#if country == renderingCountry || renderingCountry == '--NULL--' >
91 <#assign
92 renderingCountry = country
93 locationDetails = locationDetails + [locationDetail]
94 />
95 <#else>
96 <@renderCountryLocations countryName=renderingCountry locationDetails=locationDetails />
97 <#assign
98 renderingCountry = country
99 locationDetails = [locationDetail]
100 />
101 </#if>
102 <#if entry?is_last>
103 <@renderCountryLocations countryName=country locationDetails=locationDetails />
104 </#if>
105 </#if>
106 </#list>
107 </#if>
108 </div>
109 </div>
110 </div>
111 </div>
112</div>
113
114<#macro renderCountryLocations countryName locationDetails>
115 <#assign sectionId = random.nextInt() />
116 <div class="jmaccrdn__section">
117 <div class="jmaccrdn__title" role="button" tabindex="0" data-toggle="collapse" data-target="#section${namespace}${sectionId}"
118 aria-expanded="true" aria-controls="section${namespace}${sectionId}">
119 <p>
120 ${countryName}
121 <span class="jmaccrdn__arrow"></span>
122 </p>
123 </div>
124 <div id="section${namespace}${sectionId}" class="jmaccrdn__body collapse" data-parent="#accordion-${namespace}">
125 <div class="jmaccrdn__answer-sec">
126 <#list locationDetails as locationDetail>
127 <div class="row country-locations">
128 <div class="col-md-4">
129 <div class="jmcountry-title">City</div>
130 <div>${locationDetail.city}</div>
131 </div>
132 <div class="col-md-4">
133 <div class="jmcountry-title">Address</div>
134 <div>${locationDetail.address}</div>
135 </div>
136 <div class="col-md-4">
137 <div class="jmcountry-title">Contact Details</div>
138 <div>${locationDetail.contactDetails}</div>
139 <div class="map-link-cont">
140 <a class="map-link" href="${locationDetail.mapLink}" target="_blank">Map Link</a>
141 </div>
142 </div>
143 </div>
144 </#list>
145 </div>
146 </div>
147 </div>
148</#macro>
149
150<script>
151$(function() {
152 $("#search__results-${namespace}").parent().find(".pagination-bar").hide();
153 $('button.dropdown-toggle.page-link[role="combobox"]').attr('aria-label', 'Select number of entries per page');
154});
155</script>
156
157<style>
158
159@media (min-width: 320px) and (max-width: 650px) {
160 .search__results .explore__right {
161 margin-top: -16%;
162 }
163 .search--locresults .jmaccrdn__title p {
164 font-size: 20px !important;
165 }
166 .explore__heading{
167 padding-left: 14.2px !important;
168 padding-right: 14px !important;
169 }
170 .search--locresults .jmaccrdn__title p {
171 padding: 25px 25px 25px 18px;
172 }
173}
174</style>