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
|
[%# 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.
#%]
[% INCLUDE global/header.html.tmpl
title = "Edit Workflow"
style_urls = ['skins/standard/admin.css']
%]
<script type="text/javascript">
<!--
function toggle_cell(cell) {
if (cell.checked)
cell.parentNode.className = "checkbox-cell checked";
else
cell.parentNode.className = "checkbox-cell";
}
//-->
</script>
<p>
This page allows you to define which status transitions are valid in your workflow.
For compatibility with older versions of [% terms.Bugzilla %], reopening [% terms.abug %]
will only display either [% display_value("bug_status", "UNCONFIRMED") FILTER html %] or
[%+ display_value("bug_status", "REOPENED") FILTER html %] (if allowed by your workflow) but not
both. The decision depends on whether the [% terms.bug %] has ever been confirmed or not.
So it is a good idea to allow both transitions and let [% terms.Bugzilla %] select the
correct one.
</p>
<form id="workflow_form" method="POST" action="editworkflow.cgi">
<table>
<tr>
<th colspan="2"> </th>
<th colspan="[% statuses.size FILTER html %]" class="title">To</th>
</tr>
<tr>
<th rowspan="[% statuses.size + 2 FILTER html %]" class="title">From</th>
<th> </th>
[% FOREACH status = statuses %]
<th class="col-header[% status.is_open ? " open-status" : " closed-status" %]">
[% display_value("bug_status", status.name) FILTER html %]
</th>
[% END %]
</tr>
[%# This defines the entry point in the workflow %]
[% p = [{id => 0, name => "{Start}", is_open => 1}] %]
[% FOREACH status = p.merge(statuses) %]
<tr class="highlight">
<th class="[% status.is_open ? "open-status" : "closed-status" %]">
[% display_value("bug_status", status.name) FILTER html %]
</th>
[% FOREACH new_status = statuses %]
[% IF status.id != new_status.id %]
[% checked = workflow.${status.id}.${new_status.id}.defined ? 1 : 0 %]
[% mandatory = (status.id && new_status.name == Param("duplicate_or_move_bug_status")) ? 1 : 0 %]
<td align="center" class="checkbox-cell[% " checked" IF checked || mandatory %]"
title="From [% status.name FILTER html %] to [% new_status.name FILTER html %]">
<input type="checkbox" name="w_[% status.id %]_[% new_status.id %]"
id="w_[% status.id %]_[% new_status.id %]" onclick="toggle_cell(this)"
[%+ "checked='checked'" IF checked || mandatory %]
[%+ "disabled='disabled'" IF mandatory %]>
</td>
[% ELSE %]
<td class="checkbox-cell forbidden"> </td>
[% END %]
[% END %]
</tr>
[% END %]
</table>
<p>
When [% terms.abug %] is marked as a duplicate of another one or is moved
to another installation, the [% terms.bug %] status is automatically set to
<b>[% display_value("bug_status", Param("duplicate_or_move_bug_status")) FILTER html %]</b>. All transitions to
this [% terms.bug %] status must then be valid (this is the reason why you cannot edit
them above).<br>
Note: you can change this setting by visiting the
<a href="editparams.cgi?section=bugchange#duplicate_or_move_bug_status">Parameters</a>
page and editing the <i>duplicate_or_move_bug_status</i> parameter.
</p>
<p align="center">
<input type="hidden" name="action" value="update">
<input type="hidden" name="token" value="[% token FILTER html %]">
<input type="submit" id="update_workflow" value="Commit Changes"> -
<a href="editworkflow.cgi">Cancel Changes</a> -
<a href="editworkflow.cgi?action=edit_comment">View Comments Required on Status Transitions</a>
</p>
</form>
[% INCLUDE global/footer.html.tmpl %]
|