summaryrefslogtreecommitdiffstats
path: root/extensions/Needinfo/template/en/default/bug/needinfo.html.tmpl
blob: db02df79b39c5f1c31fd7bb224ae44515f1714c1 (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
[%# 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.
  #%]

[% needinfo_flagtype   = "" %]
[% needinfo_flags      = [] %]
[% can_create_needinfo = 0  %]

[% FOREACH type = bug.flag_types %]
  [% IF type.name == 'needinfo' %]
    [% needinfo_flagtype = type %]
    [% FOREACH flag = type.flags %]
      [% IF flag.status == '?' %]
        [% needinfo_flags.push(flag) %]
      [% END %]
    [% END %]
    [% LAST IF needinfo_flagtype %]
  [% END %]
[% END %]

[% IF user.in_group('canconfirm') %]
  [% IF bug.status.is_open %]
    [% can_create_needinfo = 1 %]
  [% ELSE %]
    [% FOREACH field = Bugzilla.active_custom_fields(product=>bug.product_obj, component=>bug.component_obj, type=>2) %]
      [% IF field.description.match('^status-firefox') && bug.${field.name} == 'affected' %]
        [% can_create_needinfo = 1 %]
        [% LAST %]
      [% END %]
    [% END %]
  [% END %]
[% END %]

[% IF needinfo_flagtype %]
  <div id="needinfo_container">
    [% IF needinfo_flags.size > 0 %]
      [%# Displays NEEDINFO tag in bug header %]
      <script>
        var summary_container = document.getElementById('static_bug_status');
        summary_container.appendChild(document.createTextNode('[NEEDINFO]'));
      </script>

      [% FOREACH flag = needinfo_flags %]
        [% IF !flag.requestee || flag.requestee.id == user.id %]
          Adding a comment will automatically clear needinfo the request for
          <em>[% IF !flag.requestee %]anyone[% ELSE %][% flag.requestee.login FILTER html %][% END %]</em>.
        [% ELSE %]
          <input type="checkbox" id="needinfo_override_[% flag.id FILTER html %]"
                 name="needinfo_override_[% flag.id FILTER html %]" value="1">
          <label for="needinfo_override_[% flag.id FILTER html %]">
            I am providing the requested information for <em>[% flag.requestee.login FILTER html %]</em>
            (will clear the needinfo request).
          </label>
        [% END %]
        <br>
      [% END %]
    [% END %]

    [% IF can_create_needinfo && (needinfo_flags.size == 0 || needinfo_flagtype.is_multiplicable) %]
      <script>
        function needinfoRole (select) {
          YAHOO.util.Dom.get('needinfo').checked = true;
          if (select.value == 'other') {
            YAHOO.util.Dom.removeClass('needinfo_from_container', 'bz_default_hidden');
            YAHOO.util.Dom.get('needinfo_from').focus();
          }
          else {
            YAHOO.util.Dom.addClass('needinfo_from_container', 'bz_default_hidden');
          }
        }
      </script>
      <input type="checkbox" name="needinfo" value="1" id="needinfo">
      <label for="needinfo">Need additional information from</label>
      <select name="needinfo_role" id="needinfo_role" onchange="needinfoRole(this);">
        <option value="">anyone</option>
        <option value="reporter">reporter</option>
        <option value="assigned_to">assignee</option>
        [% IF Param('useqacontact') && bug.qa_contact.login != "" %]
          <option value="qa_contact">qa contact</option>
        [% END %]
        <option value="other">other</option>
      </select>
      <span id="needinfo_from_container" class="bz_default_hidden">
        [%+ INCLUDE global/userselect.html.tmpl
                    id       => "needinfo_from"
                    name     => "needinfo_from"
                    size     => 30
                    value    => ""
        %]
      </span>
      <br>
    [% END %]
  </div>
[% END %]