| [%# 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. |
| #%] |
| |
| [%# INTERFACE: |
| # showbugcounts: if defined, then bug counts should be included in the table |
| # product: object; Bugzilla::Product object representing the product to |
| # which the component belongs. |
| #%] |
| |
| [% title = BLOCK %]Select component of product |
| '[% product.name FILTER html %]'[% END %] |
| [% PROCESS global/header.html.tmpl |
| title = title |
| style_urls = ['skins/standard/admin.css'] |
| %] |
| |
| [% edit_contentlink = BLOCK %]editcomponents.cgi?action=edit&product= |
| [%- product.name FILTER uri %]&component=%%name%%[% END %] |
| [% delete_contentlink = BLOCK %]editcomponents.cgi?action=del&product= |
| [%- product.name FILTER uri %]&component=%%name%%[% END %] |
| [% bug_count_contentlink = BLOCK %]buglist.cgi?component=%%name%%&product= |
| [%- product.name FILTER uri %][% END %] |
| |
| |
| [% columns = [ |
| { |
| name => "name" |
| heading => "Edit component..." |
| contentlink => edit_contentlink |
| }, |
| { |
| name => "description" |
| heading => "Description" |
| allow_html_content => 1 |
| }, |
| { |
| name => "initialowner" |
| heading => "Default Assignee" |
| }, |
| ] |
| %] |
| |
| [% IF Param('useqacontact') %] |
| |
| [% columns.push({ |
| name => 'initialqacontact' |
| heading => 'Default QA Contact' |
| }) %] |
| |
| [% END %] |
| |
| [% columns.push({ |
| name => "initial_cc_names" |
| heading => "Default CC list" |
| }, |
| { |
| name => "isactive" |
| heading => "Active" |
| yesno_field => 1 |
| }) %] |
| |
| [% IF showbugcounts %] |
| |
| [% columns.push({ |
| name => 'bug_count' |
| heading => "$terms.Bugs" |
| class => "right" |
| contentlink => bug_count_contentlink |
| }) %] |
| |
| [% END %] |
| |
| [% columns.push({ |
| heading => "Action" |
| content => "Delete" |
| contentlink => delete_contentlink |
| }) %] |
| |
| [%# Overrides the initialowner, the initialqacontact, and the initial_cc_names with right values %] |
| [% overrides.initialowner = {} %] |
| [% overrides.initialqacontact = {} %] |
| [% overrides.initial_cc_names = {} %] |
| |
| [%# "component" is a reserved word in Template Toolkit. %] |
| [% FOREACH my_component = product.components %] |
| [% overrides.initialowner.name.${my_component.name} = { |
| override_content => 1 |
| content => my_component.default_assignee.login |
| } |
| %] |
| [% overrides.initialqacontact.name.${my_component.name} = { |
| override_content => 1 |
| content => my_component.default_qa_contact.login |
| } |
| %] |
| [% SET initial_cc_list = [] %] |
| [% FOREACH cc_user = my_component.initial_cc %] |
| [% initial_cc_list.push(cc_user.login) %] |
| [% END %] |
| [% overrides.initial_cc_names.name.${my_component.name} = { |
| override_content => 1 |
| content => initial_cc_list.join(', ') |
| } |
| %] |
| [% END %] |
| |
| [% Hook.process('before_table') %] |
| |
| [% PROCESS admin/table.html.tmpl |
| columns = columns |
| data = product.components |
| overrides = overrides |
| %] |
| |
| <p><a href="editcomponents.cgi?action=add&product=[% product.name FILTER uri %]">Add</a> |
| a new component to product '[% product.name FILTER html %]'</p> |
| |
| [% IF ! showbugcounts %] |
| |
| <p><a href="editcomponents.cgi?product=[% product.name FILTER uri %]&showbugcounts=1"> |
| Redisplay table with [% terms.bug %] counts (slower)</a></p> |
| |
| [% END %] |
| |
| [% PROCESS admin/components/footer.html.tmpl |
| no_edit_other_components_link = 1 |
| %] |
| |
| [% PROCESS global/footer.html.tmpl %] |