##required: catalogid, searchtype, view, fieldname
##optional: value, foreignkeyid and foreignkeyvalue
#set ($catalogidother = $context.getRequestParameter('catalogid'))
#if($catalogidother)
#set ($catalogid = $catalogidother)
#end
#set ($searchtype = $context.getRequestParameter('searchtype')) ##product
#set ($fieldname = $context.getRequestParameter('fieldname')) ##lastmodified
#set ($view = $context.getRequestParameter('view'))
##we need to load up the existing detail object
#set( $originalsearcher = $searcherManager.getSearcher($catalogid, $searchtype))
#if( !$detail) ##this is new. To reduce complexity we want to just load up the detail all the time
#set( $detail = $originalsearcher.getDetailForView($view, $fieldname, $user) )
#end
#set( $listid = $detail.getListId())
#set( $csslistid = "list-$!detailprefix${detail.id}")
#set( $lsearcher = $searcherManager.getSearcher( $detail.getListCatalogId(), $listid ))
##optional things to filter the list
#set ($foreignkeyid = $detail.get("foreignkeyid") )
#set ($foreignkeyvalue = $context.getRequestParameter('foreignkeyvalue'))
#ifnull( $foreignkeyvalue )
#set ($foreignkeyvalue = $detail.get("foreignkeyvalue") )
#end
#set ($squery = $detail.query )
#if ($foreignkeyid && $foreignkeyvalue)
#set( $foreigndetail = $originalsearcher.getDetailForView($view, $foreignkeyid, $user) )
#if( $foreigndetail && $foreigndetail.listid )
#set( $foreignfield = $foreigndetail.listid )
#else
#set( $foreignfield = $foreignkeyid )
#end
#set ($query = $lsearcher.createSearchQuery())
#set ($o = $query.setAndTogether(false))
#set ($o = $query.addExact($foreignfield, $foreignkeyvalue))
#elseif( $squery && (!$detail.getType() || $detail.getType() != "textjoin") )
#set ($query = $lsearcher.parse($squery))
#else
#set ($query = $lsearcher.createSearchQuery())
#set ($o = $query.addMatches("id", "*"))
#end
$query.setSortBy($detail.getDefaultSort())
####$lsearcher.addShowOnly($context, $query)
#set ($types = $lsearcher.search($context, $query))
#if( !$value )
#set ($value = $context.getRequestParameter('value'))
#end
##if (!$value)
## #set ($value = $context.getRequestParameter("${fieldname}.value"))
##end
#set( $valueid = "$fieldname" )
$types.enableBulkOperations()
#if($types)
#if( $foreignkeyid)
#end
#else
[[No values found]]
#end
#if( $caneditlists)
+ [[New]] $detail
#end