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

[% title = "Анализ затрат времени " %]
[% IF do_depends %]
    [% title = title _ "для " %]
    [% header = "$terms.bug_gen $ids.0" FILTER bug_link(ids.0) FILTER none %]
    [% header = title _ header _ " (и $terms.bugs_gen блокирующих ее)" %]
    [% title = title _ "$terms.bug_gen $ids.0" %]
[% ELSE %]
    [% title = title _ numeral(ids.size,
      "(выбрана ${ids.size} ${terms.bug})",
      "(выбрано ${ids.size} ${terms.bug_gen})",
      "(выбрано ${ids.size} ${terms.bugs_gen})") %]
    [% header = title %]
[% END %]

[% PROCESS global/header.html.tmpl 
    title = title
    header = header
    style_urls = ['skins/standard/buglist.css']
    doc_section = "using/editing.html#time-tracking"
    yui = ['calendar']
    javascript_urls = [ "js/util.js", "js/field.js" ]
    %]

[% INCLUDE query_form %]

[% IF do_report %]

  [% global.grand_total = 0 global.estimated = 0 global.remaining = 0 %]

  [% FOREACH workdata = part_list %]
    [%# parts contains date ranges (from, to). %]
    [% part = parts.shift %]
    <h4>
      [% IF part.0 or part.1 %]
        С [% part.0 OR "начала" FILTER html %] по [% part.1 OR "настоящее время" FILTER html %]
      [% ELSE %]
        Полный анализ (период не указан)
      [% END %]
    </h4>
    [% IF group_by == "number" %]
      [% INCLUDE number_report %]
    [% ELSE %]
      [% INCLUDE owner_report %]
    [% END %]
  [% END %]

  [% IF detailed %]
    <h4>
      От первоначальной оценки в [% global.estimated FILTER format("%.2f") %]ч
      осталось [% global.remaining FILTER format("%.2f") %]ч
      [% IF global.deadline %]
        (срок [% global.deadline FILTER html %])
      [% END %]
    </h4>
  [% END %]

  [% IF monthly %]
    <h4>Итого отработано [% global.grand_total FILTER format("%.2f") %] часов</h4>
    <hr>
  [% END %]

  [% IF null.size > 0 %]
    [% INCLUDE inactive_report %]
    <h4>Итого [% null.size %] [% terms.bugs_gen %] неактивно</h4>
  [% END %]

[% END %]

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

[%#
  #
  # Developer reporting
  #
  #%]

[% BLOCK owner_report %]
    [% global.total = 0 global.bug_count = {} global.owner_count = {} %]
    <table class="realitems owner">
        [% FOREACH owner = workdata.keys.sort %]
            [% INCLUDE do_one_owner owner=owner ownerdata=workdata.$owner
                                    detailed=detailed %]
        [% END %]

    [% additional = "$global.owner_count.size developers @
                     $global.bug_count.size $terms.bugs" %] 
    [% INCLUDE section_total colspan=3 additional=additional %]
    </table>
[% END %]

[% BLOCK do_one_owner %]
    [% global.owner_count.$owner = 1 %]
    <tr><td colspan="5" class="owner_header">
        <b>[% owner FILTER html %]</b>
    </td></tr>
    [% col = 0 subtotal = 0%]
    [% FOREACH bugdata=ownerdata.nsort("bug_id") %]
        [% bug_id = bugdata.bug_id %]
        [% INCLUDE calc_bug_total id=bug_id %]
        [% global.bug_count.$bug_id = 1 %]
        [% IF detailed %]
            [% INCLUDE bug_header cid=col id=bug_id bugdata=bugdata extra=1 %]
            [% col = col + 1 %]
        [% END %]
        [% subtotal = subtotal + bugdata.total_time %]
    [% END %]
    <tr>
      <th colspan="4" class="right">Итого:</th>
      <td class="subtotal">[% subtotal FILTER format("%.2f") %]</td>
    </tr>
    [% global.total = global.total + subtotal %]
[% END %]

[%#
  #
  # Bug Number reporting
  #
  #%]

[% BLOCK number_report %]
    [% global.total = 0 global.owner_count = {} global.bug_count = {} %]

    <table class="realitems number">
    [% FOREACH bug = workdata.keys.nsort %]
        [% INCLUDE do_one_bug id=bug bugdata=workdata.$bug
                              detailed=detailed %]
    [% END %]

    [% additional = "$global.bug_count.size $terms.bugs &
                     $global.owner_count.size developers" %]
    [% INCLUDE section_total additional=additional colspan=2 %]
    </table>
[% END %]

[% BLOCK do_one_bug %]
    [% subtotal = 0.00 cid = 0 %]
    [% INCLUDE calc_bug_total id=id %]
    [% global.bug_count.$id = 1 %]
    [% INCLUDE bug_header id=id %]

    [% FOREACH owner = bugdata.sort("login_name") %]
        [% work_time = owner.total_time %]
        [% subtotal = subtotal + work_time %]
        [% login_name = owner.login_name %]
        [% global.owner_count.$login_name = 1 %]
        [% IF detailed %] 
            [% cid = cid + 1 %]
            <tr class="owner_header[% 2 FILTER none IF cid % 2 %]">
                <td>&nbsp;</td>
                <td colspan="2"><b>[% login_name FILTER html %]</b></td>
                <td class="right">
                [% work_time FILTER format("%.2f") %]</td>
            </tr>
        [% END %]
    [% END %]
    <tr>
      <th colspan="3" class="right">Итого:</th>
      <td class="subtotal">[% subtotal FILTER format("%.2f") %]</td>
    </tr>
    [% global.total = global.total + subtotal %]
[% END %]

[% BLOCK bug_header %]
    <tr class="bug_header[% '2' IF cid % 2 %]">
        <th class="bug_id">[% "$terms.Bug $id" FILTER bug_link(id) FILTER none %]</th>
        <th class="bug_status">
          [% display_value("bug_status", bugs.$id.bug_status) FILTER html %]
        </th>
        <td colspan="2">[% bugs.$id.short_desc FILTER html %]</td>
        [% IF extra %]
          <td class="right">[% bugdata.total_time FILTER html %]</td>
        [% END %]
    </tr>
    [% IF detailed %]
      <tr class="bug_header[% '2' IF cid % 2 %]">
        <td>&nbsp;</td>
        <td colspan="3">
          <span class="time_info">
            Первоначальная оценка: [% bugs.$id.estimated_time FILTER format("%.2f") %]ч
          </span>
          <span class="time_info">
            Осталось: [% bugs.$id.remaining_time FILTER format("%.2f") %]ч
          </span>
          <span class="time_info">
            Срок: [% bugs.$id.deadline || "<b>Не установлен</b>" %]
          </span>
        </td>
        [% IF extra %]
          <td>&nbsp;</td>
        [% END %]
      </tr>
   [% END %]
[% END %]

[% BLOCK calc_bug_total %]
  [% IF !global.bug_count.$id %]
    [% global.estimated = global.estimated + bugs.$id.estimated_time %]
    [% global.remaining = global.remaining + bugs.$id.remaining_time %]
    [% IF !global.deadline || bugs.$id.deadline &&
          global.deadline.replace("-", "") < bugs.$id.deadline.replace("-", "") %]
      [% SET global.deadline = bugs.$id.deadline %]
    [% END %]
  [% END %]
[% END %]

[% BLOCK inactive_report %]
    <h3>Неактивные [% terms.bugs %]</h3>
    <table class="zeroitems">
    [% cid = 0 %]
    [% FOREACH bug_id = null.nsort %]
        [% INCLUDE bug_header id=bug_id cid=cid %]
        [% cid = cid + 1 %]
    [% END %]
    </table>
[% END %]


[% BLOCK section_total %]
  [% IF global.total > 0 %]
    <tr class="section_total">
      <td><b>Totals</b></td>
      <th colspan="[% colspan FILTER html %]" class="right">[% additional FILTER html %]</th>
      <th class="right">[% global.total FILTER format("%.2f") %]</th>
    </tr>
  [% ELSE %]
    <tr>
      <td>Затрат времени в течение указанного периода не было.</td>
    </tr>
  [% END %]
  [% global.grand_total = global.grand_total + global.total %]
[% END %]

[%#
  #
  # The query form
  #
  #%]

[% BLOCK query_form %]
<hr>
<form method="post" name="summary" action="summarize_time.cgi">
<input type="hidden" name="do_depends" value="[% do_depends FILTER html %]">
<input type="hidden" name="id" value="[% ids.join(",") FILTER html %]">
<input type="hidden" name="do_report" value="1">

[% IF warn_swap_dates %]
  <p class="warning_swapped_data">
    Конечная дата указана неверно - раньше даты начала. Поэтому даты ниже
    были заменены
  </p>
[% END %]

<table>
  <tr>
    <th>
      <label accesskey="s" for="start_date">Период с</label>:
    </th>
    <td>
      <input id="start_date" name="start_date" size="10" autofocus
             value="[% start_date FILTER html %]" maxlength="10"
             onchange="updateCalendarFromField(this)">
      <button type="button" class="calendar_button" id="button_calendar_start_date"
              onclick="showCalendar('start_date')"><span>Календарь</span>
      </button>
      <div id="con_calendar_start_date"></div>
      <span class="label">
        and <label accesskey="e" for="end_date">по</label>:
      </span>
      <input type="text" name="end_date" size="10" id="end_date"
             value ="[% end_date FILTER html %]" maxlength="10"
             onchange="updateCalendarFromField(this)">
      <button type="button" class="calendar_button" id="button_calendar_end_date"
              onclick="showCalendar('end_date')"><span>Календарь</span>
      </button>
      <div id="con_calendar_end_date"></div>
      <br>
      <span class="bz_info">Указание дат не обязательно, формат ГГГГ-ММ-ДД)</span>
    </td>
    <th><input type="submit" id="summarize" value="Анализировать"></th>
  </tr>

  <tr>
    <th>Группировать по:</th>
    <td>
      <input type="radio" name="group_by" id="number" value="number"
             [% 'checked="checked"' IF group_by == "number" %]>
      <label for="number" accesskey="n">Номеру [% terms.bug_gen %]</label>
      <input type="radio" name="group_by" id="owner" value="owner"
             [% 'checked="checked"' IF group_by == "owner" %]>
      <label for="owner" accesskey="d">Исполнителю</label>
    </td>
    <th>
      <label for="ctype">Формат</label>:
      <select name="ctype" id="ctype">
        <option value="html">HTML</option>
      </select>
    </th>
  </tr>

  <tr>
    <th>&nbsp;</th>
    <td colspan="2">
      <input type="checkbox" name="monthly" id="monthly"
             [% 'checked="checked"' IF monthly %]>
      <label for="monthly" accesskey="m">По месяцам</label>
      [%# XXX: allow splitting by other intervals %]
      <input type="checkbox" name="detailed" id="detailed"
             [% 'checked="checked"' IF detailed %]>
      <label for="detailed" accesskey="t">Подробно</label>
      <input type="checkbox" name="inactive" id="inactive"
             [% 'checked="checked"' IF inactive %]>
      <label for="inactive" accesskey="i">С учетом неактивных
  [%+ terms.bugs_gen %]</label>
    </td>
  </tr>
</table>

</form>
<script type="text/javascript">
  <!--
    [%+ PROCESS "global/calendar.js.tmpl" id = 'start_date' %]
    [% PROCESS "global/calendar.js.tmpl" id = 'end_date' %]
  //-->
</script>
<hr>
[% END %]
