%{ nbPages = _caller.count.page(controllers.CRUD.getPageSize()) }%

&{'crud.list.size', _caller.count, _caller.type.name}

#{if nbPages > 1}

%{ limit = (_limit != null ? _limit : 10) start = _caller.page - (int)(limit/2) + (limit % 2 ? 0 : 1) end = _caller.page + (int)(limit/2) if(start < 1){ extra = 1 - start end = (end + extra < nbPages ? end + extra : nbPages) start = 1 }else if(end > nbPages){ extra = end - nbPages start = (start - extra > 1 ? start - extra : 1) end = nbPages } }% #{if _caller.page > 1} #{a @list().add('page', _caller.page-1).add('search', _caller.params.search).add('orderBy', _caller.orderBy).add('order', _caller.order)}&{'crud.pagination.previous'}#{/a} #{/if} #{if start > 1} #{a @list().add('page', 1).add('search', _caller.params.search).add('orderBy', _caller.orderBy).add('order', _caller.order)}&{'crud.pagination.first'}#{/a} #{/if} %{ for (i in start..end) { }% #{if _caller.page == i} ${i} #{/if} #{else} #{a @list().add('page', i).add('search', _caller.params.search).add('orderBy', _caller.orderBy).add('order', _caller.order)}${i}#{/a} #{/else} %{ } }% #{if end < nbPages} #{a @list().add('page', nbPages).add('search', _caller.params.search).add('orderBy', _caller.orderBy).add('order', _caller.order)}&{'crud.pagination.last'}#{/a} #{/if} #{if _caller.page < nbPages} #{a @list().add('page', _caller.page+1).add('search', _caller.params.search).add('orderBy', _caller.orderBy).add('order', _caller.order)}&{'crud.pagination.next'}#{/a} #{/if}

#{/if}