[%# 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:
  # events: hash, keyed by event_id number.  Values are anonymous hashes of:
  #     schedule: array of hashes containing schedule info:
  #         day:    value in day column
  #         time:   value selected in time column
  #         mailto_type: 0=user 1=group
  #         mailto: recipient's id (profile or group)
  #     queries:  as with schedule, an anonymous array containing hashes of:
  #         name:  the named query's name
  #         title: title to be displayed on the results
  #         sort:  integer that sets execution order on named queries
  #%]

[% title = "Настройка оповещений" %]
[% PROCESS global/header.html.tmpl
  title = title
  style_urls = ['skins/standard/admin.css']
  doc_section = "using/index.html"
%]

<p>
  Оповещения [% terms.Bugzilla %] — это возможность выполнения отбора
  по заданным условиям и отправки полученного списка [% terms.bugs_gen %] 
  по электронной почте.
</p>

<p>
  Для настройки нового оповещения выберите "Создать оповещение".
  Введите тему и текст сообщения электронной почты.
</p>

<p>
  Затем добавьте расписания, выбрав "Создать расписание". Укажите
  дату, время или интервал времени (например, каждые 15 минут) и адрес
  получателя (при наличии полномочий). Для отправки в разное время или
  нескольким пользователям потребуется несколько расписаний.
</p>

<p>
  Для построения списка [% terms.bugs_gen %] используются хранимые 
  условия отбора. Выполните <a href="query.cgi">поиск [% terms.bugs_gen %]</a>,
  затем сохраните условия отбора, задав имя. Выберите "Создать условие",
  укажите имя сохраненного условия отбора и название полученного списка
  [% terms.bugs_gen %]. Необязательное поле "Порядок сортировки"
  определяет порядок выполнения отбора по условиям. При выборе
  флажка "Отдельными сообщениями" для каждой [% terms.bug_gen %]
  будет отправлено отдельное сообщение.
</p>

<p>
  Время в расписании — местное ([% local_timezone FILTER html %]).
</p>

<form method="post" action="editwhines.cgi">
[%# This hidden submit button must be here to set default behavior when
    the user presses return on a form input field #%]
<input type="submit" value="Сохранить" id="commit" name="commit"
       class="bz_default_hidden">
<input type="hidden" name="update" value="1">
<input type="hidden" name="token" value="[% token FILTER html %]">

[% FOREACH event = events %]

<table class="whining_list">
  <tr>
    <th class="subtitle">Оповещение:</th>
    <th colspan="2">
      <input type="submit" value="Удалить"
             name="remove_event_[% event.key %]"
             id="remove_event_[% event.key %]">
    </th>
  </tr>

  <tr>
    <th>Тема сообщения:</th>
    <td colspan="2">
      <input type="text" name="event_[% event.key %]_subject"
             size="60" maxlength="128" value="
             [%- event.value.subject FILTER html %]">
    </td>
  </tr>

  <tr>
    <th>Сопроводительный текст:</th>
    <td colspan="2">
      [% INCLUDE global/textarea.html.tmpl
         name           = "event_${event.key}_body"
         minrows        = 3
         maxrows        = 10
         defaultrows    = 5
         cols           = 80
         defaultcontent = event.value.body
       %]
    </td>
  </tr>

  <tr>
    <th>Отправлять сообщение даже если результат поиска пустой:</th>
    <td colspan="2">
      <input type="checkbox" name="event_[% event.key %]_mailifnobugs"
        [%- IF event.value.mailifnobugs == 1 %] checked [% END %]>
    </td>
  </tr>

  [% IF event.value.schedule.size == 0 %]

    <tr>
      <th>Расписание:</th>
      <td class="unset" colspan="2">
        Не установлено<br>
        <input type="submit" value="Создать расписание"
               name="add_schedule_[% event.key %]"
               id="add_schedule_[% event.key %]">
      </td>
    </tr>

  [% ELSE %]

    <tr>
      <th>Расписание:</th>
      <td class="set" colspan="2">

        <table class="schedule_list">
          <tr>
            <th>Интервал</th>
            <th>
              [% IF mail_others %]
                Адресат
              [% END %]
            </th>
            <th></th>
          </tr>

          [% FOREACH schedule = event.value.schedule %]
            <tr>
              <td>
                [%# these hidden fields allow us to compare old values instead
                    of reading the database to tell if a field has changed %]

                <input type="hidden" value="[% schedule.day FILTER html %]"
                       name="orig_day_[% schedule.id %]">
                <input type="hidden" value="[% schedule.time FILTER html %]"
                       name="orig_time_[% schedule.id %]">
                [% PROCESS day_field val=schedule.day %]
                [% PROCESS time_field val=schedule.time %]
              </td>
              <td>
                [% IF mail_others %]
                  <input type="hidden" name="orig_mailto_type_[% schedule.id %]"
                         value="[% schedule.mailto_type FILTER html %]">
                  <select name="mailto_type_[% schedule.id %]">
                    <option value="0" [% IF schedule.mailto_type == 0 %]
                                        selected
                                      [% END %]>Пользователь</option>
                    <option value="1" [% IF schedule.mailto_type == 1 %]
                                        selected
                                      [% END %]>Группа</option>
                  </select>
                  <input type="hidden" name="orig_mailto_[% schedule.id %]"
                         value="[% schedule.mailto FILTER html %]">
                  <input type="text" name="mailto_[% schedule.id %]"
                         value="[% schedule.mailto FILTER html %]" size="30">
                [% END %]
              </td>
              <td>
                <input type="submit" value="Удалить"
                       name="remove_schedule_[% schedule.id %]"
                       id="remove_schedule_[% schedule.id %]">
              </td>
            </tr>
          [% END %]

          <tr>
            <td colspan="3">
              <input type="submit" value="Добавить расписание"
                     name="add_schedule_[% event.key %]"
                     id="add_schedule_[% event.key %]">
            </td>
          </tr>
        </table>

      </td>
    </tr>

  [% END %]

  [% IF event.value.queries.size == 0 %]

    <tr>
      <th>Условия:</th>
      <td>
        не заданы <br>
        <input type="submit" value="Добавить условие"
               name="add_query_[% event.key %]"
               id="add_query_[% event.key %]">
      </td>
      <td class="right">
        <input type="submit" value="Сохранить" name="commit" id="update">
      </td>
    </tr>

  [% ELSE %]

    <tr>
      <th>Условия:</th>
      <td colspan="2">

        <table class="search_list">
          <tr>
            <th>Порядок</th>
            <th>Условие</th>
            <th>Название списка</th>
            <th colspan="2"></th>
          </tr>

          [% FOREACH query = event.value.queries %]

            <tr>
              <td>
                <input type="text" name="query_sort_[% query.id %]"
                       size="3" value="[% query.sort %]">
                <input type="hidden" value="[% query.sort %]"
                       name="orig_query_sort_[% query.id %]">
              </td>
              <td>
                <input type="hidden" value="[% query.name FILTER html %]"
                       name="orig_query_name_[% query.id %]">
                [% PROCESS query_field thisquery=query.name %]
              </td>
              <td>
                <input type="hidden" value="[% query.title FILTER html %]"
                       name="orig_query_title_[% query.id %]">
                <input type="text" name="query_title_[% query.id %]"
                       size="50" value="[% query.title FILTER html %]"
                       maxlength="64">
              </td>
              <td>
                <input type="hidden" value="[% query.onemailperbug FILTER html %]"
                       name="orig_query_onemailperbug_[% query.id %]">
                <input type="checkbox" [% IF query.onemailperbug == 1 %] checked [% END %]
                       id="query_onemailperbug_[% query.id %]"
                       name="query_onemailperbug_[% query.id %]">
                <label for="query_onemailperbug_[% query.id %]">Отдельными сообщениями</label>
              </td>
              <td>
                <input type="submit" value="Удалить"
                       name="remove_query_[% query.id %]"
                       id="remove_query_[% query.id %]">
              </td>
            </tr>

          [% END %]

          <tr>
            <td colspan="3">
              <input type="submit" value="Добавить условие"
                     name="add_query_[% event.key %]"
                     id="add_query_[% event.key %]">
            </td>
            <td colspan="2" class="right">
              <input type="submit" value="Сохранить" name="commit" id="update">
            </td>
          </tr>
        </table>

      </td>
    </tr>

  [% END %]

</table>

[% END %]

<p>
  <input type="submit" value="Создать оповещение" name="add_event" id="add_event">
</p>

</form>

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

[% BLOCK query_field +%]

  [% IF available_queries.size > 0 %]

    <select name="query_name_[% query.id %]">
      [% FOREACH q = available_queries %]
        <option [% "selected" IF q == thisquery %] value="[% q FILTER html %]">
            [% q FILTER html %]
        </option>
      [% END %]
    </select>

  [% ELSE %]
    Сохраните условия отбора на <a href="query.cgi">странице поиска</a>
  [% END %]

[%+ END %]

[% BLOCK day_field +%]
  <select name="day_[% schedule.id %]">
      [%
        options = [
            ['All',  'Ежедневно',                ],
            ['MF',   'В рабочие дни',            ],
            ['Sun',  'Воскресенье',              ],
            ['Mon',  'Понедельник',              ],
            ['Tue',  'Вторник',                  ],
            ['Wed',  'Среда',                    ],
            ['Thu',  'Четверг',                  ],
            ['Fri',  'Пятница',                  ],
            ['Sat',  'Суббота',                  ],
            ['1',    'По 1 числам',              ],
            ['2',    'По 2 числам',              ],
            ['3',    'По 3 числам',              ],
            ['4',    'По 4 числам',              ],
            ['5',    'По 5 числам',              ],
            ['6',    'По 6 числам',              ],
            ['7',    'По 7 числам',              ],
            ['8',    'По 8 числам',              ],
            ['9',    'По 9 числам',              ],
            ['10',   'По 10 числам',             ],
            ['11',   'По 11 числам',             ],
            ['12',   'По 12 числам',             ],
            ['13',   'По 13 числам',             ],
            ['14',   'По 14 числам',             ],
            ['15',   'По 15 числам',             ],
            ['16',   'По 16 числам',             ],
            ['17',   'По 17 числам',             ],
            ['18',   'По 18 числам',             ],
            ['19',   'По 19 числам',             ],
            ['20',   'По 20 числам',             ],
            ['21',   'По 21 числам',             ],
            ['22',   'По 22 числам',             ],
            ['23',   'По 23 числам',             ],
            ['24',   'По 24 числам',             ],
            ['25',   'По 25 числам',             ],
            ['26',   'По 26 числам',             ],
            ['27',   'По 27 числам',             ],
            ['28',   'По 28 числам',             ],
            ['29',   'По 29 числам',             ],
            ['30',   'По 30 числам',             ],
            ['31',   'По 31 числам',             ],
            ['last', 'В последний день месяца',  ],
        ]
      %]

      [% FOREACH option = options %]
        <option value="[% option.0 %]" 
                [%- IF val == option.0 +%] selected[% END %]>
                [%- option.1 -%]
        </option>
      [% END %]

  </select>
[%+ END %]

[% BLOCK time_field +%]
<select name="time_[% schedule.id %]">

  [%
    options = [
        [ '0',     '00:00',           ],
        [ '1',     '01:00',           ],
        [ '2',     '02:00',           ],
        [ '3',     '03:00',           ],
        [ '4',     '04:00',           ],
        [ '5',     '05:00',           ],
        [ '6',     '06:00',           ],
        [ '7',     '07:00',           ],
        [ '8',     '08:00',           ],
        [ '9',     '09:00',           ],
        [ '10',    '10:00',           ],
        [ '11',    '11:00',           ],
        [ '12',    '12:00',           ],
        [ '13',    '13:00',           ],
        [ '14',    '14:00',           ],
        [ '15',    '15:00',           ],
        [ '16',    '16:00',           ],
        [ '17',    '17:00',           ],
        [ '18',    '18:00',           ],
        [ '19',    '19:00',           ],
        [ '20',    '20:00',           ],
        [ '21',    '21:00',           ],
        [ '22',    '22:00',           ],
        [ '23',    '23:00',           ],
        [ '60min', 'каждый час',      ],
        [ '30min', 'каждые 30 минут', ],
        [ '15min', 'каждые 15 минут', ],
    ]
  %]

      [% FOREACH option = options %]
        <option value="[% option.0 %]" 
                [%- IF val == option.0 +%] selected[% END %]>
                [%- option.1 -%]
        </option>
      [% END %]

</select>

[%+ END %]
