#** | |
* Render a complex document in the results list | |
*# | |
## Load Mime-Type List and Mapping | |
#parse('mime_type_lists.vm') | |
## Sets: | |
## * supportedMimeTypes, AKA supportedtypes | |
## * mimeExtensionsMap, AKA extMap | |
## Title | |
#if($doc.getFieldValue('title')) | |
#set($title = $esc.html($doc.getFirstValue('title'))) | |
#else | |
#set($title = "["+$doc.getFieldValue('id')+"]") | |
#end | |
## URL | |
#if($doc.getFieldValue('url')) | |
#set($url = $doc.getFieldValue('url')) | |
#elseif($doc.getFieldValue('resourcename')) | |
#set($url = "file:///$doc.getFieldValue('resourcename')") | |
#else | |
#set($url = "$doc.getFieldValue('id')") | |
#end | |
## Sort out Mime-Type | |
#set($ct = $list.get($doc.getFirstValue('content_type').split(";"),0)) | |
#set($filename = $doc.getFieldValue('resourcename')) | |
#set($filetype = false) | |
#set($filetype = $mimeExtensionsMap.get($ct)) | |
## TODO: falling back to file extension is convenient, | |
## except when you don't have an icon for that extension | |
## example "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | |
## document with a .docx extension. | |
## It'd be nice to fall back to an "unknown" or the existing "file" type | |
## We sort of do this below, but only if the filename has no extension | |
## (anything after the last dot). | |
#if(!$filetype) | |
#set($filetype = $filename.substring($filename.lastIndexOf(".")).substring(1)) | |
#end | |
## #if(!$filetype) | |
## #set($filetype = "file") | |
## #end | |
## #if(!$supportedMimeTypes.contains($filetype)) | |
## #set($filetype = "file") | |
## #end | |
## Row 1: Icon and Title and mlt link | |
<div class="result-title"> | |
## Icon | |
## Small file type icons from http://www.splitbrain.org/projects/file_icons (public domain) | |
<img src="#{url_root}/img/filetypes/${filetype}.png" align="center"> | |
## Title, hyperlinked | |
<a href="${url}" target="_blank"> | |
<b>$title</b></a> | |
## Link for MLT / More Like This / Find Similar | |
<span class="mlt"> | |
#if($params.getBool('mlt', false) == false) | |
<a href="#lensNoQ&q=id:%22$docId%22&mlt=true"> | |
More Like This</a> | |
#end | |
</span> | |
</div> | |
## Row 2?: ID / URL | |
<div> | |
Id: #field('id') | |
</div> | |
## Resource Name | |
<div> | |
#if($doc.getFieldValue('resourcename')) | |
Resource name: $filename | |
#elseif($url) | |
URL: $url | |
#end | |
#if($ct) | |
($ct) | |
#end | |
</div> | |
## Author | |
#if($doc.getFieldValue('author')) | |
<div> | |
Author: #field('author') | |
</div> | |
#end | |
## Last_Modified Date | |
#if($doc.getFieldValue('last_modified')) | |
<div> | |
last-modified: | |
#field('last_modified') | |
</div> | |
#end | |
## Main content of doc | |
<div class="result-body"> | |
#field('content') | |
</div> | |
## Display Similar Documents / MLT = More Like This | |
<div class="mlt"> | |
#set($mlt = $mltResults.get($docId)) | |
#set($mltOn = $params.getBool('mlt')) | |
#if($mltOn == true) | |
<div class="field-name"> | |
Similar Items | |
</div> | |
#end | |
## If has MLT enabled An Entries to show | |
#if ($mltOn && $mlt && $mlt.size() > 0) | |
<ul> | |
#foreach($mltHit in $mlt) | |
#set($mltId = $mltHit.getFieldValue('id')) | |
<li> | |
<div> | |
<a href="#url_for_home?q=id:$mltId"> | |
$mltId</a> | |
</div> | |
<div> | |
<span class="field-name"> | |
Title: | |
</span> | |
$mltHit.getFieldValue('title') | |
</div> | |
<div> | |
<span class="field-name"> | |
Author: | |
</span> | |
$mltHit.getFieldValue('author') | |
<span class="field-name"> | |
Description: | |
</span> | |
$mltHit.getFieldValue('description') | |
</div> | |
</li> | |
#end ## end for each mltHit in $mlt | |
</ul> | |
## Else MLT Enabled but no mlt results for this query | |
#elseif($mltOn && $mlt.size() == 0) | |
<div>No Similar Items Found</div> | |
#end | |
</div> ## div class=mlt | |
#parse('debug.vm') |