| #** |
| * 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') |