annotate website/issues/html/issue.item.html @ 7481:d397647d8d5a

Add latest fix and update number of changes.
author John Rouillard <rouilj@ieee.org>
date Sun, 11 Jun 2023 23:06:29 -0400
parents 12c5ddf865b1
children 63390dcfcfe9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
1 <tal:block metal:use-macro="templates/page/macros/icing">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
2 <title metal:fill-slot="head_title">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
3 <tal:block condition="context/id" i18n:translate=""
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
4 >Issue <span tal:replace="context/id" i18n:name="id"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
5 />: <span tal:replace="context/title" i18n:name="title"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
6 /> - <span tal:replace="config/TRACKER_NAME" i18n:name="tracker"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
7 /></tal:block>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
8 <tal:block condition="not:context/id" i18n:translate=""
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
9 >New Issue - <span tal:replace="config/TRACKER_NAME" i18n:name="tracker"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
10 /></tal:block>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
11 </title>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
12 <tal:block metal:fill-slot="body_title">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
13 <span tal:condition="python: not (context.id or context.is_edit_ok())"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
14 tal:omit-tag="python:1" i18n:translate="">New Issue</span>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
15 <span tal:condition="python: not context.id and context.is_edit_ok()"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
16 tal:omit-tag="python:1" i18n:translate="">New Issue Editing</span>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
17 <span tal:condition="python: context.id and not context.is_edit_ok()"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
18 tal:omit-tag="python:1" i18n:translate="">Issue <tal:x
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
19 replace="context/id" i18n:name="id" /></span>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
20 <span tal:condition="python: context.id and context.is_edit_ok()"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
21 tal:omit-tag="python:1" i18n:translate="">Issue<tal:x
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
22 replace="context/id" i18n:name="id" /> Editing</span>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
23 </tal:block>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
24
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
25 <td class="content" metal:fill-slot="content">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
26
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
27 <p tal:condition="python:not (context.is_view_ok()
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
28 or request.user.hasRole('Anonymous'))" i18n:translate="">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
29 You are not allowed to view this page.</p>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
30
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
31 <p tal:condition="python:not context.is_view_ok()
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
32 and request.user.hasRole('Anonymous')" i18n:translate="">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
33 Please login with your username and password.</p>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
34
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
35 <div tal:condition="context/is_view_ok">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
36
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
37 <form method="POST" name="itemSynopsis"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
38 onSubmit="return submit_once()" enctype="multipart/form-data"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
39 tal:attributes="action context/designator">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
40
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
41 <fieldset><legend>classification</legend>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
42 <table class="form">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
43 <tr>
6306
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
44 <th class="required"><label for="title" i18n:translate="">Title:</label></th>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
45 <td colspan="3" tal:condition="context/title/is_edit_ok"
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
46 tal:content="structure python:context.title.field(id='title', size=60)">title</td>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
47 <td colspan="3" tal:condition="not:context/title/is_edit_ok">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
48 <span tal:content="structure context/title/plain"/>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
49 <input type="hidden" name="title" tal:attributes="value context/title">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
50 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
51 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
52
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
53 <tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
54 <th class="required" i18n:translate="">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
55 <span tal:replace="structure python:db.issue_type.classhelp('id,name,description',label='Type')" />:
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
56 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
57 <td tal:content="structure context/type/menu">type</td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
58 <th i18n:translate="">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
59 <span tal:replace="structure python:db.severity.classhelp('id,name,description',label='Severity')" />:
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
60 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
61 <td tal:content="structure context/severity/menu">components</td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
62 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
63
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
64 <tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
65 <th i18n:translate="">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
66 <span tal:replace="structure python:db.component.classhelp('id,name,description',label='Components')" />:
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
67 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
68 <td tal:content="structure context/components/menu">components</td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
69 <th i18n:translate="">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
70 <span tal:replace="structure python:db.version.classhelp('id,name,description',label='Versions')" />:
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
71 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
72 <td tal:content="structure context/versions/menu">versions</td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
73 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
74 </table>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
75 </fieldset>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
76
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
77 <fieldset><legend>process</legend>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
78 <table class="form">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
79 <tr tal:condition="context/id">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
80 <th i18n:translate="">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
81 <span tal:replace="structure python:db.status.classhelp('id,name,description',label='Status')" />:
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
82 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
83 <td tal:content="structure context/status/menu">status</td>
6306
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
84 <th><label for="resolution" i18n:translate="">Resolution:</label></th>
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
85 <td tal:content="structure python:context.resolution.menu(html_kwargs={'id':'resolution'})">resolution</td>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
86 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
87
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
88 <tr tal:condition="context/id">
6306
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
89 <th> <label for="dependencies" i18n:translate="">Dependencies</label>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
90 <span tal:condition="context/dependencies/is_edit_ok"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
91 tal:replace="structure python:db.issue.classhelp('id,title', filter='status=0,1', property='dependencies')" />
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
92 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
93 <td>
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
94 <span tal:replace="structure python:context.dependencies.field(id='dependencies',showid=1,size=20)" />
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
95 <span tal:condition="context/dependencies" tal:repeat="d python:context.dependencies.sorted('creation')">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
96 <br/>View: <a tal:attributes="href string:issue${d/id}" tal:content="d/id"></a>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
97 </span>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
98 </td>
6306
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
99 <th>
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
100 <tal:block><label for="superseder" i18n:translate="">Superseder</label></tal:block>:
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
101 <span tal:condition="context/superseder/is_edit_ok"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
102 tal:replace="structure python:db.issue.classhelp('id,title', filter='status=0,1', property='superseder')" />
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
103 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
104 <td>
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
105 <span tal:replace="structure python:context.superseder.field(id='superseder', showid=1, size=20)" />
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
106 <span tal:condition="context/superseder">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
107 <!-- <br><span i18n:translate="">View</span>:
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
108 <a tal:repeat="sup context/superseder"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
109 tal:content="python:sup['id'] + ', '*(not repeat['sup'].end)"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
110 tal:attributes="href string:issue${sup/id}; title sup/title;"></a> -->
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
111 <br><span i18n:translate="">View</span>:
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
112 <a tal:content="context/superseder/id"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
113 tal:attributes="href string:issue${context/superseder/id}; title context/superseder/title;"></a>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
114 </span>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
115 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
116 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
117 <tr>
6306
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
118 <th><label for="assignee" i18n:translate="">Assigned To</label>:</th>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
119 <td tal:condition="context/status/is_edit_ok">
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
120 <select id="assignee" name="assignee">
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
121 <option value="-1">nobody</option>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
122 <tal:block tal:repeat="userdata python:db._db.user.filter_sql('select id,_username from _user where _roles like \'%Developer%\' order by _username')">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
123 <option tal:attributes="value python:userdata[0];
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
124 selected python:str(userdata[0]) == context.assignee._value"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
125 tal:content="python:userdata[1]"></option>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
126 </tal:block>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
127 </select>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
128 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
129 <td tal:condition="not:context/assignee/is_edit_ok">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
130 <span tal:replace="structure context/assignee/plain" />
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
131 </td>
6306
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
132 <th><label for="nosy" i18n:translate="">Nosy List</label>:
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
133 <span tal:condition="context/nosy/is_edit_ok"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
134 tal:replace="structure python:db.user.classhelp('username,realname,address', property='nosy')" />
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
135 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
136 <td>
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
137 <span tal:replace="structure python:context.nosy.field(id='nosy')" />
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
138 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
139 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
140 <tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
141 <th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
142 <span tal:replace="structure python:db.priority.classhelp('id,name,description',label='Priority')" />:
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
143 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
144 <td tal:content="structure context/priority/menu">priority</td>
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
145 <th><label for="keywords" i18n:translate="">Keywords</label>:</th>
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
146 <td tal:content="structure python:context['keywords'].menu(height=5,html_kwargs={'id': 'keywords'})">keywords</td>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
147
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
148
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
149 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
150 <tr tal:condition="context/is_edit_ok">
6306
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
151 <th><label for="@note" i18n:translate="">Comment</label>:</th>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
152 <td colspan="3">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
153 <textarea tal:content="request/form/@note/value | default"
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
154 id="@note" name="@note" wrap="hard" rows="10" cols="72"></textarea>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
155 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
156 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
157
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
158 <tr tal:condition="context/is_edit_ok">
6306
871dc7904d7a Add labels for some inputs on issue.item.
John Rouillard <rouilj@ieee.org>
parents: 4644
diff changeset
159 <th><label for="file-1@content" i18n:translate="">File</label>:</th>
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
160 <td>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
161 <input type="hidden" name="@link@files" value="file-1">
6307
6ad3b2d46852 more lighthouse fixes
John Rouillard <rouilj@ieee.org>
parents: 6306
diff changeset
162 <input type="file" id="file-1@content" name="file-1@content" size="40">
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
163 </td>
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
164 <th><label for="file-1@description" i18n:translate="">File Description</label>:</th>
6683
12c5ddf865b1 type-edit invalid change to type-text for file description.
John Rouillard <rouilj@ieee.org>
parents: 6507
diff changeset
165 <td colspan=3><input type="text" class="fileDesc" id="file-1@description" name="file-1@description" size="40"></td>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
166 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
167 <tr tal:condition="context/is_edit_ok">
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
168 <td colspan=4>
6507
bc95f7431efb Remove miscommited issue directory; AboutPage fix; aria for drag/drop
John Rouillard <rouilj@ieee.org>
parents: 6476
diff changeset
169 <textarea readonly id="DropZone" aria-labeledby="DropZone">
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
170 paste images or drag and drop files here....
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
171 </textarea>
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
172 </td>
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
173 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
174 </table>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
175 </fieldset>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
176 <table class="form">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
177 <tr tal:condition="context/is_edit_ok">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
178 <td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
179 &nbsp;
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
180 <input type="hidden" name="@template" value="item">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
181 <input type="hidden" name="@required" value="title">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
182 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
183 <td colspan=3>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
184 <span tal:replace="structure context/submit">submit button</span>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
185 <a tal:condition="context/id" tal:attributes="href context/copy_url"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
186 i18n:translate="">Make a copy</a>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
187 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
188 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
189 </table>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
190 </form>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
191
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
192 <!-- drag and drop code -->
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
193 <script tal:attributes="nonce request/client/client_nonce">
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
194 /* multiple file drops cause issues with redefined
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
195 file-X@content issues. input multiple assumes
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
196 it can start numbering from 1 for each of the
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
197 multiple files. However numbering here does the
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
198 same leading to duplicate file-2@content.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
199
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
200 layout needs some work, alignnment of new file
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
201 input's isn't great.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
202
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
203 Need a way to delete or reset file inputs so file
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
204 assigned to them isn't uploaded. Clicking on button
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
205 in chrome and then canceling unsets the file. But this
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
206 sequence does nothing in firefox.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
207
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
208 Pasting always uses image.<type> can't name file.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
209 Need to query user during paste for name/description.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
210 */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
211
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
212 let newInput=null;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
213 let NextInputNum = 100; /* file input 1 is hardcoded in form.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
214 It is a multiple file input control. To
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
215 prevent collision, we start dynamic file controls at
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
216 file-100@content. 100 is larger than we expect
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
217 the number of files uploaded using file input 1.*/
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
218
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
219 let target = document.getElementById('DropZone');
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
220 target.style.display = "block";
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
221 let body = document.body;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
222 let fileInput = document.getElementById('file-1@content');
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
223 let fileDesc = document.getElementById('file-1@description');
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
224
6474
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
225 function make_clear_fileInput_closure(input) {
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
226 return function(ev) { input.value = "";
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
227 ev.preventDefault();}
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
228 }
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
229
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
230
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
231 function make_new_clear_button() {
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
232 newClearInput=document.createElement('button');
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
233 newClearInput.textContent = "X";
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
234 newClearInput.setAttribute("aria-label",
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
235 "Clear next file input.");
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
236 newClearInput.setAttribute("title",
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
237 "Clear next file input.");
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
238 newClearInput.classList.add("clearButton");
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
239 return newClearInput;
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
240 }
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
241
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
242 function make_new_file_input() {
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
243 newInput=document.createElement('input');
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
244 newInput.type="file";
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
245 newInput.id="file-" + NextInputNum +"@content";
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
246 newInput.name=newInput.id;
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
247 return newInput;
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
248 }
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
249
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
250 function add_file_input () {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
251 // Only allow one change listener on newest input.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
252 fileInput.removeEventListener('change',
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
253 add_file_input,
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
254 false);
6474
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
255 newClearInput = fileInput.insertAdjacentElement(
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
256 'beforebegin',
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
257 make_new_clear_button());
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
258
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
259 // add change handler to file clear button
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
260 newClearInput.addEventListener('click',
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
261 make_clear_fileInput_closure(fileInput),
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
262 false);
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
263
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
264 /* Insert break so next input is on new line */
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
265 br = fileInput.insertAdjacentElement('afterend',
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
266 document.createElement('br'));
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
267
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
268 /* create new file input to get next dragged file */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
269 /* <input type="file" name="file-2@content"> for 2,
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
270 3, 4, ... */
6474
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
271 fileInput = br.insertAdjacentElement('afterend',
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
272 make_new_file_input());
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
273
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
274 // add change hander to newest file input
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
275 fileInput.addEventListener('change',
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
276 add_file_input, // create new input for more files
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
277 false);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
278
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
279 /* link file-N to list of files on issue.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
280 also link to msg-1 */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
281 addLink=document.createElement('input');
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
282 addLink.type="hidden";
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
283 addLink.id="@link@file=file-" + NextInputNum;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
284 addLink.name="@link@files"
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
285 addLink.value="file-" + NextInputNum;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
286 fileInput.insertAdjacentElement('afterend', addLink);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
287
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
288 addLink=document.createElement('input');
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
289 addLink.type="hidden";
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
290 addLink.id="msg-1@link@files=file-" + NextInputNum;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
291 addLink.name="msg-1@link@files"
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
292 addLink.value="file-" + NextInputNum
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
293 fileInput.insertAdjacentElement('afterend', addLink);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
294
6474
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
295 /* break line before description field to prevent
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
296 wrapping multiple descriptions onto one line when
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
297 zoomed out or large display.*/
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
298 br = fileDesc.insertAdjacentElement('afterend',
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
299 document.createElement('br'));
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
300 fileDesc=document.createElement('input');
6683
12c5ddf865b1 type-edit invalid change to type-text for file description.
John Rouillard <rouilj@ieee.org>
parents: 6507
diff changeset
301 fileDesc.type="text";
6474
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
302 fileDesc.id="file-" + NextInputNum + "@description";
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
303 fileDesc.name=fileDesc.id
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
304 fileDesc.size = 40
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
305 fileDesc.classList.add("fileDesc");
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
306 fileDesc=br.insertAdjacentElement('afterend', fileDesc);
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
307
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
308 NextInputNum = NextInputNum+1;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
309 }
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
310
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
311 function MarkDropZone(e, active) {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
312 active == true ? e.style.backgroundColor = "goldenrod" :
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
313 e.style.backgroundColor = "";
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
314 }
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
315 fileInput.addEventListener('change',
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
316 add_file_input, // create new input for more files
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
317 false);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
318
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
319 target.addEventListener('dragover', (e) => {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
320 e.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
321 body.classList.add('dragging');
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
322 });
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
323
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
324 target.addEventListener('dragenter', (e) => {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
325 e.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
326 MarkDropZone(target, true);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
327 });
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
328
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
329
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
330 target.addEventListener('dragleave', (e) => {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
331 e.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
332 MarkDropZone(target, false);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
333 });
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
334
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
335 target.addEventListener('dragleave', () => {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
336 body.classList.remove('dragging');
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
337 });
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
338
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
339 target.addEventListener('drop', (e) => {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
340 body.classList.remove('dragging');
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
341 MarkDropZone(target, false);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
342
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
343 // Only allow single file drop unless
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
344 // fileInput name is @file that can support
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
345 // multiple file drop and file drop is multiple.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
346 if (( fileInput.name != "@file" ||
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
347 ! fileInput.hasAttribute('multiple')) &&
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
348 e.dataTransfer.files.length != 1 ) {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
349 alert("File input can only accept one file.")
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
350 e.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
351 return
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
352 }
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
353 // set file input files to the dragged files
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
354 fileInput.files = e.dataTransfer.files;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
355
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
356 add_file_input(); // create new input for more files
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
357 // run last otherwise firefox empties e.dataTransfer
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
358 e.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
359 });
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
360
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
361 target.addEventListener('mouseover', (e) => {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
362 e.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
363 MarkDropZone(target, true);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
364 });
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
365
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
366 target.addEventListener('mouseout', (e) => {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
367 e.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
368 MarkDropZone(target, false);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
369 });
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
370
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
371 target.addEventListener('paste', (event) => {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
372 // https://mobiarch.wordpress.com/2013/09/25/upload-image-by-copy-and-paste/
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
373 // add paste event listener to the page
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
374
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
375 // https://stackoverflow.com/questions/50427513/
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
376 // html-paste-clipboard-image-to-file-input
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
377 if ( event.clipboardData.files.length == 0) {
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
378 // if not file data alert
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
379 alert("No image found for pasting");
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
380 event.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
381 return;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
382 }
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
383 fileInput.files = event.clipboardData.files;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
384
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
385 /* Possible enhancement if file check fails.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
386 iterate over all items 0 ...:
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
387 event.clipboardData.items.length
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
388 look at all items[i].kind for 'string' and
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
389 items[i].type looking for a text/plain item. If
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
390 found,
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
391 event.clipboardData.items[1].getAsString(
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
392 callback_fcn(s))
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
393
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
394 where callback function that creates a new
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
395 dataTransfer object with a file and insert the
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
396 content s and assigns it to the input.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
397
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
398 https://gist.github.com/guest271314/7eac2c21911f5e40f489\33ac78e518bd
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
399 */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
400 add_file_input(); // create new input for more files
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
401 // do not paste contents to dropzone
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
402 event.preventDefault();
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
403 }, false);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
404 </script>
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
405 <style tal:attributes="nonce request/client/client_nonce">
6474
a2c340261290 Add button to clear file input.
John Rouillard <rouilj@ieee.org>
parents: 6454
diff changeset
406 #FileArea button.clearButton ~ input[type=file] {display:inline-block;}
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
407 #DropZone { /* don't display dropzone by default.
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
408 Displayed as block by javascript. */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
409 display:none;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
410 width: 100%;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
411 /* override textarea inset */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
412 border-style: dashed;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
413 padding: 3ex 0; /* larger dropzone */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
414 /* add space below inputs */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
415 margin-block-start: 1em;
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
416 /* lighter color */
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
417 background: rgba(255,255,255,0.4);
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
418 }
6476
10a8a6bc4667 Change spacing for file addition; larger comment block; top label
John Rouillard <rouilj@ieee.org>
parents: 6474
diff changeset
419 input[id$=\@content], input.fileDesc {margin-block-end: 0.5em}
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
420 </style>
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
421
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
422 <p tal:condition="context/id" i18n:translate="">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
423 Created on <b><tal:x replace="python:context.creation.pretty('%Y-%m-%d %H:%M')" i18n:name="creation" /></b>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
424 by <b><tal:x replace="context/creator" i18n:name="creator" /></b>,
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
425 last changed <b><tal:x replace="python:context.activity.pretty('%Y-%m-%d %H:%M')" i18n:name="activity" /></b>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
426 by <b><tal:x replace="context/actor" i18n:name="actor" /></b>.
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
427 </p>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
428
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
429 <table class="files" tal:condition="context/files">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
430 <tr><th colspan="5" class="header" i18n:translate="">Files</th></tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
431 <tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
432 <th i18n:translate="">File name</th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
433 <th i18n:translate="">Uploaded</th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
434 <th i18n:translate="">Description</th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
435 <th i18n:translate="">Edit</th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
436 <th i18n:translate="">Remove</th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
437 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
438 <tr tal:repeat="file python:context.files.sorted('creation')">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
439 <td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
440 <a tal:attributes="href file/download_url"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
441 tal:content="file/name">dld link</a>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
442 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
443 <td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
444 <span tal:content="file/creator">creator's name</span>,
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
445 <span tal:content="python:file.creation.pretty('%Y-%m-%d %H:%M')">creation date</span>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
446 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
447 <td tal:content="file/description" />
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
448 <td><a tal:condition="file/is_edit_ok"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
449 tal:attributes="href string:file${file/id}">edit</a>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
450 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
451 <td>
4644
20e0e5ce217f Tracker: Following upgrading docs for the "retire" and "remove" buttons.
Bernhard Reiter <bernhard@intevation.de>
parents: 4024
diff changeset
452 <form style="padding:0" method="POST" tal:condition="file/is_edit_ok"
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
453 tal:attributes="action string:issue${context/id}">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
454 <input type="hidden" name="@remove@files" tal:attributes="value file/id">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
455 <input type="hidden" name="@action" value="edit">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
456 <input type="submit" value="remove" i18n:attributes="value">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
457 </form>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
458 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
459 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
460 </table>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
461
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
462 <table class="messages" tal:condition="context/messages">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
463 <tr><th colspan="4" class="header" i18n:translate="">Messages</th></tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
464 <tal:block tal:repeat="msg context/messages">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
465 <tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
466 <th><a tal:attributes="href string:msg${msg/id}"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
467 i18n:translate="">msg<tal:x replace="msg/id" i18n:name="id" /></a></th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
468 <th i18n:translate="">Author: <tal:x replace="python:msg.author.realname.plain()"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
469 i18n:name="author" /> (<tal:x replace="msg/author"/>)</th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
470 <th i18n:translate="">Date: <tal:x replace="python:msg.date.pretty('%Y-%m-%d %H:%M')"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
471 i18n:name="date" /></th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
472 <th>
4644
20e0e5ce217f Tracker: Following upgrading docs for the "retire" and "remove" buttons.
Bernhard Reiter <bernhard@intevation.de>
parents: 4024
diff changeset
473 <form style="padding:0" method="POST" tal:condition="msg/is_edit_ok"
4024
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
474 tal:attributes="action string:issue${context/id}">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
475 <input type="hidden" name="@remove@messages" tal:attributes="value msg/id">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
476 <input type="hidden" name="@action" value="edit">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
477 <input type="submit" value="remove" i18n:attributes="value">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
478 </form>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
479 </th>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
480 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
481 <tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
482 <td colspan="4" class="content">
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
483 <pre tal:condition="python:msg.content.is_view_ok()"
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
484 tal:content="structure python:utils.localReplace(msg.content.hyperlinked())">content</pre>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
485 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
486 </tr>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
487 </tal:block>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
488 </table>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
489
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
490 <tal:block tal:condition="context/id" tal:replace="structure context/history" />
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
491
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
492 </div>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
493
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
494 </td>
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
495
c2d0d3e9099d svn repository setup
Stefan Seefeld <stefan@users.sourceforge.net>
parents:
diff changeset
496 </tal:block>
6454
83b67f65b8ff Implement file upload by drag and drop and paste. Table formatting
John Rouillard <rouilj@ieee.org>
parents: 6307
diff changeset
497 <!-- SHA: ad841842c0da5f9d1a7f69a1e0c847a549b75bf2 -->

Roundup Issue Tracker: http://roundup-tracker.org/