web/hosts/issues/html bug.search,1.4,1.5

Tobias Hunger <[email protected]> Wed, 20 Aug 2003 09:27:29 -0500
Newsgroups gmane.comp.video.fresco.cvs
Message-ID <[email protected]>
Update of /cvs/fresco/web/hosts/issues/html
In directory purcel:/tmp/cvs-serv21818

Modified Files:
	bug.search 
Log Message:
Use the newly added macros in the bug search form: In addition to simplifying
the template it also fixes bug219.


Index: bug.search
===================================================================
RCS file: /cvs/fresco/web/hosts/issues/html/bug.search,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- bug.search	14 Dec 2002 16:45:43 -0000	1.4
+++ bug.search	20 Aug 2003 14:27:27 -0000	1.5
@@ -5,240 +5,252 @@
 
   <tal:block metal:fill-slot="content">
 
-<form method="GET" tal:attributes="action request/classname">
-<input type="hidden" name=":action" value="search">
-<input type="hidden" name=":columns" value="id">
+    <form method="GET" tal:attributes="action request/classname">
+      <input type="hidden" name=":action" value="search">
 
-<table class="form" tal:define="
-   cols python:'id activity priority title status assignedto'.split();
-   defsort python:['activity'];
-   defgroup python:['priority'];
-   defdisp python:'id activity title status assignedto'.split()">
+      <table class="form" tal:define="
+             cols python:request.columns or
+               'id activity title status assignedto'.split();
+             sort_on python:request.sort[1] or 'activity';
+             group_on python:request.group[1] or 'priority';
 
-<tr class="form-header">
- <th>&nbsp;</th>
- <th>Filter on</th><th>Display</th><th>Sort on</th><th>Group on</th>
-</tr>
+             search_input templates/page/macros/search_input;
+             column_input templates/page/macros/column_input;
+             sort_input templates/page/macros/sort_input;
+             group_input templates/page/macros/group_input;
+             search_multiselect templates/page/macros/search_multiselect;
+             search_select templates/page/macros/search_select">
 
-<tr>
- <th>All text*:</th>
- <td><input name=":search_text"></td>
- <td>&nbsp;</td>
- <td>&nbsp;</td>
- <td>&nbsp;</td>
-</tr>
+        <tr>
+          <th class="header">&nbsp;</th>
+          <th class="header">Filter on</th>
+          <th class="header">Display</th>
+          <th class="header">Sort on</th>
+          <th class="header">Group on</th>
+        </tr>
 
-<tr>
- <th>Title:</th>
- <td><input name="title"></td>
- <td><input type="checkbox" name=":columns" value="title" checked></td>
- <td><input type="radio" name=":sort" value="title"></td>
- <td>&nbsp;</td>
-</tr>
+        <tr class="form-header">
+          <th>&nbsp;</th>
+          <th>Filter on</th><th>Display</th><th>Sort on</th><th>Group on</th>
+        </tr>
+        
+        <tr tal:define="name string::search_text">
+          <th>All text*:</th>
+          <td metal:use-macro="search_input"></td>
+          <td>&nbsp;</td>
+          <td>&nbsp;</td>
+          <td>&nbsp;</td>
+        </tr>
 
-<tr>
- <th>Created:</th>
- <td><input name="activity"></td>
- <td><input type="checkbox" name=":columns" value="created"></td>
- <td><input type="radio" name=":sort" value="created"></td>
- <td><input type="radio" name=":group" value="created"></td>
-</tr>
+        <tr tal:define="name string:title">
+          <th>Title:</th>
+          <td metal:use-macro="search_input"></td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td>&nbsp;</td>
+        </tr>
 
-<tr>
- <th>Creator:</th>
- <td>
-  <select name="creator">
-   <option value="">don't care</option>
-   <option tal:attributes="value request/user/id">created by me</option>
-   <option value="-1">------------</option>
-   <option tal:repeat="s db/user/list" tal:attributes="value s/id"
-     tal:content="s/username">user to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="creator" checked></td>
- <td><input type="radio" name=":sort" value="creator"></td>
- <td><input type="radio" name=":group" value="creator"></td>
-</tr>
+        <tr tal:define="name string:creation">
+          <th>Creation Date:</th>
+          <td metal:use-macro="search_input"></td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
- <th>Activity:</th>
- <td><input name="activity"></td>
- <td><input type="checkbox" name=":columns" value="activity" checked></td>
- <td><input type="radio" name=":sort" value="activity"></td>
- <td>&nbsp;</td>
-</tr>
+        <tr tal:define="name string:creator;
+                db_klass string:user;
+                db_content string:username;">
+          <th>Creator:</th>
+          <td metal:use-macro="search_select">
+            <option metal:fill-slot="extra_options"
+               tal:attributes="value request/user/id">created by me</option>
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
- <th>Priority:</th>
- <td>
-  <select name="priority">
-   <option value="">don't care</option>
-   <option value="-1">not selected</option>
-   <option value="">------------</option>
-   <option tal:repeat="s db/priority/list" tal:attributes="value s/id"
-     tal:content="s/name">priority to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="priority"></td>
- <td><input type="radio" name=":sort" value="priority"></td>
- <td><input type="radio" name=":group" value="priority"></td>
-</tr>
+        <tr tal:define="name string:activity">
+          <th>Activity:</th>
+          <td metal:use-macro="search_input"></td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td>&nbsp;</td>
+        </tr>
 
