153 lines
3.9 KiB
Text
153 lines
3.9 KiB
Text
#**
|
|
* 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 = $doc.getFirstValue('content_type').split(";").get(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')
|