]> git.decadent.org.uk Git - maypole.git/blobdiff - templates/factory/view
Split the meat of the view template off to a view_item macro.
[maypole.git] / templates / factory / view
index 0a0860e404e349652fd977fdbfd27c3cb58344a1..328678c73d98c86d84d5be888540b756e4881c25 100644 (file)
@@ -7,68 +7,11 @@ C<objects> and displays the object's properties in a table.
 
 =cut
 
-%#]
+#%]
 [% PROCESS macros %]
 [% INCLUDE header %]
-
 [% FOR item = objects %]
-[% SET string = item.stringify_column %]
-<h2> [% item.$string %]</h2>
-
-[% INCLUDE navbar %]
-
-<TABLE class="view">
-    <TR><TD class="field">[% classmetadata.colnames.$string %]</TD><TD> [% item.$string %] </TD></TR>
-[% 
-    FOR col = classmetadata.columns.list;
-    NEXT IF col == "id" OR col == string;
-    NEXT UNLESS item.$col;
-%]
-
-[%# 
-
-=for doc
-
-It gets the displayable form of a column's name from the hash returned
-from the C<column_names> method:
-
-#%]
-
-    <TR>
-    <TD class="field"> [% classmetadata.colnames.$col; %] </TD>
-    <TD> [%
-
-#=cut
-
-    IF col == "url";  # Possibly too much magic.
-                "<A HREF="; item.url; "> "; item.url; "</A>";
-    ELSE;
-
-#=for doc
-
-#One interesting macro used in this template is C<maybe_link_view>:
-
-        maybe_link_view(item.$col); 
-%] 
-
-[%#
-
-This tests whether or not the returned value is an object, and if so,
-creates a link to a page viewing that object; if not, it just displays
-the text as normal. The object is linked using its stringified name;
-by default this calls the C<name> method, or returns the object's ID
-if there is no C<name> method or other stringification method defined.
-
-=cut
-
-#%] 
-
-[% END; %]
- </TD>
-</TR>
-[% END; %]
-</TABLE>
-
+[% view_item(item); %]
 [%#
 
 =for doc
@@ -80,13 +23,12 @@ a list of has-many accessors. Next it calls each of those accessors, and
 displays the results in a table.
 
 #%]
+    <br /><a href="[%base%]/[%item.table%]/list">Back to listing</a>
+[% view_related(item); %]
+    
 [%
-    view_related(item);
-
-#=cut
-
     button(item, "edit");
     button(item, "delete");
 %]
 [% END; %]
-
+[% INCLUDE footer %]