From: Dagfinn Ilmari Mannsåker Date: Wed, 8 Dec 2004 19:55:49 +0000 (+0000) Subject: Split the meat of the view template off to a view_item macro. X-Git-Tag: 2.10~57 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=maypole.git;a=commitdiff_plain;h=1fb6cf1887bddb2a3a003d6e148a0c016ea780b0 Split the meat of the view template off to a view_item macro. git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@307 48953598-375a-da11-a14b-00016c27c3ee --- diff --git a/Changes b/Changes index d56550b..3f4cbd9 100644 --- a/Changes +++ b/Changes @@ -15,6 +15,7 @@ Revision history for Perl extension Maypole - Only show buttons for public actions. (Dagfinn Ilmari Mannsåker) - Added support for extra_headers + - Split the meat of the view template off to a view_item macro. 2.04 Tue Oct 27 14:00:00 2004 diff --git a/templates/factory/macros b/templates/factory/macros index 367d74f..afa2a74 100644 --- a/templates/factory/macros +++ b/templates/factory/macros @@ -117,3 +117,57 @@ MACRO test_xxxx(myblock) BLOCK; END; END; %] +[%# + +=head2 view_item + +This takes an object and and displays its properties in a table. + +=cut + +#%] +[% MACRO view_item(item) BLOCK; %] + [% 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; + %] +[%# + +=for doc + +It gets the displayable form of a column's name from the hash returned +from the C method: + +#%] + + + + + [% END; %] +
[% classmetadata.colnames.$string %][% item.$string %]
[% classmetadata.colnames.$col; %] + [% IF col == "url" && item.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 %] diff --git a/templates/factory/view b/templates/factory/view index 19117b5..328678c 100644 --- a/templates/factory/view +++ b/templates/factory/view @@ -11,49 +11,7 @@ C and displays the object's properties in a table. [% PROCESS macros %] [% INCLUDE header %] [% FOR item = objects %] - [% 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; - %] -[%# - -=for doc - -It gets the displayable form of a column's name from the hash returned -from the C method: - -#%] - - - - - [% END; %] -
[% classmetadata.colnames.$string %][% item.$string %]
[% classmetadata.colnames.$col; %] - [% IF col == "url" && item.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 - -#%] -
+[% view_item(item); %] [%# =for doc