Mercurial > p > roundup > code
annotate share/roundup/templates/devel/html/page.html @ 7531:913a73b9fab5 2.3.0
Update for 2.3.0 release
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 12 Jul 2023 23:00:25 -0400 |
| parents | d067b089b90b |
| children | a27f30709d46 |
| rev | line source |
|---|---|
| 4434 | 1 <tal:block metal:define-macro="frame"> |
| 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 <html> | |
| 4 <head> | |
| 5 <title metal:define-slot="head_title">title goes here</title> | |
| 6 <link rel="stylesheet" type="text/css" href="@@file/style.css" /> | |
| 7 <meta http-equiv="Content-Type" | |
| 8 tal:attributes="content string:text/html;; charset=${request/client/charset}" /> | |
| 9 <script tal:replace="structure request/base_javascript"></script> | |
| 10 <metal:x define-slot="more-javascript" /> | |
| 11 </head> | |
| 12 <body tal:attributes="class request/classname" | |
| 13 tal:define="kw_create python:request.user.hasPermission('Create', 'keyword'); | |
| 14 bug_columns string:id,activity,title,creator,status; | |
| 15 bug_columns_showall string:id,activity,title,creator,assignee,status; | |
| 16 bug_status_notclosed string:-1,1,2,4; | |
| 17 | |
| 18 task_columns string:id,activity,title,creator,status; | |
| 19 task_columns_showall string:id,activity,title,creator,assignee,status; | |
| 20 task_status_notclosed string:-1,1,2,4; | |
| 21 | |
| 22 milestone_columns string:id,activity,title,creator,status; | |
| 23 milestone_columns_showall string:id,activity,title,creator,assignee,status; | |
| 24 milestone_status_notclosed string:-1,1,2,4;"> | |
| 25 <div class="header"> | |
| 26 <h1><a href="/">Roundup Demo Tracker</a></h1> | |
| 27 <div id="searchbox"> | |
| 28 <form name="searchform" method="get" action="bug" id="searchform"> | |
| 29 <div id="search"> | |
| 30 <input type="hidden" name="@columns" | |
| 31 tal:attributes="value bug_columns_showall"/> | |
| 32 <input type="hidden" name="@sort" value="-activity" /> | |
| 33 <input type="hidden" name="@group" value="priority" /> | |
| 34 <input type="hidden" name="@filter" value="status"/> | |
| 35 <input type="hidden" name="status" tal:attributes="value bug_status_notclosed"/> | |
| 36 <input class="input-text" id="search-text" name="@search_text" size="10" /> | |
| 37 <input type="submit" id="submit" value="search in open bugs" name="submit" class="input-button"/> | |
| 38 </div> | |
| 39 </form> | |
| 40 </div> <!-- searchbox --> | |
| 41 </div> <!-- header --> | |
| 42 <div class="navigation"> | |
| 43 <div class="menu"> | |
| 44 <ul> | |
| 45 <li class="current"><a href="/" i18n:translate="">Bugs</a> | |
| 46 <ul tal:condition="python:request.user.hasPermission('View', 'bug')"> | |
| 47 <li tal:condition="python:request.user.hasPermission('Create', 'bug')"> | |
| 48 <a href="bug?@template=item" i18n:translate="">Create New</a> | |
| 49 </li> | |
| 50 <li> | |
| 51 <a href="#" | |
| 52 tal:attributes="href python:request.indexargs_url('bug', { | |
| 53 '@sort': '-activity', | |
| 54 '@group': 'priority', | |
| 55 '@filter': 'status', | |
| 56 '@columns': bug_columns_showall, | |
| 57 '@search_text': '', | |
| 58 'status': bug_status_notclosed, | |
| 59 '@dispname': i18n.gettext('Show All'), | |
| 60 '@startwith': 0, | |
| 61 })" | |
| 62 i18n:translate="">Show Open</a> | |
| 63 </li> | |
| 64 <li><a href="#" | |
| 65 tal:attributes="href python:request.indexargs_url('bug', { | |
| 66 '@sort': '-activity', | |
| 67 '@group': 'priority', | |
| 68 '@filter': 'status,assignee', | |
| 69 '@columns': bug_columns, | |
| 70 '@search_text': '', | |
| 71 'status': bug_status_notclosed, | |
| 72 'assignee': '-1', | |
| 73 '@dispname': i18n.gettext('Show Unassigned'), | |
| 74 '@startwith': 0, | |
| 75 })" | |
| 76 i18n:translate="">Show Unassigned</a> | |
| 77 </li> | |
| 78 <li> | |
| 79 <a href="bug?@template=search&status=1" i18n:translate="">Search</a> | |
| 80 </li> | |
| 81 <li> | |
| 82 <form method="post" action="#"> | |
| 83 <input type="submit" class="form-small" value="Show bug:" i18n:attributes="value"/> | |
| 84 <input class="form-small" size="4" type="text" name="@number"/> | |
| 85 <input type="hidden" name="@type" value="bug"/> | |
|
5207
4a157824f933
changes to try to deploy anti-csrf defense to other templates.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
86 <input name="@csrf" type="hidden" |
|
4a157824f933
changes to try to deploy anti-csrf defense to other templates.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
87 tal:attributes="value python:utils.anti_csrf_nonce()"> |
| 4434 | 88 <input type="hidden" name="@action" value="show"/> |
| 89 </form> | |
| 90 </li> | |
| 91 </ul> | |
| 92 </li> | |
| 93 <li class="current"><a href="/" i18n:translate="">Tasks</a> | |
| 94 <ul tal:condition="python:request.user.hasPermission('View', 'task')"> | |
| 95 <li tal:condition="python:request.user.hasPermission('Create', 'task')"> | |
| 96 <a href="task?@template=item" i18n:translate="">Create New</a> | |
| 97 </li> | |
| 98 <li> | |
| 99 <a href="#" tal:attributes="href python:request.indexargs_url('task', { | |
| 100 '@sort': '-activity', | |
| 101 '@group': 'priority', | |
| 102 '@filter': 'status', | |
| 103 '@columns': task_columns_showall, | |
| 104 '@search_text': '', | |
| 105 'status': task_status_notclosed, | |
| 106 '@dispname': i18n.gettext('Show All'), | |
| 107 '@startwith': 0, | |
| 108 })" | |
| 109 i18n:translate="">Show Open</a> | |
| 110 </li> | |
| 111 <li> | |
| 112 <a href="#" tal:attributes="href python:request.indexargs_url('task', { | |
| 113 '@sort': '-activity', | |
| 114 '@group': 'priority', | |
| 115 '@filter': 'status,assignee', | |
| 116 '@columns': task_columns, | |
| 117 '@search_text': '', | |
| 118 'status': task_status_notclosed, | |
| 119 'assignee': '-1', | |
| 120 '@dispname': i18n.gettext('Show Unassigned'), | |
| 121 '@startwith': 0, | |
| 122 })" | |
| 123 i18n:translate="">Show Unassigned</a> | |
| 124 </li> | |
| 125 <li> | |
| 126 <a href="task?@template=search&status=1" i18n:translate="">Search</a> | |
| 127 </li> | |
| 128 <li> | |
| 129 <form method="post" action="#"> | |
| 130 <input type="submit" class="form-small" value="Show task:" i18n:attributes="value"/> | |
| 131 <input class="form-small" size="4" type="text" name="@number"/> | |
| 132 <input type="hidden" name="@type" value="task"/> | |
|
5207
4a157824f933
changes to try to deploy anti-csrf defense to other templates.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
133 <input name="@csrf" type="hidden" |
|
4a157824f933
changes to try to deploy anti-csrf defense to other templates.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
134 tal:attributes="value python:utils.anti_csrf_nonce()"> |
| 4434 | 135 <input type="hidden" name="@action" value="show"/> |
| 136 </form> | |
| 137 </li> | |
| 138 </ul> | |
| 139 </li> | |
| 140 <li class="current"><a href="milestone" i18n:translate="">Milestones</a> | |
| 141 <ul tal:condition="python:request.user.hasPermission('View', 'milestone')"> | |
| 142 <li tal:condition="python:request.user.hasPermission('Create', 'milestone')"> | |
| 143 <a href="milestone?@template=item" i18n:translate="">Create New</a> | |
| 144 </li> | |
| 145 <li> | |
| 146 <a href="#" tal:attributes="href python:request.indexargs_url('milestone', { | |
| 147 '@filter': 'status', | |
| 148 'status': milestone_status_notclosed, | |
| 149 '@dispname': i18n.gettext('Show Open'), | |
| 150 '@startwith': 0, | |
|
5136
602d544e3a93
fixing some mismatched patches/patch references that I borked in a prior checkin. Patch support was not and still is not working. But at least this tracker runs without errors with demo.py -t devel, just missing features.
John Rouillard <rouilj@ieee.org>
parents:
5134
diff
changeset
|
151 '@group': 'status', |
| 4434 | 152 })" |
| 153 i18n:translate="">Show Open</a> | |
| 154 </li> | |
| 155 </ul> | |
| 156 </li> | |
| 157 </ul> | |
| 158 <ul class="user"> | |
| 159 <li tal:condition="python:request.user.username=='anonymous'" class="submenu"> | |
| 160 <b i18n:translate="">User</b> | |
|
5121
894aa07be6cb
issue2550785: Using login from search (or logout) fails. when
John Rouillard <rouilj@ieee.org>
parents:
4880
diff
changeset
|
161 <form method="post" tal:attributes="action request/base"> |
| 4434 | 162 <ul> |
| 163 <li> | |
| 164 <tal:span i18n:translate="">Login</tal:span><br/> | |
|
6461
d067b089b90b
Make username/password required in login form
John Rouillard <rouilj@ieee.org>
parents:
5709
diff
changeset
|
165 <input size="10" required name="__login_name"/><br/> |
|
d067b089b90b
Make username/password required in login form
John Rouillard <rouilj@ieee.org>
parents:
5709
diff
changeset
|
166 <input size="10" type="password" required name="__login_password"/><br/> |
|
5207
4a157824f933
changes to try to deploy anti-csrf defense to other templates.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
167 <input name="@csrf" type="hidden" |
|
4a157824f933
changes to try to deploy anti-csrf defense to other templates.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
168 tal:attributes="value python:utils.anti_csrf_nonce()"> |
| 4434 | 169 <input type="hidden" name="@action" value="Login"/> |
| 170 <input type="checkbox" name="remember" id="remember"/> | |
| 171 <label for="remember" i18n:translate="">Remember me?</label><br/> | |
| 172 <input class="form-small" type="submit" value="Login" i18n:attributes="value"/><br/> | |
|
5121
894aa07be6cb
issue2550785: Using login from search (or logout) fails. when
John Rouillard <rouilj@ieee.org>
parents:
4880
diff
changeset
|
173 <input type="hidden" name="__came_from" |
|
894aa07be6cb
issue2550785: Using login from search (or logout) fails. when
John Rouillard <rouilj@ieee.org>
parents:
4880
diff
changeset
|
174 tal:condition="exists:request/env/QUERY_STRING" |
|
894aa07be6cb
issue2550785: Using login from search (or logout) fails. when
John Rouillard <rouilj@ieee.org>
parents:
4880
diff
changeset
|
175 tal:attributes="value string:${request/base}${request/env/PATH_INFO}?${request/env/QUERY_STRING}"/> |
|
894aa07be6cb
issue2550785: Using login from search (or logout) fails. when
John Rouillard <rouilj@ieee.org>
parents:
4880
diff
changeset
|
176 <input type="hidden" name="__came_from" |
|
894aa07be6cb
issue2550785: Using login from search (or logout) fails. when
John Rouillard <rouilj@ieee.org>
parents:
4880
diff
changeset
|
177 tal:condition="not:exists:request/env/QUERY_STRING" |
|
894aa07be6cb
issue2550785: Using login from search (or logout) fails. when
John Rouillard <rouilj@ieee.org>
parents:
4880
diff
changeset
|
178 tal:attributes="value string:${request/base}${request/env/PATH_INFO}"/> |
| 4434 | 179 <span tal:replace="structure request/indexargs_form" /> |
| 180 </li> | |
| 181 <li> | |
| 182 <a href="user?@template=register" | |
|
5709
e2378b6afdb5
Fix issue2551041 - change permission check from "Create User" to
John Rouillard <rouilj@ieee.org>
parents:
5207
diff
changeset
|
183 tal:condition="python:request.user.hasPermission('Register', 'user')" |
| 4434 | 184 i18n:translate="">Register</a> |
| 185 </li> | |
| 186 <li> | |
| 187 <a href="user?@template=forgotten" i18n:translate="">Lost your login?</a> | |
| 188 </li> | |
| 189 </ul> | |
| 190 </form> | |
| 191 </li> | |
| 192 <li tal:condition="python:request.user.username != 'anonymous'" class="submenu"> | |
| 193 <p class="label"><b tal:replace="request/user/username">username</b></p> | |
| 194 <ul> | |
| 195 <li> | |
| 196 <a href="#" tal:attributes="href python:request.indexargs_url('bug', { | |
| 197 '@sort': '-activity', | |
| 198 '@group': 'priority', | |
| 199 '@filter': 'status,assignee', | |
| 200 '@columns': bug_columns, | |
| 201 '@search_text': '', | |
| 202 'status': bug_status_notclosed, | |
| 203 'assignee': request.user.id, | |
| 204 '@dispname': i18n.gettext('Bugs assigned to you'), | |
| 205 '@startwith': 0})" | |
| 206 i18n:translate="">Bugs assigned to you</a> | |
| 207 </li> | |
| 208 <li> | |
| 209 <a tal:attributes="href string:user${request/user/id}" i18n:translate="">Your Details</a> | |
| 210 </li> | |
| 211 <li> | |
| 212 <a tal:attributes="href python:request.indexargs_url('', {'@action':'logout'})" | |
| 213 i18n:translate="">Logout</a> | |
| 214 </li> | |
| 215 <li class="" tal:condition="python:request.user.hasPermission('View', 'query')"> | |
| 216 <span i18n:translate=""><b>Your Queries</b> (<a class="nomargin" href="query?@template=edit">edit</a>)</span><br/> | |
| 217 <ul tal:repeat="qs request/user/queries"> | |
| 218 <li> | |
|
5156
882fa4d9bead
issue2550795: @dispname query args in page.html search links
John Rouillard <rouilj@ieee.org>
parents:
5136
diff
changeset
|
219 <a tal:attributes="href string:${qs/klass}?${qs/url}&@dispname=${qs/name/url_quote}" tal:content="qs/name">link</a> |
| 4434 | 220 </li> |
| 221 </ul> | |
| 222 </li> | |
| 223 <li class="" tal:condition="python:request.user.hasPermission('View', 'user')"> | |
| 224 <b i18n:translate="">Administration</b> | |
| 225 <ul> | |
| 226 <li tal:condition="python:request.user.hasPermission('Edit', None)"> | |
| 227 <a href="home?@template=classlist" i18n:translate="">Class List</a> | |
| 228 </li> | |
| 229 <li tal:condition="python:request.user.hasPermission('View', 'user') | |
| 230 or request.user.hasPermission('Edit', 'user')"> | |
| 231 <a href="user?@sort=username" i18n:translate="">User List</a> | |
| 232 </li> | |
| 233 <li tal:condition="python:request.user.hasPermission('Create', 'user')"> | |
| 234 <a href="user?@template=item" i18n:translate="">Add User</a> | |
| 235 </li> | |
| 236 <li tal:condition="python:request.user.hasPermission('Edit', 'keyword')"> | |
| 237 <a href="keyword" i18n:translate="">Edit Keywords</a> | |
| 238 </li> | |
| 239 </ul> | |
| 240 </li> | |
| 241 </ul> | |
| 242 </li> | |
| 243 </ul> <!-- user --> | |
| 244 </div> <!-- menu --> | |
| 245 </div> <!-- navigation --> | |
| 246 <div class="content"> | |
| 247 <h1 id="breadcrumb"><span metal:define-slot="body_title">body title</span></h1> | |
| 248 <p tal:condition="options/error_message | nothing" class="error-message" | |
|
4880
ca692423e401
Different approach to fix XSS in issue2550817
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4851
diff
changeset
|
249 tal:repeat="m options/error_message" |
|
ca692423e401
Different approach to fix XSS in issue2550817
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4851
diff
changeset
|
250 tal:content="structure string:$m <br/ > " /> |
| 4434 | 251 <p tal:condition="options/ok_message | nothing" class="ok-message"> |
|
4880
ca692423e401
Different approach to fix XSS in issue2550817
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4851
diff
changeset
|
252 <span tal:repeat="m options/ok_message" |
|
ca692423e401
Different approach to fix XSS in issue2550817
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4851
diff
changeset
|
253 tal:content="structure string:$m <br/ > " /> |
|
4622
9d5825bf0b2d
Nicer display of multi-line error messages.
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4493
diff
changeset
|
254 <a class="form-small" tal:attributes="href request/current_url" |
|
9d5825bf0b2d
Nicer display of multi-line error messages.
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4493
diff
changeset
|
255 i18n:translate="">clear this message</a> |
| 4434 | 256 </p> |
| 257 <tal:block metal:define-slot="content">Page content goes here</tal:block> | |
| 258 </div> <!-- content --> | |
| 259 <div class="footer"> | |
| 260 <!-- Created: Wed Jan 14 11:55:38 EST 2009 --> | |
| 261 <!-- hhmts start --> | |
| 262 Last modified: Wed Jun 3 00:02:37 EDT 2009 | |
| 263 <!-- hhmts end --> | |
| 264 </div> <!-- footer --> | |
| 265 <pre tal:condition="request/form/deissue | nothing" tal:content="request"></pre> | |
| 266 </body> | |
| 267 </html> | |
| 268 </tal:block> | |
| 269 | |
| 270 <!-- | |
| 271 The following macros are intended to be used in search pages. | |
| 272 | |
| 273 The invoking context must define a "name" variable which names the | |
| 274 property being searched. | |
| 275 | |
| 276 See issue.search.html in the classic template for examples. | |
| 277 --> | |
| 278 | |
| 279 <!-- creates a th and a label: --> | |
| 280 <th metal:define-macro="th_label" | |
| 281 tal:define="required required | python:[]" | |
| 282 tal:attributes="class python:(name in required) and 'required' or nothing"> | |
| 283 <label tal:attributes="for name" tal:content="label" i18n:translate="">text</label> | |
| 284 <metal:x define-slot="behind_the_label" /> | |
| 285 </th> | |
| 286 | |
| 287 <td metal:define-macro="search_input"> | |
| 288 <input tal:attributes="value python:request.form.getvalue(name) or nothing; | |
| 289 name name; | |
| 290 id name"/> | |
| 291 </td> | |
| 292 | |
| 293 <td metal:define-macro="search_date"> | |
| 294 <input tal:attributes="value python:request.form.getvalue(name) or nothing; | |
| 295 name name; | |
| 296 id name"/> | |
| 297 <a class="classhelp" | |
| 298 tal:attributes="href python:'''javascript:help_window('task?@template=calendar&property=%s&form=itemSynopsis', 300, 200)'''%name">(cal)</a> | |
| 299 </td> | |
| 300 | |
| 301 <td metal:define-macro="search_popup"> | |
| 302 <!-- | |
| 303 context needs to specify the popup "columns" as a comma-separated | |
| 304 string (eg. "id,title" or "id,name,description") as well as name | |
| 305 --> | |
| 306 <input tal:attributes="value python:request.form.getvalue(name) or nothing; | |
| 307 name name; | |
| 308 id name"/> | |
| 309 <span tal:replace="structure python:db.task.classhelp(columns, | |
| 310 property=name)" /> | |
| 311 </td> | |
| 312 | |
| 313 <td metal:define-macro="search_select"> | |
| 314 <select tal:attributes="name name; id name" | |
| 315 tal:define="value python:request.form.getvalue(name)"> | |
| 316 <option value="" i18n:translate="">don't care</option> | |
| 317 <metal:slot define-slot="extra_options" /> | |
| 318 <option value="" i18n:translate="" disabled="disabled">------------</option> | |
| 319 <option tal:repeat="s python:db[db_klass].list()" | |
| 320 tal:attributes="value s/id; selected python:value == s.id" | |
| 321 tal:content="python:s[db_content]"></option> | |
| 322 </select> | |
| 323 </td> | |
| 324 | |
|
4466
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
325 <td metal:define-macro="search_select_keywords"> |
|
4493
97b6ff11571b
Fix keyword expression editor for 'devel' tracker template.
Stefan Seefeld <stefan@seefeld.name>
parents:
4466
diff
changeset
|
326 <div tal:attributes="id python:'''keywords_%s'''%name"> |
|
4466
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
327 <select tal:attributes="name name; id name" |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
328 tal:define="value python:request.form.getvalue(name)"> |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
329 <option value="" i18n:translate="">don't care</option> |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
330 <metal:slot define-slot="extra_options" /> |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
331 <option value="" i18n:translate="" disabled="disabled">------------</option> |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
332 <option tal:repeat="s python:db[db_klass].list()" |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
333 tal:attributes="value s/id; selected python:value == s.id" |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
334 tal:content="python:s[db_content]"></option> |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
335 </select> |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
336 <a class="classhelp" |
|
4493
97b6ff11571b
Fix keyword expression editor for 'devel' tracker template.
Stefan Seefeld <stefan@seefeld.name>
parents:
4466
diff
changeset
|
337 tal:attributes="href python:'''javascript:help_window('%s?@template=keywords_expr&property=%s&form=itemSynopsis', 300, 200)'''%(request.classname, name)">(edit)</a> |
|
97b6ff11571b
Fix keyword expression editor for 'devel' tracker template.
Stefan Seefeld <stefan@seefeld.name>
parents:
4466
diff
changeset
|
338 </div> |
|
4466
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
339 </td> |
|
f1fe6fd0aa61
Multilinks can be filtered by combining elements with AND, OR and NOT now.
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4434
diff
changeset
|
340 |
| 4434 | 341 <!-- like search_select, but translates the further values. |
| 342 Could extend it (METAL 1.1 attribute "extend-macro") | |
| 343 --> | |
| 344 <td metal:define-macro="search_select_translated"> | |
| 345 <select tal:attributes="name name; id name" | |
| 346 tal:define="value python:request.form.getvalue(name)"> | |
| 347 <option value="" i18n:translate="">don't care</option> | |
| 348 <metal:slot define-slot="extra_options" /> | |
| 349 <option value="" i18n:translate="" disabled="disabled">------------</option> | |
| 350 <option tal:repeat="s python:db[db_klass].list()" | |
| 351 tal:attributes="value s/id; selected python:value == s.id" | |
| 352 tal:content="python:s[db_content]" | |
| 353 i18n:translate=""></option> | |
| 354 </select> | |
| 355 </td> | |
| 356 | |
| 357 <!-- currently, there is no convenient API to get a list of all roles --> | |
| 358 <td metal:define-macro="search_select_roles" | |
| 359 tal:define="onchange onchange | nothing"> | |
| 360 <select name="roles" id="roles" tal:attributes="onchange onchange"> | |
| 361 <option value="" i18n:translate="">don't care</option> | |
| 362 <option value="" i18n:translate="" disabled="disabled">------------</option> | |
| 363 <option value="User">User</option> | |
| 364 <option value="Developer">Developer</option> | |
| 365 <option value="Coordinator">Coordinator</option> | |
| 366 </select> | |
| 367 </td> | |
| 368 | |
| 369 <td metal:define-macro="search_multiselect"> | |
| 370 <input tal:attributes="value python:request.form.getvalue(name) or nothing; | |
| 371 name name; | |
| 372 id name"/> | |
| 373 <span tal:replace="structure python:db[db_klass].classhelp(db_content, | |
| 374 property=name, width='600')" /> | |
| 375 </td> | |
| 376 | |
| 377 <td metal:define-macro="search_checkboxes"> | |
| 378 <ul class="search-checkboxes" | |
| 379 tal:define="value python:request.form.getvalue(name); | |
| 380 values python:value and value.split(',') or []"> | |
| 381 <li tal:repeat="s python:db[db_klass].list()"> | |
| 382 <input type="checkbox" tal:attributes="name name; id string:$name-${s/id}; | |
| 383 value s/id; checked python:s.id in values" /> | |
| 384 <label tal:attributes="for string:$name-${s/id}" | |
| 385 tal:content="python:s[db_content]" /> | |
| 386 </li> | |
| 387 <li metal:define-slot="no_value_item"> | |
| 388 <input type="checkbox" value="-1" tal:attributes="name name; | |
| 389 id string:$name--1; checked python:value == '-1'" /> | |
| 390 <label tal:attributes="for string:$name--1" i18n:translate="">no value</label> | |
| 391 </li> | |
| 392 </ul> | |
| 393 </td> | |
| 394 | |
| 395 <td metal:define-macro="column_input"> | |
| 396 <input type="checkbox" name="@columns" | |
| 397 tal:attributes="value name; | |
| 398 checked python:name in cols"/> | |
| 399 </td> | |
| 400 | |
| 401 <td metal:define-macro="sort_input"> | |
| 402 <input type="radio" name="@sort" | |
| 403 tal:attributes="value name; | |
| 404 checked python:name == sort_on"/> | |
| 405 </td> | |
| 406 | |
| 407 <td metal:define-macro="group_input"> | |
| 408 <input type="radio" name="@group" | |
| 409 tal:attributes="value name; | |
| 410 checked python:name == group_on"/> | |
| 411 </td> | |
| 412 | |
| 413 <!-- | |
| 414 The following macros are intended for user editing. | |
| 415 | |
| 416 The invoking context must define a "name" variable which names the | |
| 417 property being searched; the "edit_ok" variable tells whether the | |
| 418 current user is allowed to edit. | |
| 419 | |
| 420 See user.item.html in the classic template for examples. | |
| 421 --> | |
| 422 <script metal:define-macro="user_utils" type="text/javascript" src="@@file/user_utils.js"></script> | |
| 423 | |
| 424 <!-- src: value will be re-used for other input fields --> | |
| 425 <input metal:define-macro="user_src_input" | |
| 426 type="text" tal:attributes="onblur python:edit_ok and 'split_name(this)'; | |
| 427 id name; name name; value value; readonly not:edit_ok" | |
| 428 value="heinz.kunz"/> | |
| 429 <!-- normal: no re-using --> | |
| 430 <input metal:define-macro="user_normal_input" type="text" | |
| 431 tal:attributes="id name; name name; value value; readonly not:edit_ok" | |
| 432 value="heinz"/> | |
| 433 <!-- password: type; no initial value --> | |
| 434 <input metal:define-macro="user_pw_input" type="password" | |
| 435 tal:attributes="id name; name name; readonly not:edit_ok" value=""/> | |
| 436 <input metal:define-macro="user_confirm_input" type="password" | |
| 437 tal:attributes="id name; name string:@confirm@$name; readonly not:edit_ok" value=""/> | |
| 438 | |
|
5136
602d544e3a93
fixing some mismatched patches/patch references that I borked in a prior checkin. Patch support was not and still is not working. But at least this tracker runs without errors with demo.py -t devel, just missing features.
John Rouillard <rouilj@ieee.org>
parents:
5134
diff
changeset
|
439 <!-- SHA: ca32e5f43efcb7c3b4940df6f7a176f6990b15f0 --> |