-<tr>
- <th>Severity:</th>
- <td>
-  <select name="severity">
-   <option value="">don't care</option>
-   <option value="-1">not selected</option>
-   <option value="">------------</option>
-   <option tal:repeat="s db/severity/list" tal:attributes="value s/id"
-     tal:content="s/name">severity to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="severity"></td>
- <td><input type="radio" name=":sort" value="severity"></td>
- <td><input type="radio" name=":group" value="severity"></td>
-</tr>
+        <tr tal:define="name string:priority;
+                db_klass string:priority;
+                db_content string:name;">
+          <th>Priority:</th>
+          <td metal:use-macro="search_select">
+            <option metal:fill-slot="extra_options" value="-1"
+                tal:attributes="selected python:value == '-1'">not selected</option>
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
- <th>Status:</th>
- <td>
-  <select name="status">
-   <option value="">don't care</option>
-   <option value="-1,1,2">not resolved</option>
-   <option value="-1">not selected</option>
-   <option value="">------------</option>
-   <option tal:repeat="s db/status/list" tal:attributes="value s/id"
-           tal:content="s/name">status to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="status" checked></td>
- <td><input type="radio" name=":sort" value="status"></td>
- <td><input type="radio" name=":group" value="status"></td>
-</tr>
+        <tr tal:define="name string:severity;
+                db_klass string:severity;
+                db_content string:name;">
+          <th>Severity:</th>
+          <td metal:use-macro="search_select">
+            <option metal:fill-slot="extra_options" value="-1"
+                tal:attributes="selected python:value == '-1'">not selected</option>
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
- <th>Assigned To:</th>
- <td>
-  <select name="assignedto">
-   <option value="">don't care</option>
-   <option tal:attributes="value request/user/id">assigned to me</option>
-   <option value="-1">unassigned</option>
-   <option value="">------------</option>
-   <option tal:repeat="s db/user/list" tal:attributes="value s/id"
-     tal:content="s/username">user to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="assignedto" checked></td>
- <td><input type="radio" name=":sort" value="assignedto"></td>
- <td><input type="radio" name=":group" value="assignedto"></td>
-</tr>
+        <tr tal:define="name string:status;
+                db_klass string:status;
+                db_content string:name;">
+          <th>Status:</th>
+          <td metal:use-macro="search_select">
+            <tal:block metal:fill-slot="extra_options">
+              <option value="-1,1,2,3,4,5,6,7"
+                tal:attributes="selected python:value == '-1,1,2'">not resolved</option>
+              <option value="-1" tal:attributes="selected python:value == '-1'">not selected</option>
+            </tal:block>    
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
- <th>Type:</th>
- <td>
-  <select name="bug_type">
-   <option value="">don't care</option>
-   <option value="-1">not selected</option>
-   <option value="">------------</option>
-   <option tal:repeat="s db/bug_type/list" tal:attributes="value s/id"
-     tal:content="s/name">bug_type to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="bug_type"></td>
- <td><input type="radio" name=":sort" value="bug_type"></td>
- <td><input type="radio" name=":group" value="bug_type"></td>
-</tr>
+        <tr tal:define="name string:assignedto;
+                db_klass string:user;
+                db_content string:username;">
+          <th>Assigned to:</th>
+          <td metal:use-macro="search_select">
+            <tal:block metal:fill-slot="extra_options">
+              <option tal:attributes="value request/user/id">assigned to me</option>
+              <option value="-1" tal:attributes="selected python:value == '-1'">unassigned</option>
+            </tal:block>
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
- <th>Topic:</th>
- <td>
-  <select multiple name="topics" size="5">
-   <option value="">don't care</option>
-   <option value="-1">not selected</option>
-   <option value="">------------</option>
-   <option tal:repeat="s db/topic/list" tal:attributes="value s/id"
-     tal:content="s/name">topics to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="topic"></td>
- <td><input type="radio" name=":sort" value="topic"></td>
- <td><input type="radio" name=":group" value="topic"></td>
-</tr>
+        <tr tal:define="name string:bug_type;
+                db_klass string:bug_type;
+                db_content string:name;">
+          <th>Type:</th>
+          <td metal:use-macro="search_select">
+            <tal:block metal:fill-slot="extra_options">
+              <option value="-1" tal:attributes="selected python:value == '-1'">unspecified</option>
+            </tal:block>
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
- <th>Components:</th>
- <td>
-  <select multiple name="components" size="5">
-   <option value="">don't care</option>
-   <option value="-1">not selected</option>
-   <option value="">------------</option>
-   <option tal:repeat="s db/component/list" tal:attributes="value s/id"
-     tal:content="s/name">components to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="components"></td>
- <td><input type="radio" name=":sort" value="components"></td>
- <td><input type="radio" name=":group" value="components"></td>
-</tr>
+        <tr tal:define="name string:topic;
+                size string:5;
+                db_klass string:topic;
+                db_content string:name;">
+          <th>Topic:</th>
+          <td metal:use-macro="search_multiselect">
+            <tal:block metal:fill-slot="extra_options">
+              <option value="-1" tal:attributes="selected python:value == '-1'">unspecified</option>
+            </tal:block>
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
- <th>Platforms:</th>
- <td>
-  <select multiple name="platforms" size="5">
-   <option value="">don't care</option>
-   <option value="-1">not selected</option>
-   <option value="">------------</option>
-   <option tal:repeat="s db/platform/list" tal:attributes="value s/id"
-     tal:content="s/name">platforms to filter on</option>
-  </select>
- </td>
- <td><input type="checkbox" name=":columns" value="platforms"></td>
- <td><input type="radio" name=":sort" value="platforms"></td>
- <td><input type="radio" name=":group" value="platforms"></td>
-</tr>
+        <tr tal:define="name string:component;
+                size string:5;
+                db_klass string:component;
+                db_content string:name;">
+          <th>Components:</th>
+          <td metal:use-macro="search_multiselect">
+            <tal:block metal:fill-slot="extra_options">
+              <option value="-1" tal:attributes="selected python:value == '-1'">unspecified</option>
+            </tal:block>
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
-<th>Pagesize:</th>
-<td><input type="text" name=":pagesize" size="3" value="50"></td>
-</tr>
+        <tr tal:define="name string:platform;
+                size string:5;
+                db_klass string:platform;
+                db_content string:name;">
+          <th>Platforms:</th>
+          <td metal:use-macro="search_multiselect">
+            <tal:block metal:fill-slot="extra_options">
+              <option value="-1" tal:attributes="selected python:value == '-1'">unspecified</option>
+            </tal:block>
+          </td>
+          <td metal:use-macro="column_input"></td>
+          <td metal:use-macro="sort_input"></td>
+          <td metal:use-macro="group_input"></td>
+        </tr>
 
