1 <tal:block metal:define-macro="icing">
2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
3 "http://www.w3.org/TR/html4/strict.dtd">
4 <html>
5 <head>
6 <title metal:define-slot="head_title">title goes here</title>
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8;">
9 <link rel="stylesheet" type="text/css" href="_file/style.css">
11 <script tal:replace="structure request/base_javascript">
12 </script>
14 </head>
15 <body class="body">
17 <table class="body">
19 <tr>
20 <td class="page-header-left"> </td>
21 <td class="page-header-top" metal:define-slot="body_title"><h2>name</h2></td>
22 </tr>
24 <tr>
25 <td rowspan="2" valign="top" class="sidebar">
26 <p class="classblock" tal:condition="request/user/queries">
27 <b>Your Queries</b><br>
28 <tal:block tal:repeat="qs request/user/queries">
29 <a tal:attributes="href string:${qs/klass}?${qs/url}"
30 tal:content="qs/name">link</a><br>
31 </tal:block>
32 </p>
34 <form method="POST" tal:attributes="action request/base">
35 <p class="classblock"
36 tal:condition="python:request.user.hasPermission('View', 'issue')">
37 <b>Issues</b><br>
38 <a tal:condition="python:request.user.hasPermission('Edit', 'issue')"
39 href="issue?:template=item">Create New<br></a>
40 <a href="issue?:sort=-activity&:group=priority&:filter=status,assignedto&:columns=id,activity,title,creator,status&status=-1,1,2,3,4,5,6,7&assignedto=-1">Show Unassigned</a><br>
41 <a href="issue?:sort=-activity&:group=priority&:filter=status&:columns=id,activity,title,creator,assignedto,status&status=-1,1,2,3,4,5,6,7">Show All</a><br>
42 <a href="issue?:template=search">Search</a><br>
43 <input type="submit" style="padding: 0" value="Show issue:"><input size="4" type="text" name=":number">
44 <input type="hidden" name=":type" value="issue">
45 <input type="hidden" name=":action" value="show">
46 </p>
47 </form>
49 <p class="classblock"
50 tal:condition="python:request.user.hasPermission('View', 'keyword')">
51 <b>Keywords</b><br>
52 <a tal:condition="python:request.user.hasPermission('Edit', 'keyword')"
53 href="keyword?:template=item">Create New<br></a>
54 <a tal:condition="python:request.user.hasPermission('Edit', 'keyword') and
55 len(db.keyword.list())"
56 href="keyword?:template=item">Edit Existing<br></a>
57 </p>
59 <p class="classblock"
60 tal:condition="python:request.user.username != 'anonymous'">
61 <b>Administration</b><br>
62 <tal:block tal:condition="python:request.user.hasPermission('Edit', None)">
63 <a href="home?:template=classlist">Class List</a><br>
64 </tal:block>
65 <a tal:condition="python:request.user.hasPermission('View', 'user')
66 or request.user.hasPermission('Edit', 'user')"
67 href="user" >User List</a><br>
68 <a tal:condition="python:request.user.hasPermission('Edit', 'user')"
69 href="user?:template=item">Add User</a>
70 </p>
72 <form method="POST" tal:condition="python:request.user.username=='anonymous'"
73 tal:attributes="action request/base">
74 <p class="userblock">
75 <b>Login</b><br>
76 <input size="10" name="__login_name"><br>
77 <input size="10" type="password" name="__login_password"><br>
78 <input type="submit" name=":action" value="Login"><br>
79 <span tal:replace="structure request/indexargs_form" />
80 <a href="user?:template=register">Register</a><br>
81 <a href="user?:template=forgotten">Lost your login?</a><br>
82 </p>
83 </form>
85 <p class="userblock" tal:condition="python:request.user.username != 'anonymous'">
86 <b>Hello,</b> <b tal:content="request/user/username">username</b><br>
87 <a tal:attributes="href string:issue?:sort=-activity&:group=priority&:filter=status,assignedto&:columns=id,activity,title,creator,status&status=-1,1,2,3,4,5,6,7&assignedto=${request/user/id}">My Issues</a><br>
88 <a tal:attributes="href string:user${request/user/id}">My Details</a><br>
89 <a tal:attributes="href python:request.indexargs_href('',
90 {':action':'logout'})">Logout</a>
91 </p>
92 <p class="userblock">
93 <b>Help</b><br>
94 <a href="http://roundup.sourceforge.net/doc-0.6/">Roundup docs</a>
95 </p>
96 </td>
97 <td>
98 <p tal:condition="options/error_message | nothing" class="error-message"
99 tal:repeat="m options/error_message" tal:content="structure m">error</p>
100 <p tal:condition="options/ok_message | nothing" class="ok-message"
101 tal:repeat="m options/ok_message" tal:content="structure m">error</p>
102 </td>
103 </tr>
104 <tr>
105 <td class="content" metal:define-slot="content">Page content goes here</td>
106 </tr>
108 </table>
110 <pre tal:condition="request/form/debug | nothing" tal:content="request">
111 </pre>
113 </body>
114 </html>
115 </tal:block>
117 <td metal:define-macro="search_input">
118 <input tal:attributes="value python:request.form.getvalue(name) or nothing;
119 name name">
120 </td>
122 <td metal:define-macro="search_select">
123 <select tal:attributes="name name"
124 tal:define="value python:request.form.getvalue(name)">
125 <option value="">don't care</option>
126 <tal:block metal:define-slot="extra_options"></tal:block>
127 <option value="">------------</option>
128 <option tal:repeat="s python:db[db_klass].list()"
129 tal:attributes="value s/id; selected python:value == s.id"
130 tal:content="python:s[db_content]"></option>
131 </select>
132 </td>
134 <td metal:define-macro="column_input">
135 <input type="checkbox" name=":columns"
136 tal:attributes="value name;
137 checked python:name in cols">
138 </td>
140 <td metal:define-macro="sort_input">
141 <input type="radio" name=":sort"
142 tal:attributes="value name;
143 checked python:name == sort_on">
144 </td>
146 <td metal:define-macro="group_input">
147 <input type="radio" name=":group"
148 tal:attributes="value name;
149 checked python:name == group_on">
150 </td>