]> git.decadent.org.uk Git - maypole.git/blobdiff - templates/factory/list
Maypole::Application supports Maypole::HTTPD (which needs a patch).
[maypole.git] / templates / factory / list
index 843f9a4d50b603bfced8da3c999ab0cc763eb22b..dbbedafb786171b659479b92e2987dd270882773 100644 (file)
@@ -1,28 +1,48 @@
 [% PROCESS macros %]
 [% INCLUDE header %]
+[% INCLUDE title %]
 [% IF search %]
-    <h2>Search results</h2>
+    <div id="title">Search results</div>
 [% ELSE %]
-    <h2>Listing of all [% classmetadata.plural %]</h2>
+    <div id="title">Listing of all [% classmetadata.plural %]</div>
 [% END %]
 [% INCLUDE navbar %]
-[% INCLUDE search_form %]
 <div class="list">
-    <table id="matrix" width="100%" >
+    <table id="matrix">
         <tr>
-            [% FOR col = classmetadata.columns.list;
+            [% FOR col = classmetadata.list_columns.list;
                 NEXT IF col == "id";
                 "<th>"; 
                 SET additional = "?order=" _ col;
-                SET additional = additional _ "&amp;page=" _ pager.current_page
+                SET additional = additional _ "&page=" _ pager.current_page
                     IF pager;
-                SET additional = additional _ "&amp;o2=desc" 
-                IF col == request.query.order and request.query.o2 != "desc";
-                link(classmetadata.table, "list", additional,
+                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;
+               IF model_obj.find_column(col);
+                  link(classmetadata.table, action, additional,
                     classmetadata.colnames.$col);
+                  IF col == request.params.order;
+                    IF request.params.o2 != "desc";
+                        "&darr;";
+                    ELSE;
+                        "&uarr;";
+                    END;
+                  END;
+               ELSE;
+                 classmetadata.colnames.$col || col FILTER ucfirst;
+               END;
                 "</th>";
             END %]
-           <th>Actions</th>
+           <th id="actionth">Actions</th>
         </tr>
         [%  SET count = 0;
         FOR item = objects;
@@ -34,7 +54,9 @@
             "</tr>";
         END %]
     </table>
+
 [% INCLUDE pager %]
 [% INCLUDE addnew %]
+[% INCLUDE search_form %]
 </div>
 [% INCLUDE footer %]