-<tr>
-<th>Start With:</th>
-<td><input type="text" name=":startwith" size="3" value="0"></td>
-</tr>
+        <tr>
+          <th>Pagesize:</th>
+          <td>
+            <input name=":pagesize" size="3" value="50"
+              tal:attributes="value request/form/:pagesize/value | default">
+          </td>
+        </tr>
 
-<tr>
-<th>Sort Descending:</th>
-<td><input type="checkbox" name=":sortdir" checked>
-</td>
+        <tr>
+          <th>Start With:</th>
+          <td>
+            <input name=":startwith" size="3" value="0"
+              tal:attributes="value request/form/:startwith/value | default">
+          </td>
+        </tr>
 
-<tr>
-<th>Group Descending:</th>
-<td><input type="checkbox" name=":groupdir">
-</td>
-</tr>
+        <tr>
+          <th>Sort Descending:</th>
+          <td>
+            <input type="checkbox" name=":sortdir"
+              tal:attributes="checked python:request.sort[0] == '-' or request.sort [0] is None">
+          </td>
+        </tr>
 
-<tr>
-<th>Query name**:</th>
-<td><input name=":queryname">
-</td>
-</tr>
+        <tr>
+          <th>Group Descending:</th>
+          <td>
+            <input type="checkbox" name=":groupdir"
+              tal:attributes="checked python:request.group[0] == '-'">
+          </td>
+        </tr>
 
-<tr><td>&nbsp;</td>
-<td><input type="submit" value="Search"></td>
-</tr>
+        <tr>
+          <th>Query name**:</th>
+          <td>
+            <input name=":queryname"
+               tal:attributes="value request/form/:queryname/value | default">
+          </td>
+        </tr>
 
-<tr><td>&nbsp;</td>
- <td colspan="4" class="help">
+        <tr>
+          <td>&nbsp;</td>
+          <td><input type="submit" value="Search"></td>
+        </tr>
+
+        <tr>
+          <td>&nbsp;</td>
+          <td colspan="4" class="help">
    *: The "all text" field will look in message bodies and bug titles<br>
    **: If you supply a name, the query will be saved off and available as a
        link in the sidebar
- </td>
-</tr>
-</table>
+          </td>
+        </tr>
+      </table>
 
-</form>
+    </form>
 
   </tal:block>
-</tal:block>
\ No newline at end of file
+</tal:block>