]> 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 fab90b8627ea39d508382f0f42f28e7438dc91fb..dbbedafb786171b659479b92e2987dd270882773 100644 (file)
@@ -1,27 +1,45 @@
 [% PROCESS macros %]
 [% INCLUDE header %]
 [% INCLUDE title %]
+[% IF search %]
+    <div id="title">Search results</div>
+[% ELSE %]
+    <div id="title">Listing of all [% classmetadata.plural %]</div>
+[% END %]
 [% INCLUDE navbar %]
 <div class="list">
-    <table id="matrix" width="100%" >
+    <table id="matrix">
         <tr>
             [% 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.query.order;
-                    IF request.query.o2 != "desc";
+                  IF col == request.params.order;
+                    IF request.params.o2 != "desc";
                         "&darr;";
                     ELSE;
                         "&uarr;";
                     END;
-                END;
+                  END;
+               ELSE;
+                 classmetadata.colnames.$col || col FILTER ucfirst;
+               END;
                 "</th>";
             END %]
            <th id="actionth">Actions</th>