<!-- 1.0@bugzilla.org -->
[%# 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): Myk Melez <myk@mozilla.org>
  #%]

[%############################################################################%]
[%# Initialization                                                           #%]
[%############################################################################%]

[%# Columns whose titles or values should be abbreviated to make the list
  # more compact.  For columns whose titles should be abbreviated,
  # the shortened title is included.  For columns whose values should be
  # abbreviated, a maximum length is provided along with the ellipsis that
  # should be added to an abbreviated value, if any.
  # wrap is set if a column's contents should be allowed to be word-wrapped
  # by the browser.
  #%]
[% abbrev = 
  {
    "severity"          => { maxlength => 3 , title => "Sev" } , 
    "priority"          => { maxlength => 3 , title => "Pri" } , 
    "platform"          => { maxlength => 3 , title => "Plt" } , 
    "status"            => { maxlength => 4 } , 
    "reporter"          => { maxlength => 30 , ellipsis => "..." } , 
    "owner"             => { maxlength => 30 , ellipsis => "..." } , 
    "qa_contact"        => { maxlength => 30 , ellipsis => "..." , title => "QAContact" } , 
    "resolution"        => { maxlength => 4 } , 
    "summary"           => { maxlength => 60 , ellipsis => "..." , wrap => 1 } ,
    "summaryfull"       => { wrap => 1 } ,
    "status_whiteboard" => { title => "StatusSummary" , wrap => 1 } , 
    "component"         => { maxlength => 8 , title => "Comp" } , 
    "product"           => { maxlength => 8 } , 
    "version"           => { maxlength => 5 , title => "Vers" } , 
    "os"                => { maxlength => 4 } , 
    "target_milestone"  => { title => "TargetM" } , 
  }
%]

[% qorder = order FILTER url_quote IF order %]

[%############################################################################%]
[%# Table Header                                                             #%]
[%############################################################################%]

[% tableheader = BLOCK %]
  <table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
    <colgroup>
      <col class="bz_id_column">
      [% FOREACH id = displaycolumns %]
      <col class="bz_[% id %]_column">
      [% END %]
    </colgroup>

    <tr align="left">
      <th colspan="[% splitheader ? 2 : 1 %]">
        <a href="buglist.cgi?[% urlquerypart FILTER html %]&amp;order=bugs.bug_id">ID</a>
      </th>

      [% IF splitheader %]

        [% FOREACH id = displaycolumns %]
          [% NEXT UNLESS loop.count() % 2 == 0 %]
          [% column = columns.$id %]
          [% PROCESS columnheader %]
        [% END %]

        </tr><tr align="left"><th>&nbsp;</th>

        [% FOREACH id = displaycolumns %]
          [% NEXT IF loop.count() % 2 == 0 %]
          [% column = columns.$id %]
          [% PROCESS columnheader %]
        [% END %]

      [% ELSE %]

        [% FOREACH id = displaycolumns %]
          [% column = columns.$id %]
          [% PROCESS columnheader %]
        [% END %]

      [% END %]

    </tr>
[% END %]

[% BLOCK columnheader %]
  <th colspan="[% splitheader ? 2 : 1 %]">
    <a href="buglist.cgi?[% urlquerypart FILTER html %]&amp;order=
      [% column.name FILTER url_quote FILTER html %]
      [% ",$qorder" FILTER html IF order %]">
        [%- abbrev.$id.title || column.title -%]</a>
  </th>
[% END %]


[%############################################################################%]
[%# Bug Table                                                                #%]
[%############################################################################%]

[% FOREACH bug = bugs %]
  [% FLUSH IF loop.count() % 10 == 1 %]

  [%# At the beginning of every hundred bugs in the list, start a new table. %]
  [% IF loop.count() % 100 == 1 %]
    [% tableheader %]
  [% END %]

  <tr class="bz_[% bug.severity %] bz_[% bug.priority %] [%+ "bz_secure" IF (bug.groupset && !usebuggroups) %]">

    <td>
      [% IF dotweak %]<input type="checkbox" name="id_[% bug.id %]">[% END %]
      <a href="show_bug.cgi?id=[% bug.id %]">[% bug.id %]</a>
    </td>

    [% FOREACH column = displaycolumns %]
    <td>
      [% '<nobr>' IF NOT abbrev.$column.wrap %]
      [%- bug.$column.truncate(abbrev.$column.maxlength, abbrev.$column.ellipsis) FILTER html -%]
      [%- '</nobr>' IF NOT abbrev.$column.wrap %]
    </td>
    [% END %]

  </tr>

  [%# At the end of every hundred bugs in the list, or at the end of the list,
    # end the current table. 
    #%]
  [% IF loop.last() || loop.count() % 100 == 0 %]
    </table>
  [% END %]

[% END %]

