<#ftl encoding="utf-8" /> <#--- Custom library for laying out result's within a grid using Funnelback. @author: Robert Prib @release_date: 5 September 2016 @version: v1.0 @usage <@base_controller.IfDefCGIEquals name="resultsView" value="grid"> <@base_controller.ResultsColumns> <@base_controller.ResultsColumnsIsOpen>
<#local cssColWidth = (12/base_controller.resultsColumnsNumber!1)?floor?c >
<@Result />
<@base_controller.ResultsColumnsIsClosed> --> <#escape x as x?html> <#--- If a result grid is used change the result limits to match a number divible by the number of columns set. The main use case for this helper is for the limit selector. @param limit {number} Number of rows show. @param columns {number} Number of columns for setting grid limit for. Defaults to currently set number of columns. --> <#function setResultsLimitGrid limit=1 columns=getResultsColumnsNumber()> <#return (limit*columns)?string > <#--- Constructor for ResultsColumns, defines how to format the grouping of result into columns. @provides ${base_controller.resultsColumnsNumber} ${base_controller.resultsColumnsIsLast} ${base_controller.resultsColumnsRank} ${base_controller.resultsColumnsIndex} @param columnsNumber - set this column number as default column number --> <#macro ResultsColumns columnsNumber=2> <#-- Define attributes --> <#assign resultsColumnsNumber = columnsNumber in .namespace> <#assign resultsColumnsIsLast = getResultsColumnsIsLast() in .namespace> <#assign resultsColumnsRank = getResultsColumnsRank() in .namespace> <#assign resultsColumnsIndex = getResultsColumnsIndex() in .namespace> <#nested> <#--- Returns if the current result is the last item to be displayed. @requires ResultsColumns @return boolean --> <#function getResultsColumnsIsLast> <#return s.result.rank == response.resultPacket.resultsSummary.currEnd> <#--- Returns current position of the result which takes into account the current start rank. @requires ResultsColumns @return number --> <#function getResultsColumnsRank> <#return s.result.rank - response.resultPacket.resultsSummary.currStart> <#--- Returns the number of columns set. @requires ResultsColumns @return number --> <#function getResultsColumnsNumber> <#return .namespace.resultsColumnsNumber> <#--- Returns the column set index. @requires ResultsColumns @return number --> <#function getResultsColumnsIndex> <#return (.namespace.resultsColumnsRank / .namespace.resultsColumnsNumber)?floor + 1> <#-- <#return 0> --> <#--- Show the nested content if it is the start of a column. @requires ResultsColumns @return nested --> <#macro ResultsColumnsIsOpen> <#if .namespace.resultsColumnsRank % .namespace.resultsColumnsNumber == 0> <#nested> <#-- Shows the nested content if it is the end of a column @requires ResultsColumns @return nested --> <#macro ResultsColumnsIsClosed> <#if (.namespace.resultsColumnsRank + 1) % .namespace.resultsColumnsNumber == 0 || .namespace.resultsColumnsIsLast> <#nested>