]> git.decadent.org.uk Git - maypole.git/blob - lib/Maypole/templates/factory/list
f0bc45c1ced59ca9289d8d7c22041620d40e483e
[maypole.git] / lib / Maypole / templates / factory / list
1 [% PROCESS macros %]
2 [% INCLUDE header %]
3 [% INCLUDE title %]
4 [% IF search %]
5     <div id="title">Search results</div>
6 [% ELSE %]
7     <div id="title">Listing of all [% classmetadata.plural %]</div>
8 [% END %]
9 [% INCLUDE navbar %]
10 <div class="list">
11     <table id="matrix">
12         <tr>
13             [% FOR col = classmetadata.list_columns.list;
14                 NEXT IF col == "id" OR col == classmetadata.table _ "_id";
15                 "<th>"; 
16                 SET additional = "?order=" _ col;
17                 SET additional = additional _ "&page=" _ pager.current_page
18                     IF pager;
19                 SET additional = additional _ "&o2=desc" 
20                 IF col == request.params.order and request.params.o2 != "desc";
21                 SET action = "list";
22                 FOR name = classmetadata.columns.list;
23                   IF request.query.$name;
24                     SET additional =
25                         additional  _ "&" _ name _ "=" _
26                         request.params.$name;
27                     SET action = "search";
28                   END;
29                 END;
30                 IF model_obj.find_column(col);
31                   link(classmetadata.table, action, additional,
32                     classmetadata.colnames.$col);
33                   IF col == request.params.order;
34                     IF request.params.o2 != "desc";
35                         "&darr;";
36                     ELSE;
37                         "&uarr;";
38                     END;
39                   END;
40                 ELSE;
41                   classmetadata.colnames.$col || col FILTER ucfirst;
42                 END;
43                 "</th>";
44             END %]
45             <th id="actionth">Actions</th>
46         </tr>
47         [%  SET count = 0;
48         FOR item = objects;
49             SET count = count + 1;
50             "<tr";
51             ' class="alternate"' IF count % 2;
52             ">";
53             display_line(item);
54             "</tr>";
55         END %]
56     </table>
57
58 [% INCLUDE pager %]
59 [% INCLUDE addnew %]
60 [% INCLUDE search_form %]
61 </div>
62 [% INCLUDE footer %]