##required: catalogid, searchtype, view, fieldname ##optional: value, foreignkeyid and foreignkeyvalue #set ($catalogid = $context.getRequestParameter('catalogid')) #set ($searchtype = $context.getRequestParameter('searchtype')) ##product #set ($fieldname = $context.getRequestParameter('fieldname')) ##lastmodified #if(!$fieldname) #set ($fieldname = $detail.getId() ) #end #set ($view = $context.getRequestParameter('view'))
##we need to load up the existing detail object #if( !$searcher) #set( $searcher = $searcherManager.getSearcher($catalogid, $searchtype)) #end #if( !$detail) ##this is new. To reduce complexity we want to just load up the detail all the time #set( $detail = $searcher.getDetailForView($view, $fieldname, $user) ) #end #set( $listid = $detail.getListId()) #set( $csslistid = "$!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')) #set ($squery = $detail.query ) #if ($foreignkeyid && $foreignkeyvalue) #set( $foreigndetail = $searcher.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.addMatches("$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 #if ($detail.sort) $query.setSortBy($detail.sort) #end $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" ) #if( !$values ) #set($values = $data.getValues($detail.id)) #end #set($searchfield = $detail.getId() ) #if($types) $types.enableBulkOperations() #if( $foreignkeyid) #end #else [[No values found]] #end #if( $caneditlists) + [[New]] $detail #end