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

[% PROCESS global/header.html.tmpl
  title = "Change Columns"
  javascript_urls = "js/change-columns.js"
  onload = "initChangeColumns()"
%]

<p>
  Select the columns you wish to appear in your [% terms.bug %] lists. Note that
  this feature requires cookies to work.
</p>

[% field_descs.short_short_desc     = "Summary (first 60 characters)" %]
[% field_descs.short_desc           = "Summary (Full)" %]
[% field_descs.assigned_to_realname = "$field_descs.assigned_to Real Name" %]
[% field_descs.reporter_realname    = "$field_descs.reporter Real Name" %]
[% field_descs.qa_contact_realname  = "$field_descs.qa_contact Real Name" %]

[%# Create a mapping of field descriptions to field names, so that
  # the "Available Columns" list can be sorted alphabetically by
  # field description.
  #%]
[% SET available_columns = {} %]
[% FOREACH column = columns.keys %]
  [% NEXT IF collist.contains(column) %]
  [%# We lowecase the keys so that the sort happens case-insensitively. %]
  [% SET column_desc = field_descs.$column || column FILTER lower %]
  [% available_columns.$column_desc = column %]
[% END %]

<form name="changecolumns" action="colchange.cgi" onsubmit="change_submit();">
  <input type="hidden" name="rememberedquery" value="[% buffer FILTER html %]">
    <table>
      <tr>
        <th><div id="avail_header" class="bz_default_hidden">Available Columns</div></th>
        <th></th>
        <th colspan="2">Selected Columns</th>
      </tr>
      <tr>
        <td>
          <select name="available_columns" id="available_columns" 
                  size="15" multiple="multiple" onchange="updateView();"
                  class="bz_default_hidden"> 
          </select>
        </td>
        <td>
          <button type="button" id="select_button" name="select"
                  class="bz_default_hidden arrow_button"
                  onclick="move_select()">&rarr;</button>
          <br><br>
          <button type="button" id="deselect_button" name="deselect"
                  class="bz_default_hidden arrow_button"
                  onclick="move_deselect()">&larr;</button>
        </td>
        <td>
          <select name="selected_columns" id="selected_columns" 
                  size="15" multiple="multiple" onchange="updateView();">
            [% FOREACH column = collist %]
                <option value="[% column FILTER html %]" selected="selected">
                [% (field_descs.${column} || column) FILTER html %]
              </option>
            [% END %]
            [% FOREACH key = available_columns.keys.sort %]
              [% SET column = available_columns.$key %]
              <option value="[% column FILTER html %]">
                [%# Don't display the lower-cased column description,
                  # display the correct-case one. %]
                [% (field_descs.$column || column) FILTER html %]
              </option>
            [% END %]
          </select>
        </td>
        <td>
          <button type="button" id="up_button" name="up"
                  class="bz_default_hidden arrow_button"
                  onclick="move_up()">&uarr;</button>
          <br><br>
          <button type="button" id="down_button" name="down"
                  class="bz_default_hidden arrow_button"
                  onclick="move_down()">&darr;</button>
        </td>
      </tr>
    </table>

  <p>
    <input id="nosplitheader" type="radio" name="splitheader" value="0"
      [%+ "checked='checked'" IF NOT splitheader %]>
    <label for="nosplitheader">
      Normal headers (prettier)
    </label>
    <br>

    <input id="splitheader" type="radio" name="splitheader" value="1"
      [%+ "checked='checked'" IF splitheader %]>
    <label for="splitheader">
      Stagger headers (often makes list more compact)
    </label>
  </p>

  [% IF saved_search %]
    <p>
      <input type="hidden" name="saved_search"
             value="[% saved_search.id FILTER html%]" >
      <input type="hidden" name="token"
             value="[% issue_hash_token([saved_search.id, saved_search.name]) FILTER html %]">
      <input type="checkbox" id="save_columns_for_search" checked="checked" 
             name="save_columns_for_search" value="1">
      <label for="save_columns_for_search">Save this column list only 
        for search '[% saved_search.name FILTER html %]'</label>
    </p>
  [% ELSE %]
    <input type="hidden" name="token"
           value="[% issue_hash_token(['default-list']) FILTER html %]">
  [% END %]

  <p>
    <input type="submit" id="change" value="Change Columns">
  </p>

  <input type="submit" id="resetit" name="resetit" 
         value="Reset to [% terms.Bugzilla %] default">
</form>

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