aboutsummaryrefslogtreecommitdiff
blob: a12dee82d624afc6d4c2918f772df234e51a55a5 (plain)
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
[%# 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>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 %]