[%# 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:
  # products: array of product objects
  # showbugcounts: if defined, then bug counts should be included in the table
  #%]

[% PROCESS global/header.html.tmpl
  title = "Edit versions for which product?"
  style_urls = ['skins/standard/admin.css']
%]

[% columns = [
     { 
       name => "name"
       heading => "Edit versions of..."
       contentlink => "editversions.cgi?product=%%name%%" 
     },
     { 
       name => "description"
       heading => "Description" 
       allow_html_content => 1
     }
   ]
%]

[% IF showbugcounts %]

  [% columns.push({
      name => 'bug_count'
      heading => "$terms.Bugs"
      class => "right"
      contentlink => "buglist.cgi?product=%%name%%"
    })
  %]

[% END %]

[% PROCESS admin/table.html.tmpl
     columns = columns
     data = products
%]

[% IF !showbugcounts %]
  <p><a href="editversions.cgi?showbugcounts=1">
      Redisplay table with [% terms.bug %] counts (slower)</a></p>
[% END %]

[% PROCESS global/footer.html.tmpl %]
