-<DIV class="search"> [% INCLUDE search_form %] </DIV>
-
-<DIV class="list">
-<TABLE id="matrix" WIDTH="100%">
-<TR>
-[% FOR col = classmetadata.columns.list;
- NEXT IF col == "id";
- "<TH>";
- '<A HREF="'; base; classmetadata.moniker; "/list/?";
- "page=" _ pager.current_page _ "&" IF pager;
- "order="; col;
- "&o2=desc" IF col == request.query.order and request.query.o2 != "desc";
- '">';
- classmetadata.colnames.$col;
- '</A>';
- "</TH>";
-END %]
-</TR>
-
-[% SET count = 0;
-FOR item = objects;
- SET count = count + 1;
- "<tr";
- ' class="alternate"' IF count % 2;
- ">";
- display_line(item);
- "</tr>";
-END %]
-</TABLE>
+<div class="list">
+ <table id="matrix">
+ <tr>
+ [% FOR col = classmetadata.list_columns.list;
+ NEXT IF col == "id";
+ "<th>";
+ SET additional = "?order=" _ col;
+ SET additional = additional _ "&page=" _ pager.current_page
+ IF pager;
+ SET additional = additional _ "&o2=desc"
+ IF col == request.params.order and request.params.o2 != "desc";
+ SET action = "list";
+ FOR name = classmetadata.columns.list;
+ IF request.query.$name;
+ SET additional =
+ additional _ "&" _ name _ "=" _
+ request.params.$name;
+ SET action = "search";
+ END;
+ END;
+ link(classmetadata.table, action, additional,
+ classmetadata.colnames.$col);
+ IF col == request.params.order;
+ IF request.params.o2 != "desc";
+ "↓";
+ ELSE;
+ "↑";
+ END;
+ END;
+ "</th>";
+ END %]
+ <th id="actionth">Actions</th>
+ </tr>
+ [% SET count = 0;
+ FOR item = objects;
+ SET count = count + 1;
+ "<tr";
+ ' class="alternate"' IF count % 2;
+ ">";
+ display_line(item);
+ "</tr>";
+ END %]
+ </table>