[%# 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): Gavin Shelley <bugzilla@chimpychompy.org>
  #                 Frédéric Buclin <LpSolit@gmail.com>
  #%]

[%# 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.
  #%]

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

[% 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&amp;product=
  [%- product.name FILTER uri %]&amp;component=%%name%%[% END %]
[% delete_contentlink = BLOCK %]editcomponents.cgi?action=del&amp;product=
  [%- product.name FILTER uri %]&amp;component=%%name%%[% END %]
[% bug_count_contentlink = BLOCK %]buglist.cgi?component=%%name%%&amp;product=
  [%- product.name FILTER uri %][% END %]


[% columns = [
     {
       name => "name"
       heading => "Edit component..."
       contentlink => edit_contentlink
     },
     {
       name => "description"
       heading => "Description"
       allow_html_content => 1
     },
     {
       name => "isactive"
       heading => "Active"
       yesno_field => 1
     },
     {
       name => "default_bug_type"
       heading => "Default $terms.Bug Type"
     },
     {
       name => "initialowner"
       heading => "Default Assignee"
     },
     {
       name => "triage_owner"
       heading => "Triage Owner"
     },
   ]
%]

[% IF Param('useqacontact') %]

  [% columns.push({
       name => 'initialqacontact'
       heading => 'QA Contact'
     }) %]

[% END %]

[% 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 and the initialqacontact with right values %]
[% overrides.initialowner = {} %]
[% overrides.triage_owner = {} %]
[% overrides.initialqacontact = {} %]

[%# "component" is a reserved word in Template Toolkit. %]
[% FOREACH my_component = product.components %]
  [%
    users = [
      { field_name => 'default_assignee',   column_name => 'initialowner' },
      { field_name => 'triage_owner',       column_name => 'triage_owner' },
      { field_name => 'default_qa_contact', column_name => 'initialqacontact' },
    ];
    FOREACH user IN users;
      email = my_component.${user.field_name}.login;
      IF (email.match('^nobody@') || email.match('\.bugs$'));
        email = '';
      END;
      overrides.${user.column_name}.name.${my_component.name} = {
        override_content => 1,
        content => email || '(nobody)',
      };
    END;
  %]
[% END %]

[% Hook.process('before_table') %]

[% PROCESS admin/table.html.tmpl
     columns = columns
     data = product.components
     overrides = overrides
%]

<p><a href="[% basepath FILTER none %]editcomponents.cgi?action=add&amp;product=[% product.name FILTER uri %]">Add</a>
    a new component to product '[% product.name FILTER html %]'</p>

[% IF ! showbugcounts %]

  <p><a href="[% basepath FILTER none %]editcomponents.cgi?product=[% product.name FILTER uri %]&amp;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 %]
