Mercurial > p > roundup > code
annotate website/issues/html/issue.item.html @ 8527:d4a43d9da8ef
chore(build): build(deps): bump anchore/scan-action from 7.3.1 to 7.3.2 pull #82
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Mon, 23 Feb 2026 20:16:55 -0500 |
| parents | 4ac0bbb3e440 |
| children |
| 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="" |
|
8365
4ac0bbb3e440
bug(security): CVE-2025-53865 - XSS bug
John Rouillard <rouilj@ieee.org>
parents:
8357
diff
changeset
|
4 >Issue <tal:x tal:content="context/id" i18n:name="id" |
|
4ac0bbb3e440
bug(security): CVE-2025-53865 - XSS bug
John Rouillard <rouilj@ieee.org>
parents:
8357
diff
changeset
|
5 />: <tal:x tal:content="context/title" i18n:name="title" |
|
4ac0bbb3e440
bug(security): CVE-2025-53865 - XSS bug
John Rouillard <rouilj@ieee.org>
parents:
8357
diff
changeset
|
6 /> - <tal:x tal:content="config/TRACKER_NAME" i18n:name="tracker" |
|
4024
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 | 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"> |
|
8356
63390dcfcfe9
bug: fix template use of structure with untrusted data
John Rouillard <rouilj@ieee.org>
parents:
6683
diff
changeset
|
48 <span tal:content="context/title/plain"/> |
|
4024
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 | 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 | 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 | 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 | 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"> |
|
8365
4ac0bbb3e440
bug(security): CVE-2025-53865 - XSS bug
John Rouillard <rouilj@ieee.org>
parents:
8357
diff
changeset
|
130 <tal:x tal:content="context/assignee/plain" /> |
|
4024
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 | 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 | 145 <th><label for="keywords" i18n:translate="">Keywords</label>:</th> |
| 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 | 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 | 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 |
|
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 --> |
