[%# 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 %] [% 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 => 'QA Contact' }) %] [% END %] [% columns.push({ name => "initial_cc_names" heading => "Initial CC list" }, { name => "isactive" heading => "Active" yesno_field => 1 }) %] [% IF showbugcounts %] [% columns.push({ name => 'bug_count' heading => "$terms.Bugs" align => "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 %]
Add a new component to product '[% product.name FILTER html %]'
[% IF ! showbugcounts %] [% END %] [% PROCESS admin/components/footer.html.tmpl no_edit_other_components_link = 1 %] [% PROCESS global/footer.html.tmpl %]