<%doc> =head2 list List all items in a table, or all items returned by a search, paged if necessary. =cut <%args> @objects $classmetadata $search => undef $pager => undef $order => '' $o2 => '' %if ( $search ) {

Search results

% } else {

Listing of all <% $classmetadata->{ plural } %>

% }
<& search_form, %ARGS &>
% foreach my $col ( @{ $classmetadata->{ columns } } ) { % next if $col eq 'id'; % } % # this for the edit/delete buttons % foreach my $item ( @objects ) { <& display_line, %ARGS, item => $item &> % }
\ <%perl> my $additional = '?order=' . $col; $additional .= '&page=' . $pager->{ current_page } if $pager; $additional .= '&o2=desc'; \ % if ( $col eq $order && $o2 ne 'desc' ) { # so much nicer in Mason <& mplink, table => $classmetadata->{ table }, command => 'list', additional => $additional, label => $classmetadata->{ colnames }->{ $col }, &>\ % } else { <% $classmetadata->{ colnames }->{ $col } %>\ % }
<& pager, %ARGS &>
<& addnew, %ARGS &>