slitaz-forge view bugs/templates/slitaz/html/page.html @ rev 73

Tiny edits
author Paul Issott <paul@slitaz.org>
date Thu Apr 14 20:59:10 2011 +0100 (2011-04-14)
parents 72b6103af8b3
children 0af8c6e40dcd
line source
1 <!-- vim:sw=2 sts=2
2 --><tal:block metal:define-macro="icing"
3 ><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6 <head>
7 <title metal:define-slot="head_title">title goes here</title>
8 <link rel="stylesheet" type="text/css" href="@@file/style.css" />
9 <link rel="shortcut icon" href="@@file/favicon.ico" />
10 <meta http-equiv="Content-Type"
11 tal:attributes="content string:text/html;; charset=${request/client/charset}" />
12 <script tal:replace="structure request/base_javascript">
13 </script>
14 <metal:x define-slot="more-javascript" />
16 </head>
17 <body>
19 <!-- Header -->
20 <div id="header">
21 <div id="logo"></div>
22 <div id="network">
23 <a href="http://www.slitaz.org/">
24 <img src="http://tank.slitaz.org/images/network.png"
25 alt="network.png" /></a>
26 <a href="http://scn.slitaz.org/">Community</a>
27 <a href="http://doc.slitaz.org/">Doc</a>
28 <a href="http://forum.slitaz.org/">Forum</a>
29 <a href="http://bugs.slitaz.org/">Bugs</a>
30 <a href="http://hg.slitaz.org/">Hg</a>
31 </div>
32 <h1><a href="http://bugs.slitaz.org/">SliTaz Bugs</a></h1>
33 </div>
35 <!-- Block -->
36 <div id="block">
37 <!-- Navigation
38 <div id="block_nav" style="text-align: center; padding: 10px;">
40 </div>-->
41 <!-- Information/image -->
42 <div id="block_info">
43 <h4>SliTaz Bug Tracking System</h4>
44 <p>
45 Lets you track bugs, feature requests and tasks in one easy to
46 use and centralized place.
47 </p>
48 </div>
49 </div>
51 <table class="body"
52 tal:define="
53 kw_edit python:request.user.hasPermission('Edit', 'keyword');
54 kw_create python:request.user.hasPermission('Create', 'keyword');
55 kw_edit_link python:kw_edit and db.keyword.list();
56 columns string:id,activity,title,creator,status;
57 columns_showall string:id,activity,title,creator,assignedto,status;
58 status_notresolved string:-1,1,2,3,4,5,6,7;
59 "
60 >
62 <tr>
63 <td class="page-header-left">&nbsp;</td>
64 <td class="page-header-top">
65 <div id="searchbox">
66 <form method="get" action="issue">
67 <input type="hidden" name="@columns"
68 tal:attributes="value columns_showall"
69 value="id,activity,title,creator,assignedto,status" />
70 <input type="hidden" name="@sort" value="activity" />
71 <input type="hidden" name="@group" value="priority" />
72 <input id="search-text" name="@search_text" size="10"
73 tal:attributes="value request/search_text | default" />
74 <input type="submit" id="submit" name="submit" value="Search"
75 i18n:attributes="value" />
76 </form>
77 </div>
78 <div id="body-title">
79 <h2><span metal:define-slot="body_title">body title</span></h2>
80 </div>
81 </td>
82 </tr>
84 <tr>
85 <td rowspan="2" valign="top" class="sidebar">
86 <p class="classblock"
87 tal:condition="python:request.user.hasPermission('View', 'query')">
88 <span i18n:translate=""
89 ><b>Your Queries</b> (<a href="query?@template=edit">edit</a>)</span><br />
90 <tal:block tal:repeat="qs request/user/queries">
91 <a href="#" tal:attributes="href string:${qs/klass}?${qs/url}&@dispname=${qs/name}"
92 tal:content="qs/name">link</a><br />
93 </tal:block>
94 </p>
96 <form method="post" tal:attributes="action request/base">
97 <p class="classblock"
98 tal:condition="python:request.user.hasPermission('View', 'issue')">
99 <b i18n:translate="">Issues</b><br />
100 <span tal:condition="python:request.user.hasPermission('Create', 'issue')">
101 <a href="issue?@template=item" i18n:translate="">Create New</a><br />
102 </span>
103 <a href="#"
104 tal:attributes="href python:request.indexargs_url('issue', {
105 '@sort': '-activity',
106 '@group': 'priority',
107 '@filter': 'status,assignedto',
108 '@columns': columns,
109 '@search_text': '',
110 'status': status_notresolved,
111 'assignedto': '-1',
112 '@dispname': i18n.gettext('Show Unassigned'),
113 })"
114 i18n:translate="">Show Unassigned</a><br />
115 <a href="#"
116 tal:attributes="href python:request.indexargs_url('issue', {
117 '@sort': '-activity',
118 '@group': 'priority',
119 '@filter': 'status',
120 '@columns': columns_showall,
121 '@search_text': '',
122 'status': status_notresolved,
123 '@dispname': i18n.gettext('Show All'),
124 })"
125 i18n:translate="">Show All</a><br />
126 <a href="issue?@template=search" i18n:translate="">Search</a><br />
127 <input type="submit" class="form-small" value="Show issue:"
128 i18n:attributes="value" /><input class="form-small" size="4"
129 type="text" name="@number" />
130 <input type="hidden" name="@type" value="issue" />
131 <input type="hidden" name="@action" value="show" />
132 </p>
133 </form>
135 <p class="classblock"
136 tal:condition="python:kw_edit or kw_create">
137 <b i18n:translate="">Keywords</b><br />
138 <span tal:condition="python:request.user.hasPermission('Create', 'keyword')">
139 <a href="keyword?@template=item" i18n:translate="">Create New</a><br />
140 </span>
141 <span tal:condition="kw_edit_link">
142 <a href="keyword?@template=item" i18n:translate="">Edit Existing</a><br />
143 </span>
144 </p>
146 <p class="classblock"
147 tal:condition="python:request.user.hasPermission('View', 'user')">
148 <b i18n:translate="">Administration</b><br />
149 <span tal:condition="python:request.user.hasPermission('Edit', None)">
150 <a href="home?@template=classlist" i18n:translate="">Class List</a><br />
151 </span>
152 <span tal:condition="python:request.user.hasPermission('View', 'user')
153 or request.user.hasPermission('Edit', 'user')">
154 <a href="user" i18n:translate="">User List</a><br />
155 </span>
156 <a tal:condition="python:request.user.hasPermission('Create', 'user')"
157 href="user?@template=item" i18n:translate="">Add User</a>
158 </p>
160 <form method="post" tal:condition="python:request.user.username=='anonymous'"
161 tal:attributes="action request/base">
162 <p class="userblock">
163 <b i18n:translate="">Login</b><br />
164 <input size="18" name="__login_name" /><br />
165 <input size="18" type="password" name="__login_password" /><br />
166 <input type="hidden" name="@action" value="Login" />
167 <input type="checkbox" name="remember" id="remember" />
168 <label for="remember" i18n:translate="">Remember me?</label><br />
169 <input type="submit" value="Login" i18n:attributes="value" /><br />
170 <input type="hidden" name="__came_from"
171 tal:attributes="value string:${request/base}${request/env/PATH_INFO}" />
172 <span tal:replace="structure request/indexargs_form" />
173 <a href="user?@template=register"
174 tal:condition="python:request.user.hasPermission('Register', 'user')"
175 i18n:translate="">Register</a><br />
176 <a href="user?@template=forgotten" i18n:translate="">Lost&nbsp;your&nbsp;login?</a><br />
177 </p>
178 </form>
180 <p class="userblock" tal:condition="python:request.user.username != 'anonymous'">
181 <b i18n:translate="">Hello, <span i18n:name="user"
182 tal:replace="python:request.user.username.plain(escape=1)">username</span></b><br />
183 <a href="#"
184 tal:attributes="href python:request.indexargs_url('issue', {
185 '@sort': '-activity',
186 '@group': 'priority',
187 '@filter': 'status,assignedto',
188 '@columns': 'id,activity,title,creator,status',
189 '@search_text': '',
190 'status': status_notresolved,
191 'assignedto': request.user.id,
192 '@dispname': i18n.gettext('Your Issues'),
193 })"
194 i18n:translate="">Your Issues</a><br />
195 <a href="#" tal:attributes="href string:user${request/user/id}"
196 i18n:translate="">Your Details</a><br />
197 <a href="#" tal:attributes="href python:request.indexargs_url('',
198 {'@action':'logout'})" i18n:translate="">Logout</a>
199 </p>
200 </td>
201 <td>
202 <p tal:condition="options/error_message | nothing" class="error-message"
203 tal:repeat="m options/error_message" tal:content="structure m" />
204 <p tal:condition="options/ok_message | nothing" class="ok-message">
205 <span tal:repeat="m options/ok_message"
206 tal:content="structure string:$m <br/ > " />
207 <a class="form-small" tal:attributes="href request/current_url"
208 i18n:translate="">clear this message</a>
209 </p>
210 </td>
211 </tr>
212 <tr>
213 <td class="content" metal:define-slot="content">Page content goes here</td>
214 </tr>
216 </table>
218 <pre tal:condition="request/form/debug | nothing" tal:content="request">
219 </pre>
221 <!-- Footer -->
222 <div id="footer">
223 Copyright &copy; <span class="year"></span>
224 <a href="http://www.slitaz.org/">SliTaz</a> - Network:
225 <a href="http://scn.slitaz.org/">Community</a>
226 <a href="http://doc.slitaz.org/">Doc</a>
227 <a href="http://forum.slitaz.org/">Forum</a>
228 <a href="http://pkgs.slitaz.org/">Packages</a>
229 <a href="http://bugs.slitaz.org/">Bugs</a>
230 <a href="http://hg.slitaz.org/">Hg</a>
231 <p>
232 SliTaz @
233 <a href="http://twitter.com/slitaz">Twitter</a>
234 <a href="http://www.facebook.com/slitaz">Facebook</a>
235 <a href="http://distrowatch.com/slitaz">Distrowatch</a>
236 <a href="http://en.wikipedia.org/wiki/SliTaz">Wikipedia</a>
237 <a href="http://flattr.com/profile/slitaz">Flattr</a>
238 </p>
239 </div>
241 </body>
242 </html>
243 </tal:block>
245 <!--
246 The following macros are intended to be used in search pages.
248 The invoking context must define a "name" variable which names the
249 property being searched.
251 See issue.search.html in the classic template for examples.
252 -->
254 <!-- creates a th and a label: -->
255 <th metal:define-macro="th_label"
256 tal:define="required required | python:[]"
257 tal:attributes="class python:(name in required) and 'required' or nothing">
258 <label tal:attributes="for name" tal:content="label" i18n:translate="">text</label>
259 <metal:x define-slot="behind_the_label" />
260 </th>
262 <td metal:define-macro="search_input">
263 <input tal:attributes="value python:request.form.getvalue(name) or nothing;
264 name name;
265 id name" />
266 </td>
268 <td metal:define-macro="search_date">
269 <input tal:attributes="value python:request.form.getvalue(name) or nothing;
270 name name;
271 id name" />
272 <a class="classhelp"
273 tal:attributes="href python:'''javascript:help_window('issue?@template=calendar&property=%s&form=itemSynopsis', 300, 200)'''%name">(cal)</a>
274 </td>
276 <td metal:define-macro="search_popup">
277 <!--
278 context needs to specify the popup "columns" as a comma-separated
279 string (eg. "id,title" or "id,name,description") as well as name
280 -->
281 <input tal:attributes="value python:request.form.getvalue(name) or nothing;
282 name name;
283 id name" />
284 <span tal:replace="structure python:db[db_klass].classhelp(columns,
285 property=name)" />
286 </td>
288 <td metal:define-macro="search_select">
289 <select tal:attributes="name name; id name"
290 tal:define="value python:request.form.getvalue(name)">
291 <option value="" i18n:translate="">don't care</option>
292 <metal:slot define-slot="extra_options" />
293 <option value="" i18n:translate="" disabled="disabled">------------</option>
294 <option tal:repeat="s python:db[db_klass].list()"
295 tal:attributes="value s/id; selected python:value == s.id"
296 tal:content="python:s[db_content]"></option>
297 </select>
298 </td>
300 <!-- like search_select, but translates the further values.
301 Could extend it (METAL 1.1 attribute "extend-macro")
302 -->
303 <td metal:define-macro="search_select_translated">
304 <select tal:attributes="name name; id name"
305 tal:define="value python:request.form.getvalue(name)">
306 <option value="" i18n:translate="">don't care</option>
307 <metal:slot define-slot="extra_options" />
308 <option value="" i18n:translate="" disabled="disabled">------------</option>
309 <option tal:repeat="s python:db[db_klass].list()"
310 tal:attributes="value s/id; selected python:value == s.id"
311 tal:content="python:s[db_content]"
312 i18n:translate=""></option>
313 </select>
314 </td>
316 <!-- currently, there is no convenient API to get a list of all roles -->
317 <td metal:define-macro="search_select_roles"
318 tal:define="onchange onchange | nothing">
319 <select name=roles id=roles tal:attributes="onchange onchange">
320 <option value="" i18n:translate="">don't care</option>
321 <option value="" i18n:translate="" disabled="disabled">------------</option>
322 <option value="User">User</option>
323 <option value="Admin">Admin</option>
324 <option value="Anonymous">Anonymous</option>
325 </select>
326 </td>
328 <td metal:define-macro="search_multiselect">
329 <input tal:attributes="value python:request.form.getvalue(name) or nothing;
330 name name;
331 id name">
332 <span tal:replace="structure python:db[db_klass].classhelp(db_content,
333 property=name, width='600')" />
334 </td>
336 <td metal:define-macro="search_checkboxes">
337 <ul class="search-checkboxes"
338 tal:define="value python:request.form.getvalue(name);
339 values python:value and value.split(',') or []">
340 <li tal:repeat="s python:db[db_klass].list()">
341 <input type="checkbox" tal:attributes="name name; id string:$name-${s/id};
342 value s/id; checked python:s.id in values" />
343 <label tal:attributes="for string:$name-${s/id}"
344 tal:content="python:s[db_content]" />
345 </li>
346 <li metal:define-slot="no_value_item">
347 <input type="checkbox" value="-1" tal:attributes="name name;
348 id string:$name--1; checked python:value == '-1'" />
349 <label tal:attributes="for string:$name--1" i18n:translate="">no value</label>
350 </li>
351 </ul>
352 </td>
354 <td metal:define-macro="column_input">
355 <input type="checkbox" name="@columns"
356 tal:attributes="value name;
357 checked python:name in cols" />
358 </td>
360 <td metal:define-macro="sort_input">
361 <input type="radio" name="@sort"
362 tal:attributes="value name;
363 checked python:name == sort_on"> /
364 </td>
366 <td metal:define-macro="group_input">
367 <input type="radio" name="@group"
368 tal:attributes="value name;
369 checked python:name == group_on" />
370 </td>
372 <!--
373 The following macros are intended for user editing.
375 The invoking context must define a "name" variable which names the
376 property being searched; the "edit_ok" variable tells whether the
377 current user is allowed to edit.
379 See user.item.html in the classic template for examples.
380 -->
381 <script metal:define-macro="user_utils" type="text/javascript" src="@@file/user_utils.js"></script>
383 <!-- src: value will be re-used for other input fields -->
384 <input metal:define-macro="user_src_input"
385 type="text" tal:attributes="onblur python:edit_ok and 'split_name(this)';
386 id name; name name; value value; readonly not:edit_ok"
387 value="heinz.kunz" />
388 <!-- normal: no re-using -->
389 <input metal:define-macro="user_normal_input" type="text"
390 tal:attributes="id name; name name; value value; readonly not:edit_ok"
391 value="heinz" />
392 <!-- password: type; no initial value -->
393 <input metal:define-macro="user_pw_input" type="password"
394 tal:attributes="id name; name name; readonly not:edit_ok" value="" />
395 <input metal:define-macro="user_confirm_input" type="password"
396 tal:attributes="id name; name string:@confirm@$name; readonly not:edit_ok" value="" />