summaryrefslogtreecommitdiffstats
path: root/template/en/default/bug/knob.html.tmpl
blob: a02bc20e39f5c617a3a3bee00cb92613b68d1934 (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
[%# 1.0@bugzilla.org %]
[%# The contents of this file are subject to the Mozilla Public
  # License Version 1.1 (the "License"); you may not use this file
  # except in compliance with the License. You may obtain a copy of
  # the License at http://www.mozilla.org/MPL/
  #
  # Software distributed under the License is distributed on an "AS
  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  # implied. See the License for the specific language governing
  # rights and limitations under the License.
  #
  # The Original Code is the Bugzilla Bug Tracking System.
  #
  # The Initial Developer of the Original Code is Netscape Communications
  # Corporation. Portions created by Netscape are
  # Copyright (C) 1998 Netscape Communications Corporation. All
  # Rights Reserved.
  #
  # Contributor(s): Gervase Markham <gerv@gerv.net>
  #                 Vaskin Kissoyan <vkissoyan@yahoo.com>
  #                 Frédéric Buclin <LpSolit@gmail.com>
  #%]

[% PROCESS global/variables.none.tmpl %]

<br>
<div id="knob">
  <div id="knob-options">
  [% initial_action_shown = 0 %]

  [%# These actions are based on the current custom workflow. %]
  [% FOREACH bug_status = bug.status.can_change_to %]
    [% NEXT IF bug.isunconfirmed && bug_status.is_open && !bug.user.canconfirm %]
    [% NEXT IF bug.isopened && !bug.isunconfirmed && bug_status.is_open && !bug.user.canedit %]
    [% NEXT IF (!bug_status.is_open || !bug.isopened) && !bug.user.canedit && !bug.user.isreporter %]
    [%# Special hack to only display UNCO or REOP when reopening, but not both;
      # for compatibility with older versions. %]
    [% NEXT IF !bug.isopened && (bug.everconfirmed && bug_status.name == "UNCONFIRMED"
                                 || !bug.everconfirmed && bug_status.name == "REOPENED") %]
    [% PROCESS initial_action %]
    [% NEXT IF bug_status.name == bug.bug_status %]
    <input type="radio" id="knob_[% bug_status.id FILTER html %]" name="knob"
           value="[% bug_status.name FILTER html %]">
    <label for="knob_[% bug_status.id FILTER html %]">
      Change status to <b>[% get_status(bug_status.name) FILTER html %]</b>
    </label>
    [% IF bug.isopened && !bug_status.is_open %]
      and set the resolution to [% PROCESS select_resolution field = "knob_${bug_status.id}" %]
    [% END %]
    <br>
  [% END %]

  [%# These actions are special and are independent of the workflow. %]
  [% IF bug.user.canedit || bug.user.isreporter %]
    [% IF bug.isopened %]
      [% IF bug.resolution %]
        [% PROCESS initial_action %]
        <input type="radio" id="knob-clear" name="knob" value="clearresolution">
        <label for="knob-clear">
          Clear the resolution (remove the current resolution of
          <b>[% get_resolution(bug.resolution) FILTER html %]</b>)
        </label>
        <br>
      [% END %]
    [% ELSE %]
      [% IF bug.resolution != "MOVED" || bug.user.canmove %]
        [% PROCESS initial_action %]
        <input type="radio" id="knob_change_resolution" name="knob" value="change_resolution">
        <label for="knob_change_resolution">
          Change <a href="page.cgi?id=fields.html#resolution">resolution</a> to
        </label>
        [% PROCESS select_resolution field = "knob_change_resolution" %]
        <br>
      [% END %]
    [% END %]

    [% PROCESS duplicate %]
  [% END %]
  </div>

  <div id="knob-buttons">
    <input type="submit" value="Commit" id="commit">
    [% IF bug.user.canmove %]
      <input type="submit" name="action" id="action" value="[% Param("move-button-text") %]">
    [% END %]
  </div>
</div>

[%# Common actions %]

[% BLOCK initial_action %]
  [%# Only show 'Leave as' action in combination with another knob %]
  [% IF !initial_action_shown %]
    <input type="radio" id="knob-leave" name="knob" value="none" checked="checked">
    <label for="knob-leave">
      Leave as <b>[% get_status(bug.bug_status) FILTER html %]&nbsp;
                  [% get_resolution(bug.resolution) FILTER html %]</b>
    </label>
    <br>
    [% initial_action_shown = 1 %]
  [% END %]
[% END %]

[% BLOCK select_resolution %]
  <select name="resolution_[% field FILTER html %]"
          onchange="document.forms['changeform'].[% field FILTER html %].checked=true">
    [% FOREACH r = bug.choices.resolution %]
      <option value="[% r FILTER html %]">[% get_resolution(r) FILTER html %]</option>
    [% END %]
  </select>
[% END %]

[% BLOCK duplicate %]
  <input type="radio" id="knob_duplicate" name="knob" value="duplicate">
  <label for="knob_duplicate">
    Mark the [% terms.bug %] as duplicate of [% terms.bug %] #
  </label>
  <input name="dup_id" size="6"
         onchange="if (this.value != '') {document.forms['changeform'].knob_duplicate.checked=true}">
  <br>
[% END %]