1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
3
4
5<#assign url=themeDisplay.getURLCurrent() />
6<#assign params=url?split('&') />
7<#assign selectedCategoriesId=[] />
8
9
10
11<div class="c-search-result-template">
12<#if !entries?has_content>
13
14
15
16
17<#else>
18<#--
19 <#if selectedCategoriesId?has_content>
20 <div class="c-selected-category-list">
21 <#list selectedCategoriesId as categoryId >
22 <#assign id=categoryId?number />
23 <#assign category=AssetCategoryLocalService.getAssetCategory(id) />
24 <div class="c-tag-dismissable">
25 ${category.getName()}
26 <i class="c-icon c-icon--close-gray"></i>
27 </div>
28 </#list>
29 <button class="btn-unstyled facet-clear-btn clear" onclick="clearAll()">
30 Clear all
31 </button>
32 </div>
33 </#if>
34 -->
35<div class="c-selected-category-list"></div>
36<div class="display-list">
37
38
39
40<ul class="list-group" id="search-results-display-list">
41<#list entries as entry>
42 <#if !(entry.getViewURL()?contains("assetEntryId"))>
43<li class="list-group-item list-group-item-flex">
44<div class="autofit-col">
45<#if entry.isThumbnailVisible()>
46<div class="sticker">
47
48<img
49 alt="${languageUtil.get(locale, "thumbnail")}"
50 class="sticker-img"
51 src="${entry.getThumbnailURLString()}"
52 />
53
54</div>
55<#elseif entry.isUserPortraitVisible() && stringUtil.equals(entry.getClassName(), userClassName)>
56<@liferay_ui["user-portrait"] userId=entry.getAssetEntryUserId() />
57<#elseif entry.isIconVisible()>
58<span class="sticker sticker-static">
59<@clay.icon symbol="${entry.getIconId()}" />
60</span>
61</#if>
62</div>
63
64<div class="autofit-col autofit-col-expand">
65<section class="autofit-section">
66<#if entry.isAssetCategoriesOrTagsVisible()>
67<div class="search-document-tags text-default">
68<#assign assetEntry = assetEntryLocalService.getEntry(entry.getClassName(), entry.getClassPK()) />
69<#assign categories=assetEntry.getCategories()/>
70<#list categories as category>
71<#assign categoryName=category.getName()/>
72 <h6 class="asset-category">${category.getName()}</h6>
73
74</#list>
75</div>
76</#if>
77<div class="c-mt-0 list-group-title">
78
79<a class="list-title" href="${entry.getViewURL()}" target="_self">
80
81
82 ${entry.getHighlightedTitle()}
83</a>
84
85</div>
86<div class="search-results-metadata">
87
88<#if entry.isContentVisible()>
89<p class="list-group-subtext">
90<span class="subtext-item">
91 <#assign lenghth=entry.getContent()?length
92 content=entry.getContent()
93 laststring=content?substring(lenghth-4,lenghth)/>
94 <#if !(laststring?contains("..."))>
95 ${entry.getContent()}...
96 </#if>
97
98 <#if entry.getContent()?contains("https") || entry.getContent()?contains("http") >
99 external URL
100 </#if>
101</span>
102</p>
103</#if>
104<#if entry.isFieldsVisible()>
105<p class="list-group-subtext">
106<#assign separate = false />
107<#list entry.getFieldDisplayContexts() as fieldDisplayContext>
108<#if separate>
109·
110</#if>
111<span class="badge">${fieldDisplayContext.getName()}</span>
112<span>${fieldDisplayContext.getValuesToString()}</span>
113<#assign separate = true />
114</#list>
115</p>
116</#if>
117
118 <#if entry.isCreationDateVisible()>
119<span class="subtext-item">
120
121 <#assign assetEntry = assetEntryLocalService.getEntry(entry.getClassName(), entry.getClassPK()) />
122 <#assign renderer=assetEntry.getAssetRenderer()
123 className=renderer.getClassName() />
124 <#assign migraDate="" />
125 <#if className?has_content>
126 <#if className=="com.liferay.journal.model.JournalArticle">
127 <#assign journalArticle=renderer.getArticle()
128 document=saxReaderUtil.read(journalArticle.getContent())
129 rootElement=document.getRootElement()
130 elements=rootElement.elements() />
131
132 <#list elements as dynamicElement>
133 <#assign fieldName=dynamicElement.attributeValue("field-reference") />
134
135 <#if fieldName=="MigrationDate">
136 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-element[@field-reference='MigrationDate']") />
137 <#assign migrationDate=xPathSelector.selectSingleNode(rootElement).getStringValue() />
138
139 <#if (migrationDate?length) gte 10>
140
141 <#assign dateString=getterUtil.getString(migrationDate) />
142 <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", dateString, locale) />
143 <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) />
144 </#if>
145 </#if>
146 </#list>
147 </#if>
148 </#if>
149 <#if validator.isNotNull(migraDate)>
150 ${migraDate}
151 <#assign migraDate=""/>
152 <#else>
153 <#assign CardDate = entry.getCreationDateString() />
154<#if validator.isNotNull(CardDate) && (CardDate?contains("AM") || CardDate?contains("PM"))>
155<#assign ArticleCardDate_DateObj=dateUtil.parseDate("MMM d, yyyy h:mm a", CardDate, locale) />
156 ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)}
157<#else>
158 <#assign ArticleCardDate_DateObj=dateUtil.parseDate("DD-MMM-yyyy h:mm", CardDate, locale) />
159 ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)}
160
161 </#if>
162 </#if>
163
164
165</span>
166
167</#if>
168
169<#if entry.isCreatorVisible()>
170
171<#assign assetEntry = assetEntryLocalService.getEntry(entry.getClassName(), entry.getClassPK()) />
172 <#assign renderer=assetEntry.getAssetRenderer()
173 className=renderer.getClassName() />
174 <#if className?has_content>
175 <#if className=="com.liferay.journal.model.JournalArticle">
176
177 <#assign journalArticle=renderer.getArticle()
178 document=saxReaderUtil.read(journalArticle.getContent())
179 rootElement=document.getRootElement()
180 elements=rootElement.elements() />
181 <#list elements as dynamicElement>
182 <#assign fieldName=dynamicElement.attributeValue("field-reference") />
183 <#if fieldName=="AuthorName">
184
185 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-element[@field-reference='AuthorName']") />
186 <#assign authorName=xPathSelector.selectSingleNode(rootElement).getStringValue() />
187 <#if authorName?? && authorName?length > 5>
188 <span class="subtext-item c-author-name">
189 ${htmlUtil.escape(authorName)}
190 </span>
191 </#if>
192
193 </#if>
194
195 </#list>
196
197 </#if>
198 </#if>
199
200
201</#if>
202
203
204
205<#if entry.isDocumentFormVisible() && !(entry.getViewURL()?contains("assetEntryId"))>
206<div class="expand-details text-default">
207<span class="list-group-text text-2">
208<a class="shadow-none" href="javascript:void(0);">
209<@liferay.language key="details" />...
210</a>
211</span>
212</div>
213<div class="hide search-results-list table-details table-responsive">
214<table class="table table-sm">
215<thead>
216<tr>
217<th class="table-cell-expand-smaller table-cell-text-end">
218<@liferay.language key="key" />
219</th>
220<th class="table-cell-expand">
221<@liferay.language key="value" />
222</th>
223</tr>
224</thead>
225<tbody>
226<#list entry.getDocumentFormFieldDisplayContexts() as fieldDisplayContext>
227<tr>
228<td class="table-cell-expand-smaller table-cell-text-end table-details-content">
229<strong>${htmlUtil.escape(fieldDisplayContext.getName())}</strong>
230</td>
231<td class="table-cell-expand table-details-content">
232<code>
233 ${fieldDisplayContext.getValuesToString()}
234</code>
235</td>
236</tr>
237</#list>
238</tbody>
239</table>
240</div>
241</#if>
242</div>
243</section>
244</div>
245</li>
246 </#if>
247</#list>
248</ul>
249</div>
250
251<@liferay_aui.form useNamespace=false>
252<@liferay_ui["search-paginator"]
253 id="${namespace + 'searchContainerTag'}"
254 markupView="lexicon"
255 searchContainer=searchContainer
256 />
257</@liferay_aui.form>
258<@liferay_aui.script use="aui-base">
259 A.one('#search-results-display-list').delegate(
260 'click',
261 function(event) {
262 var currentTarget = event.currentTarget;
263 currentTarget.siblings('.search-results-list').toggleClass('hide');
264 },
265 '.expand-details'
266 );
267</@liferay_aui.script>
268</#if>
269</div>
270
271<script>
272
273
274
275 <!-- function for clearAll -->
276function clearAll() {
277 var url = window.location.href;
278 <!--alert( url.split('&')[0]);-->
279 <!--$(window).prop("location", url.split('&')[0]);-->
280 history.pushState(null, document.title, '?' + searchQuery);
281}
282 <!-- function to remove specific category -->
283function removeCategory(key) {
284 var sourceURL = window.location.href;
285 var rtn = sourceURL.split("?")[0],
286 param,
287 params_arr = [],
288 queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
289 if (queryString !== "") {
290 params_arr = queryString.split("&");
291 for (var i = params_arr.length - 1; i >= 0; i -= 1) {
292 param = params_arr[i].split("=")[1];
293 if (param == key) {
294 params_arr.splice(i, 1);
295 }
296 }
297 if (params_arr.length) rtn = rtn + "?" + params_arr.join("&");
298 }
299
300 <!--$(window).prop("location", rtn);-->
301}
302
303 <!-- function to show saerch by category in no results found section -->
304 function searchBycategory(categoryid){
305 var sourceURL = window.location.href;
306 var retunUrl = sourceURL.split("?")[0];
307 retunUrl=retunUrl+"?q="+categoryid;
308 $(window).prop("location", retunUrl);
309 }
310 var pagetext=$(".pagination-results").text();
311 $(".pagination-results").text(pagetext.replace("entries.",""));
312</script>
313
314 <style>
315
316 .c-search-result-template .page-item.active .page-link:hover {
317 color: white;
318 }
319 </style>