X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=templates%2Ffactory%2Fview;h=c00046c7606416d57fc1255e2da186b3d50b583e;hb=77fb5cc34c9a87077dc65548f0d890b366e78c61;hp=861e8761184e6dc33911aa2d1fe090cbeb81e24b;hpb=36b7502bb586953f62f56a2c6edd3b22c184702d;p=maypole.git diff --git a/templates/factory/view b/templates/factory/view index 861e876..c00046c 100644 --- a/templates/factory/view +++ b/templates/factory/view @@ -1,27 +1,73 @@ +[%# + +=for doc + +The C template takes some objects (usually just one) from +C and displays the object's properties in a table. + +=cut + +#%] [% PROCESS macros %] [% INCLUDE header %] - [% FOR item = objects %] -

[% item.name %]

+ [% SET string = item.stringify_column %] +

[% item.$string %]

+ [% INCLUDE navbar %] + + + + + + [% FOR col = classmetadata.columns.list; + NEXT IF col == "id" OR col == string; + NEXT UNLESS item.$col; + %] +[%# -[% INCLUDE navbar %] +=for doc -
[% classmetadata.colnames.$string %][% item.$string %]
-[% - FOR col = classmetadata.columns.list; - NEXT IF col == "id" OR col == "name"; -%] +It gets the displayable form of a column's name from the hash returned +from the C method: - - - - -[% END; %] -
[% classmetadata.colnames.$col; %] [% maybe_link_view(item.$col) %]
+#%] + + [% classmetadata.colnames.$col; %] + + [% IF col == "url"; # Possibly too much magic. + " "; item.url; ""; + ELSE; + maybe_link_view(item.$col); + END; %] +[%# + +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 method, or returns the object's ID +if there is no C method or other stringification method defined. + +=cut + +#%] + + + [% END; %] + +[%# + +=for doc + +The C template also displays a list of other objects related to the first +one via C style relationships; this is done by calling the +C method - see L - to return +a list of has-many accessors. Next it calls each of those accessors, and +displays the results in a table. + +#%] [% + view_related(item); button(item, "edit"); button(item, "delete"); %] - [% END; %] -