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