<%doc>

=for doc

The C<view> template takes some objects (usually just one) from
C<objects> and displays the object's properties in a table.

=cut

</%doc>

% foreach my $item ( @$objects ) {
% my $string = $item->stringify_column;
<div id="title"><% $item->$string %></div>
<& navbar &>
<table class="view">
    <tr>
        <td class="field"><% $classmetadata->{colnames}->{ $string } %></td>
        <td><% $item->$string %></td>
    </tr>

% foreach my $col ( @{ $classmetadata->{columns} } ) {
% next if $col eq "id" or $col eq $string;
% next unless $item->$col;

<%doc>

=for doc

It gets the displayable form of a column's name from the hash returned
from the C<column_names> method:

</%doc>

<tr>
<td class="field"><% $classmetadata->{colnames}->{ $col } %></td>
<td>

% if ( $col eq "url" && $item->url ) {
<a href="<% $item->url %>"><% $item->url %></a>
% } else {
<& maybe_link_view, object => $item->$col &>
% }

</td>
</tr>
% }
</table>

<%doc>

=for doc

The C<view> template also displays a list of other objects related to the first
one via C<has_many> style relationships; this is done by calling the
C<related_accessors> method - see L<Model/related_accessors> - to return
a list of has-many accessors. Next it calls each of those accessors, and
displays the results in a table.

</%doc>

<br /><a href="<% $base %>/<% $item->table %>/list">Back to listing</a>

<& view_related, object => $item &>

<& button, obj => $item, action => "edit" &>
<& button, obj => $item, action => "delete" &>
% }
