diff options
Diffstat (limited to 'template/en/custom/whine/schedule.html.tmpl')
-rw-r--r-- | template/en/custom/whine/schedule.html.tmpl | 412 |
1 files changed, 412 insertions, 0 deletions
diff --git a/template/en/custom/whine/schedule.html.tmpl b/template/en/custom/whine/schedule.html.tmpl new file mode 100644 index 000000000..7538a1425 --- /dev/null +++ b/template/en/custom/whine/schedule.html.tmpl @@ -0,0 +1,412 @@ +[%# 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 = "Set up whining" %] +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] + doc_section = "using/index.html" +%] + +<p> + "Whining" is when Bugzilla executes a saved search at a regular interval + and sends the resulting list of [% terms.bugs %] via email. +</p> + +<p> + To set up a new whine event, click "Add a new event." Enter a subject line + for the message that will be sent, along with a block of text that will + accompany the [% terms.bug %] list in the body of the message. +</p> + +<p> + Schedules are added to an event by clicking on "Add a new schedule." A schedule + consists of a day, a time of day or interval of times + (e.g., every 15 minutes), and a target email address that may or may not be + alterable, depending on your privileges. Events may have more than one schedule + in order to run at multiple times or for different users. +</p> + +<p> + Searches come from saved searches, which are created by executing a <a + href="query.cgi">search</a>, then telling Bugzilla to remember + the search under a particular name. Add a search by clicking "Add a + search", and select the desired saved search name under "Search" and add a + title for the [% terms.bug %] table. The optional number entered under + "Sort" will determine the execution order (lowest to highest) if multiple + queries are listed. If you check "One message per [% terms.bug %]," each [% + terms.bug %] that matches the search will be sent in its own email message. +</p> + +<p> + All times are server local time ([% 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="Update / Commit" 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">Event:</th> + <th colspan="2"> + <input type="submit" value="Remove Event" + name="remove_event_[% event.key %]" + id="remove_event_[% event.key %]"> + </th> + </tr> + + <tr> + <th>Email subject line:</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>Descriptive text sent within whine message:</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>Send a message even if there are no [% terms.bugs %] in the search result:</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>Schedule:</th> + <td class="unset" colspan="2"> + Not scheduled to run<br> + <input type="submit" value="Add a new schedule" + name="add_schedule_[% event.key %]" + id="add_schedule_[% event.key %]"> + </td> + </tr> + + [% ELSE %] + + <tr> + <th>Schedule:</th> + <td class="set" colspan="2"> + + <table class="schedule_list"> + <tr> + <th>Interval</th> + <th> + [% IF mail_others %] + Mail to + [% 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 %]>User</option> + <option value="1" [% IF schedule.mailto_type == 1 %] + selected + [% END %]>Group</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="Remove" + name="remove_schedule_[% schedule.id %]" + id="remove_schedule_[% schedule.id %]"> + </td> + </tr> + [% END %] + + <tr> + <td colspan="3"> + <input type="submit" value="Add a new schedule" + name="add_schedule_[% event.key %]" + id="add_schedule_[% event.key %]"> + </td> + </tr> + </table> + + </td> + </tr> + + [% END %] + + [% IF event.value.queries.size == 0 %] + + <tr> + <th>Searches:</th> + <td> + No searches <br> + <input type="submit" value="Add a search" + name="add_query_[% event.key %]" + id="add_query_[% event.key %]"> + </td> + <td class="right"> + <input type="submit" value="Update / Commit" name="commit" id="update"> + </td> + </tr> + + [% ELSE %] + + <tr> + <th>Searches:</th> + <td colspan="2"> + + <table class="search_list"> + <tr> + <th>Sort</th> + <th>Search</th> + <th>Title</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 %]">One message per [% terms.bug %]</label> + </td> + <td> + <input type="submit" value="Remove" + name="remove_query_[% query.id %]" + id="remove_query_[% query.id %]"> + </td> + </tr> + + [% END %] + + <tr> + <td colspan="3"> + <input type="submit" value="Add a search" + name="add_query_[% event.key %]" + id="add_query_[% event.key %]"> + </td> + <td colspan="2" class="right"> + <input type="submit" value="Update / Commit" name="commit" id="update"> + </td> + </tr> + </table> + + </td> + </tr> + + [% END %] + +</table> + +[% END %] + +<p> + <input type="submit" class="btn btn-primary" value="Add a new event" 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 %] + Please visit the <a href="query.cgi">Search</a> page and save a search + [% END %] + +[%+ END %] + +[% BLOCK day_field +%] + <select name="day_[% schedule.id %]"> + [% + options = [ + ['All', 'Each day', ], + ['MF', 'Monday through Friday', ], + ['Sun', 'Sunday', ], + ['Mon', 'Monday', ], + ['Tue', 'Tuesday', ], + ['Wed', 'Wednesday', ], + ['Thu', 'Thursday', ], + ['Fri', 'Friday', ], + ['Sat', 'Saturday', ], + ['1', 'On the 1st of the month', ], + ['2', 'On the 2nd of the month', ], + ['3', 'On the 3rd of the month', ], + ['4', 'On the 4th of the month', ], + ['5', 'On the 5th of the month', ], + ['6', 'On the 6th of the month', ], + ['7', 'On the 7th of the month', ], + ['8', 'On the 8th of the month', ], + ['9', 'On the 9th of the month', ], + ['10', 'On the 10th of the month', ], + ['11', 'On the 11th of the month', ], + ['12', 'On the 12th of the month', ], + ['13', 'On the 13th of the month', ], + ['14', 'On the 14th of the month', ], + ['15', 'On the 15th of the month', ], + ['16', 'On the 16th of the month', ], + ['17', 'On the 17th of the month', ], + ['18', 'On the 18th of the month', ], + ['19', 'On the 19th of the month', ], + ['20', 'On the 20th of the month', ], + ['21', 'On the 21st of the month', ], + ['22', 'On the 22nd of the month', ], + ['23', 'On the 23rd of the month', ], + ['24', 'On the 24th of the month', ], + ['25', 'On the 25th of the month', ], + ['26', 'On the 26th of the month', ], + ['27', 'On the 27th of the month', ], + ['28', 'On the 28th of the month', ], + ['29', 'On the 29th of the month', ], + ['30', 'On the 30th of the month', ], + ['31', 'On the 31st of the month', ], + ['last', 'Last day of the month', ], + ] + %] + + [% 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', 'at midnight', ], + [ '1', 'at 01:00', ], + [ '2', 'at 02:00', ], + [ '3', 'at 03:00', ], + [ '4', 'at 04:00', ], + [ '5', 'at 05:00', ], + [ '6', 'at 06:00', ], + [ '7', 'at 07:00', ], + [ '8', 'at 08:00', ], + [ '9', 'at 09:00', ], + [ '10', 'at 10:00', ], + [ '11', 'at 11:00', ], + [ '12', 'at 12:00', ], + [ '13', 'at 13:00', ], + [ '14', 'at 14:00', ], + [ '15', 'at 15:00', ], + [ '16', 'at 16:00', ], + [ '17', 'at 17:00', ], + [ '18', 'at 18:00', ], + [ '19', 'at 19:00', ], + [ '20', 'at 20:00', ], + [ '21', 'at 21:00', ], + [ '22', 'at 22:00', ], + [ '23', 'at 23:00', ], + [ '60min', 'every hour', ], + [ '30min', 'every 30 minutes', ], + [ '15min', 'every 15 minutes', ], + ] + %] + + [% FOREACH option = options %] + <option value="[% option.0 %]" + [%- IF val == option.0 +%] selected[% END %]> + [%- option.1 -%] + </option> + [% END %] + +</select> + +[%+ END %] |