| [%# 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 = "checked"; |
| else |
| cell.parentNode.className = ""; |
| } |
| //--> |
| </script> |
| |
| <p> |
| This page allows you to define which status transitions are valid in your workflow. |
| For compatibility with older versions of 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 Bugzilla select the |
| correct one. |
| </p> |
| |
| <form id="workflow_form" method="POST" action="editworkflow.cgi"> |
| <table id="workflow"> |
| <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="[% status.is_open ? "open-status" : "closed-status" %] center"> |
| [% 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 class="[% "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="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 class="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 %] |