1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
[%# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
#%]
[% max_local = Param('maxlocalattachment') * 1024 %]
[% max_limit = Param('maxattachmentsize')> max_local ? Param('maxattachmentsize') : max_local %]
<tr>
<td class="comment" colspan="2">
<ol>
<li>Make sure that your user has permissions to read the file you are trying to attach. If you don't, you will most likel get a confusing error message.</li>
<li>Please attach build logs and other informational files as <em>plain text</em>. If build log is larger than [% max_limit FILTER html %] KB, please compress it using compression tool such as bzip2 or xz (<em>without</em> tar).</li>
<li>Patches, ebuilds and other copyrightable files meant for integration must conform to the Gentoo <a rel='external' href='https://www.gentoo.org/glep/glep-0076.html'>copyright policy</a>. Such conformance must be explicitly acknowledged through <a rel='external' href='https://www.gentoo.org/glep/glep-0076.html#certificate-of-origin'>GCO</a> sign-off, confirmed with <em>your real name</em>.</li>
<li>Please attach ebuild updates and new packages preferably as git-format patches with explanatory commit messages (see: <a rel='external' href='https://www.gentoo.org/glep/glep-0066.html'>GLEP 66</a>) and a GCO sign-off. Alternatively, please include the sign-off in a comment when attaching non-patch format files.</li>
</ol>
</td>
</tr>
<tr class="attachment_data">
<th><label for="data">File</label>:</th>
<td>
<em>Enter the path to the file on your computer ([%+ Param('maxattachmentsize') %] KB limit)</em> (or
<a id="attachment_data_controller" href="javascript:TUI_toggle_class('attachment_text_field');
javascript:TUI_toggle_class('attachment_data')"
>paste text as attachment</a>).<br>
<input type="file" id="data" name="data" size="50" onchange="DataFieldHandler()">
<br><em>(File size limit: [% max_limit FILTER html %] KB)</em>
</td>
</tr>
<tr class="attachment_text_field">
<th><label for="attach_text">File</label>:</th>
<td>
<em>Paste the text to be added as an attachment</em> (or
<a id="attachment_text_field_controller" href="javascript:TUI_toggle_class('attachment_text_field');
javascript:TUI_toggle_class('attachment_data')"
>attach a file</a>).<br>
<textarea id="attach_text" name="attach_text" cols="80" rows="15"
onkeyup="TextFieldHandler()" onblur="TextFieldHandler()"></textarea>
</td>
</tr>
<tr>
<th class="required"><label for="description">Description</label>:</th>
<td>
<em>Describe the attachment briefly.</em><br>
<input type="text" id="description" name="description" class="required"
size="60" maxlength="200">
</td>
</tr>
<tr[% ' class="expert_fields"' UNLESS bug.id %]>
<th>Content Type:</th>
<td>
<em>If the attachment is a patch, check the box below.</em><br>
<input type="checkbox" id="ispatch" name="ispatch" value="1"
onchange="setContentTypeDisabledState(this.form);">
<label for="ispatch">patch</label><br><br>
[%# Reset this whenever the page loads so that the JS state is up to date %]
<script type="text/javascript">
YAHOO.util.Event.onDOMReady(function() {
bz_fireEvent(document.getElementById('ispatch'), 'change');
});
</script>
<em>Otherwise, choose a method for determining the content type.</em><br>
<input type="radio" id="autodetect"
name="contenttypemethod" value="autodetect" checked="checked">
<label for="autodetect">auto-detect</label><br>
<input type="radio" id="list"
name="contenttypemethod" value="list">
<label for="list">select from list</label>:
<select name="contenttypeselection" id="contenttypeselection"
onchange="this.form.contenttypemethod[1].checked = true;">
[% PROCESS content_types %]
</select><br>
<input type="radio" id="manual"
name="contenttypemethod" value="manual">
<label for="manual">enter manually</label>:
<input type="text" name="contenttypeentry" id="contenttypeentry"
size="30" maxlength="200"
onchange="if (this.value) this.form.contenttypemethod[2].checked = true;">
</td>
</tr>
<tr[% ' class="expert_fields"' UNLESS bug.id %]>
<td> </td>
<td>
[% IF flag_types && flag_types.size > 0 %]
[% PROCESS "flag/list.html.tmpl" %]<br>
[% END %]
</td>
</tr>
[% BLOCK content_types %]
[% mimetypes = [{type => "text/plain", desc => "plain text"},
{type => "text/html", desc => "HTML source"},
{type => "application/xml", desc => "XML source"},
{type => "image/gif", desc => "GIF image"},
{type => "image/jpeg", desc => "JPEG image"},
{type => "image/png", desc => "PNG image"},
{type => "application/pdf", desc => "PDF document"},
{type => "application/octet-stream", desc => "binary file"}]
%]
[% Hook.process("mimetypes", "attachment/createformcontents.html.tmpl") %]
[% FOREACH m = mimetypes %]
<option value="[% m.type FILTER html %]">[% m.desc FILTER html %] ([% m.type FILTER html %])</option>
[% END %]
[% END %]
|