1[%# This Source Code Form is subject to the terms of the Mozilla Public 2 # License, v. 2.0. If a copy of the MPL was not distributed with this 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 4 # 5 # This Source Code Form is "Incompatible With Secondary Licenses", as 6 # defined by the Mozilla Public License, v. 2.0. 7 #%] 8 9[%# INTERFACE: 10 # events: hash, keyed by event_id number. Values are anonymous hashes of: 11 # schedule: array of hashes containing schedule info: 12 # day: value in day column 13 # time: value selected in time column 14 # mailto_type: 0=user 1=group 15 # mailto: recipient's id (profile or group) 16 # queries: as with schedule, an anonymous array containing hashes of: 17 # name: the named query's name 18 # title: title to be displayed on the results 19 # sort: integer that sets execution order on named queries 20 #%] 21 22[% title = "whine の設定" %] 23[% PROCESS global/header.html.tmpl 24 title = title 25 style_urls = ['skins/standard/admin.css'] 26 doc_section = "using/index.html" 27%] 28 29<p> 30 "Whine" は Bugzilla が保存された検索をある指定された間隔で実行し、 31 その結果の [% terms.bugs %] リストをメールで送信するものです。 32</p> 33 34<p> 35 新規の whine を設定するには、"新規追加" をクリックしてください。 36 送信されるメッセージのタイトルを設定し、 37 メッセージの本文の [% terms.bug %] リストに追加される文章を入力してください。 38</p> 39 40<p> 41 "新規追加" をクリックするとイベントに設定されます。 42 whine スケジュールには、日付、時間もしくは時間間隔 (15 分おきなど)、 43 あなたの権限によりますが変更可能・不可が選択可能な送信先メールアドレスの設定が可能です。 44 異なる検索や異なるユーザに対して実行するために、 45 ひとつ以上のスケジュールがイベントに設定可能です。 46</p> 47 48<p> 49 <a href="query.cgi">検索</a> から作成可能な保存された検索を利用する場合、 50 Bugzilla に特定の名称の検索を利用するように設定することになります。 51 "新規追加" をクリックして、保存された検索を "検索" で選択し、[% terms.bug %] 52 の表にタイトルをつけます。"ソート" に入力された番号 (オプション) は、 53 複数の検索が登録されているときに実行する順序 (小さいものから大きいもの) を指定します。 54 もし、"ひとつの [% terms.bug %] にひとつのメール" オプションを選択した場合、 55 検索に合致する [% terms.bug %] が、それぞれひとつのメールとして送信されます。 56</p> 57 58<p> 59 すべての時刻はサーバのロケール ([% local_timezone FILTER html %]) での表示です。 60</p> 61 62<form method="post" action="editwhines.cgi"> 63[%# This hidden submit button must be here to set default behavior when 64 the user presses return on a form input field #%] 65<input type="submit" value="更新 / 追加" id="commit" name="commit" 66 class="bz_default_hidden"> 67<input type="hidden" name="update" value="1"> 68<input type="hidden" name="token" value="[% token FILTER html %]"> 69 70[% FOREACH event = events %] 71 72<table class="whining_list"> 73 <tr> 74 <th class="subtitle">イベント:</th> 75 <th colspan="2"> 76 <input type="submit" value="イベントの削除" 77 name="remove_event_[% event.key %]" 78 id="remove_event_[% event.key %]"> 79 </th> 80 </tr> 81 82 <tr> 83 <th>メールのタイトル:</th> 84 <td colspan="2"> 85 <input type="text" name="event_[% event.key %]_subject" 86 size="60" maxlength="128" value=" 87 [%- event.value.subject FILTER html %]"> 88 </td> 89 </tr> 90 91 <tr> 92 <th>whine メッセージに付ける説明の文章:</td> 93 <td colspan="2"> 94 [% INCLUDE global/textarea.html.tmpl 95 name = "event_${event.key}_body" 96 minrows = 3 97 maxrows = 10 98 defaultrows = 5 99 cols = 80 100 defaultcontent = event.value.body 101 %] 102 </td> 103 </tr> 104 105 <tr> 106 <th>検索結果に該当する [% terms.bugs %] が存在しないときもメッセージを送信する:</th> 107 <td colspan="2"> 108 <input type="checkbox" name="event_[% event.key %]_mailifnobugs" 109 [%- IF event.value.mailifnobugs == 1 %] checked [% END %]> 110 </td> 111 </tr> 112 113 [% IF event.value.schedule.size == 0 %] 114 115 <tr> 116 <td valign="top" align="right"> 117 スケジュール: 118 </td> 119 <td class="unset" colspan="2"> 120 指定済みのスケジュールがありません<br> 121 <input type="submit" value="スケジュールの追加" 122 name="add_schedule_[% event.key %]" 123 id="add_schedule_[% event.key %]"> 124 </td> 125 </tr> 126 127 [% ELSE %] 128 129 <tr> 130 <th>スケジュール:</th> 131 <td align="left" bgcolor="#EEFFEE"> 132 133 <table class="schedule_list"> 134 <tr> 135 <th> 136 間隔 137 </th> 138 <th> 139 [% IF mail_others %] 140 メール送信先 141 [% END %] 142 </th> 143 <th> 144 </th> 145 </tr> 146 [% FOREACH schedule = event.value.schedule %] 147 <tr> 148 <td> 149 150 [%# these hidden fields allow us to compare old values instead 151 of reading the database to tell if a field has changed %] 152 153 <input type="hidden" value="[% schedule.day FILTER html %]" 154 name="orig_day_[% schedule.id %]"> 155 <input type="hidden" value="[% schedule.time FILTER html %]" 156 name="orig_time_[% schedule.id %]"> 157 [% PROCESS day_field val=schedule.day %] 158 [% PROCESS time_field val=schedule.time %] 159 </td> 160 <td> 161 [% IF mail_others %] 162 <input type="hidden" name="orig_mailto_type_[% schedule.id %]" 163 value="[% schedule.mailto_type FILTER html %]"> 164 <select name="mailto_type_[% schedule.id %]"> 165 <option value="0" [% IF schedule.mailto_type == 0 %] 166 selected 167 [% END %]>ユーザ</option> 168 <option value="1" [% IF schedule.mailto_type == 1 %] 169 selected 170 [% END %]>グループ</option> 171 </select> 172 <input type="hidden" name="orig_mailto_[% schedule.id %]" 173 value="[% schedule.mailto FILTER html %]"> 174 <input type="text" name="mailto_[% schedule.id %]" 175 value="[% schedule.mailto FILTER html %]" size="30"> 176 [% END %] 177 </td> 178 <td> 179 <input type="submit" value="削除" 180 name="remove_schedule_[% schedule.id %]" 181 id="remove_schedule_[% schedule.id %]"> 182 </td> 183 </tr> 184 [% END %] 185 186 <tr> 187 <td colspan="3"> 188 <input type="submit" value="新規スケジュール追加" 189 name="add_schedule_[% event.key %]" 190 id="add_schedule_[% event.key %]"> 191 </td> 192 </tr> 193 194 </table> 195 196 </td> 197 </tr> 198 199 [% END %] 200 201 [% IF event.value.queries.size == 0 %] 202 203 <tr> 204 <th>検索:</th> 205 <td> 206 指定済みの検索がありません <br> 207 <input type="submit" value="検索の追加" 208 name="add_query_[% event.key %]" 209 id="add_query_[% event.key %]"> 210 </td> 211 <td class="right"> 212 <input type="submit" value="更新 / 追加" name="commit" id="update"> 213 </td> 214 </tr> 215 216 [% ELSE %] 217 218 <tr> 219 <th>検索:</th> 220 <td colspan="2"> 221 222 <table class="search_list"> 223 <tr> 224 <th>ソート</th> 225 <th>検索</th> 226 <th>タイトル</th> 227 <th colspan="2"></th> 228 </tr> 229 230 [% FOREACH query = event.value.queries %] 231 232 <tr> 233 <td> 234 <input type="text" name="query_sort_[% query.id %]" 235 size="3" value="[% query.sort %]"> 236 <input type="hidden" value="[% query.sort %]" 237 name="orig_query_sort_[% query.id %]"> 238 </td> 239 <td> 240 <input type="hidden" value="[% query.name FILTER html %]" 241 name="orig_query_name_[% query.id %]"> 242 [% PROCESS query_field thisquery=query.name %] 243 </td> 244 <td> 245 <input type="hidden" value="[% query.title FILTER html %]" 246 name="orig_query_title_[% query.id %]"> 247 <input type="text" name="query_title_[% query.id %]" 248 size="50" value="[% query.title FILTER html %]" 249 maxlength="64"> 250 </td> 251 <td> 252 <input type="hidden" value="[% query.onemailperbug FILTER html %]" 253 name="orig_query_onemailperbug_[% query.id %]"> 254 <input type="checkbox" [% IF query.onemailperbug == 1 %] checked [% END %] 255 id="query_onemailperbug_[% query.id %]" 256 name="query_onemailperbug_[% query.id %]"> 257 <label for="query_onemailperbug_[% query.id %]">[% terms.bug %] ごとにメール</label> 258 </td> 259 <td> 260 <input type="submit" value="削除" 261 name="remove_query_[% query.id %]" 262 id="remove_query_[% query.id %]"> 263 </td> 264 </tr> 265 266 [% END %] 267 268 <tr> 269 <td colspan="3"> 270 <input type="submit" value="新規検索の追加" 271 name="add_query_[% event.key %]" 272 id="add_query_[% event.key %]"> 273 </td> 274 <td colspan="2" class="right"> 275 <input type="submit" value="更新 / 追加" name="commit" id="update"> 276 </td> 277 </tr> 278 </table> 279 280 </td> 281 </tr> 282 283 [% END %] 284 285</table> 286 287[% END %] 288 289<p> 290 <input type="submit" value="新規追加" name="add_event" id="add_event"> 291</p> 292 293</form> 294 295[% PROCESS global/footer.html.tmpl %] 296 297[% BLOCK query_field +%] 298 299 [% IF available_queries.size > 0 %] 300 301 <select name="query_name_[% query.id %]"> 302 [% FOREACH q = available_queries %] 303 <option [% "selected" IF q == thisquery %] value="[% q FILTER html %]"> 304 [% q FILTER html %] 305 </option> 306 [% END %] 307 </select> 308 309 [% ELSE %] 310 <a href="query.cgi">検索</a> ページから検索条件を保存してください 311 [% END %] 312 313[%+ END %] 314 315[% BLOCK day_field +%] 316 <select name="day_[% schedule.id %]"> 317 [% 318 options = [ 319 ['All', '毎日', ], 320 ['MF', '月から金', ], 321 ['Sun', '日', ], 322 ['Mon', '月', ], 323 ['Tue', '火', ], 324 ['Wed', '水', ], 325 ['Thu', '木', ], 326 ['Fri', '金', ], 327 ['Sat', '土', ], 328 ['1', '毎月 1 日', ], 329 ['2', '毎月 2 日', ], 330 ['3', '毎月 3 日', ], 331 ['4', '毎月 4 日', ], 332 ['5', '毎月 5 日', ], 333 ['6', '毎月 6 日', ], 334 ['7', '毎月 7 日', ], 335 ['8', '毎月 8 日', ], 336 ['9', '毎月 9 日', ], 337 ['10', '毎月 10 日', ], 338 ['11', '毎月 11 日', ], 339 ['12', '毎月 12 日', ], 340 ['13', '毎月 13 日', ], 341 ['14', '毎月 14 日', ], 342 ['15', '毎月 15 日', ], 343 ['16', '毎月 16 日', ], 344 ['17', '毎月 17 日', ], 345 ['18', '毎月 18 日', ], 346 ['19', '毎月 19 日', ], 347 ['20', '毎月 20 日', ], 348 ['21', '毎月 21 日', ], 349 ['22', '毎月 22 日', ], 350 ['23', '毎月 23 日', ], 351 ['24', '毎月 24 日', ], 352 ['25', '毎月 25 日', ], 353 ['26', '毎月 26 日', ], 354 ['27', '毎月 27 日', ], 355 ['28', '毎月 28 日', ], 356 ['29', '毎月 29 日', ], 357 ['30', '毎月 30 日', ], 358 ['31', '毎月 31 日', ], 359 ['last', '毎月最終日', ], 360 ] 361 %] 362 363 [% FOREACH option = options %] 364 <option value="[% option.0 %]" 365 [%- IF val == option.0 +%] selected[% END %]> 366 [%- option.1 -%] 367 </option> 368 [% END %] 369 370 </select> 371[%+ END %] 372 373[% BLOCK time_field +%] 374<select name="time_[% schedule.id %]"> 375 376 [% 377 options = [ 378 [ '0', 'at 00:00', ], 379 [ '1', 'at 01:00', ], 380 [ '2', 'at 02:00', ], 381 [ '3', 'at 03:00', ], 382 [ '4', 'at 04:00', ], 383 [ '5', 'at 05:00', ], 384 [ '6', 'at 06:00', ], 385 [ '7', 'at 07:00', ], 386 [ '8', 'at 08:00', ], 387 [ '9', 'at 09:00', ], 388 [ '10', 'at 10:00', ], 389 [ '11', 'at 11:00', ], 390 [ '12', 'at 12:00', ], 391 [ '13', 'at 13:00', ], 392 [ '14', 'at 14:00', ], 393 [ '15', 'at 15:00', ], 394 [ '16', 'at 16:00', ], 395 [ '17', 'at 17:00', ], 396 [ '18', 'at 18:00', ], 397 [ '19', 'at 19:00', ], 398 [ '20', 'at 20:00', ], 399 [ '21', 'at 21:00', ], 400 [ '22', 'at 22:00', ], 401 [ '23', 'at 23:00', ], 402 [ '60min', '毎時', ], 403 [ '30min', '30 分ごと', ], 404 [ '15min', '15 分ごと', ], 405 ] 406 %] 407 408 [% FOREACH option = options %] 409 <option value="[% option.0 %]" 410 [%- IF val == option.0 +%] selected[% END %]> 411 [%- option.1 -%] 412 </option> 413 [% END %] 414 415</select> 416 417[%+ END %] 418 419