summaryrefslogtreecommitdiffstats
path: root/extensions/RequestNagger/template
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/RequestNagger/template')
-rw-r--r--extensions/RequestNagger/template/en/default/account/prefs/request_nagging.html.tmpl56
-rw-r--r--extensions/RequestNagger/template/en/default/email/request_nagging-requestee-header.txt.tmpl19
-rw-r--r--extensions/RequestNagger/template/en/default/email/request_nagging-requestee.html.tmpl91
-rw-r--r--extensions/RequestNagger/template/en/default/email/request_nagging-requestee.txt.tmpl45
-rw-r--r--extensions/RequestNagger/template/en/default/email/request_nagging-watching-header.txt.tmpl15
-rw-r--r--extensions/RequestNagger/template/en/default/email/request_nagging-watching.html.tmpl105
-rw-r--r--extensions/RequestNagger/template/en/default/email/request_nagging-watching.txt.tmpl47
-rw-r--r--extensions/RequestNagger/template/en/default/hook/account/prefs/prefs-tabs.html.tmpl14
-rw-r--r--extensions/RequestNagger/template/en/default/hook/admin/products/edit-common-rows.html.tmpl16
-rw-r--r--extensions/RequestNagger/template/en/default/hook/admin/products/updated-changes.html.tmpl14
-rw-r--r--extensions/RequestNagger/template/en/default/hook/bug/show-header-end.html.tmpl9
-rw-r--r--extensions/RequestNagger/template/en/default/hook/global/setting-descs-settings.none.tmpl11
-rw-r--r--extensions/RequestNagger/template/en/default/hook/global/user-error-errors.html.tmpl25
-rw-r--r--extensions/RequestNagger/template/en/default/pages/request_defer.html.tmpl101
14 files changed, 568 insertions, 0 deletions
diff --git a/extensions/RequestNagger/template/en/default/account/prefs/request_nagging.html.tmpl b/extensions/RequestNagger/template/en/default/account/prefs/request_nagging.html.tmpl
new file mode 100644
index 000000000..98317e328
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/account/prefs/request_nagging.html.tmpl
@@ -0,0 +1,56 @@
+[%# 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.
+ #%]
+
+<label for="request_nagging">
+ Send me reminders for outstanding requests:
+</label>
+<select name="request_nagging" id="request_nagging">
+ <option value="default" [% "selected" IF user.settings.request_nagging.is_default %]>
+ Site Default (On)
+ </option>
+ <option value="on" [% "selected" IF !user.settings.request_nagging.is_default
+ && user.settings.request_nagging.value == "on" %]>
+ On
+ </option>
+ <option value="off" [% "selected" IF !user.settings.request_nagging.is_default
+ && user.settings.request_nagging.value == "off" %]>
+ Off
+ </option>
+</select>
+
+<h4>User Request Reminder Watching</h4>
+
+<p>
+ If you watch a user, you will receive a report of their outstanding
+ requests.
+</p>
+
+<p>
+ [% IF watching.size %]
+ You are watching everyone in the following list:<br>
+ <select id="del_watching" name="del_watching" multiple="multiple" size="5">
+ [% FOREACH u = watching %]
+ <option value="[% u FILTER html %]">[% u FILTER html %]</option>
+ [% END %]
+ </select><br>
+ <input type="checkbox" id="remove_watched_users" name="remove_watched_users">
+ <label for="remove_watched_users">Remove selected users from my watch list</label>
+ [% ELSE %]
+ <i>You are currently not watching any users.</i>
+ [% END %]
+</p>
+
+<p>Add users to my watch list (comma separated list):
+ [% INCLUDE global/userselect.html.tmpl
+ id => "add_watching"
+ name => "add_watching"
+ value => ""
+ size => 60
+ multiple => 5
+ %]
+</p>
diff --git a/extensions/RequestNagger/template/en/default/email/request_nagging-requestee-header.txt.tmpl b/extensions/RequestNagger/template/en/default/email/request_nagging-requestee-header.txt.tmpl
new file mode 100644
index 000000000..3fc2ea66b
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/email/request_nagging-requestee-header.txt.tmpl
@@ -0,0 +1,19 @@
+[%# 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/field-descs.none.tmpl" %]
+[% PROCESS "global/reason-descs.none.tmpl" %]
+From: [% Param('mailfrom') %]
+To: [% recipient.email %]
+Subject: [[% terms.Bugzilla %]] Your Outstanding Requests
+ ([% FOREACH type = requests.item(recipient.email).typelist %]
+ [%- requests.item(recipient.email).types.item(type).size %] [%+ type %]
+ [% ", " UNLESS loop.last %]
+ [% END %])
+Date: [% date %]
+X-Bugzilla-Type: nag
diff --git a/extensions/RequestNagger/template/en/default/email/request_nagging-requestee.html.tmpl b/extensions/RequestNagger/template/en/default/email/request_nagging-requestee.html.tmpl
new file mode 100644
index 000000000..b1b0eff7e
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/email/request_nagging-requestee.html.tmpl
@@ -0,0 +1,91 @@
+[%# 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/field-descs.none.tmpl" %]
+
+<!doctype html>
+<html>
+
+<head>
+ <title>[[% terms.Bugzilla %]] Your Outstanding Requests</title>
+</head>
+
+<body bgcolor="#ffffff">
+
+<p>
+ The following is a list of requests people have made of you, which are
+ currently outstanding. To avoid disappointing others, please deal with them as
+ quickly as possible.
+</p>
+
+[% requests = requests.item(recipient.login) %]
+[% FOREACH type = requests.typelist %]
+
+ <h3>
+ [% type FILTER upper FILTER html %] requests
+ <span style="font-size: x-small; font-weight: normal">
+ (<a href="[% urlbase FILTER none %]buglist.cgi?bug_id=
+ [% FOREACH request = requests.types.$type %]
+ [% request.bug.id FILTER none %]
+ [% "%2C" UNLESS loop.last %]
+ [% END %]">buglist</a>)
+ </span>
+ </h3>
+
+ <ul>
+ [% FOREACH request = requests.types.$type %]
+ <li>
+ <a href="[% urlbase FILTER none %]show_bug.cgi?id=[% request.bug.id FILTER none %]"
+ title="[% request.bug.bug_status FILTER html %]
+ [% request.bug.product FILTER html %] :: [% request.bug.component FILTER html %]">
+ [% request.bug.id FILTER none %] - [% request.bug.short_desc FILTER html %]
+ </a><br>
+ <b>[%+ request.flag.age FILTER html %]</b> from [% request.requester.identity FILTER html %]<br>
+ <div style="font-size: x-small">
+ [% IF request.attachment %]
+ <a href="[% urlbase FILTER none %]attachment.cgi?id=[% request.attachment.id FILTER none %]">Details</a>
+ [% IF request.attachment.ispatch %]
+ | <a href="[% urlbase FILTER none %]attachment.cgi?id=[% request.attachment.id FILTER none %]&amp;action=diff">Diff</a>
+ | <a href="[% urlbase FILTER none %]review?bug=[% request.bug.id FILTER none %]&amp;attachment=[% request.attachment.id FILTER none %]">Review</a>
+ [% END %]
+ |
+ [% END %]
+ <a href="[% urlbase FILTER none %]request_defer?flag=[% request.flag.id FILTER none %]">Defer</a>
+ </div>
+ <br>
+ </li>
+ [% END %]
+ </ul>
+
+[% END %]
+
+<div>
+ <hr style="border: 1px dashed #969696">
+ [% IF requests.types.item('review').size || requests.types.item('feedback').size %]
+ <a href="https://wiki.mozilla.org/BMO/Handling_Requests">
+ Guidance on handling requests
+ </a><br>
+ [% END %]
+ <a href="[% urlbase FILTER none %]request.cgi?action=queue&amp;requestee=[% recipient.login FILTER uri %]&amp;group=type">
+ See all your outstanding requests
+ </a><br>
+ <a href="[% urlbase FILTER none %]userprefs.cgi#request_nagging">
+ Opt out of these emails
+ </a><br>
+</div>
+
+<div style="font-size: 90%; color: #666666">
+ <hr style="border: 1px dashed #969696">
+ <b>You are receiving this mail because:</b>
+ <ul>
+ <li>You have outstanding requests.</li>
+ </ul>
+</div>
+
+</body>
+</html>
diff --git a/extensions/RequestNagger/template/en/default/email/request_nagging-requestee.txt.tmpl b/extensions/RequestNagger/template/en/default/email/request_nagging-requestee.txt.tmpl
new file mode 100644
index 000000000..83fbfcf71
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/email/request_nagging-requestee.txt.tmpl
@@ -0,0 +1,45 @@
+[%# 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/field-descs.none.tmpl" %]
+
+The following is a list of requests people have made of you, which are
+currently outstanding. To avoid disappointing others, please deal with them as
+quickly as possible.
+
+[% requests = requests.item(recipient.login) %]
+[% FOREACH type = requests.typelist %]
+:: [% type FILTER upper FILTER html %] requests
+
+[% FOREACH request = requests.types.$type %]
+[[% terms.Bug %] [%+ request.bug.id %]] [% request.bug.short_desc %]
+ [%+ request.flag.age %] from [% request.requester.identity %]
+ [%+ urlbase %]show_bug.cgi?id=[% request.bug.id +%]
+ [% IF request.attachment && request.attachment.ispatch %]
+ Review: [% urlbase %]review?bug=[% request.bug.id %]&attachment=[% request.attachment.id %]
+ [% END %]
+ Defer: [% urlbase %]request_defer?flag=[% request.flag.id %]
+
+[% END %]
+[% END %]
+
+::
+
+[% IF requests.types.item('review').size || requests.types.item('feedback').size %]
+Guidance on handling requests:
+ https://wiki.mozilla.org/BMO/Handling_Requests
+[% END %]
+
+See all your outstanding requests:
+ [%+ urlbase %]request.cgi?action=queue&requestee=[% recipient.login FILTER uri %]&group=type
+
+Opt out of these emails:
+ [%+ urlbase %]userprefs.cgi#request_nagging
+
+--
+You are receiving this mail because: you have outstanding requests.
diff --git a/extensions/RequestNagger/template/en/default/email/request_nagging-watching-header.txt.tmpl b/extensions/RequestNagger/template/en/default/email/request_nagging-watching-header.txt.tmpl
new file mode 100644
index 000000000..5693f2be0
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/email/request_nagging-watching-header.txt.tmpl
@@ -0,0 +1,15 @@
+[%# 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/field-descs.none.tmpl" %]
+[% PROCESS "global/reason-descs.none.tmpl" %]
+From: [% Param('mailfrom') %]
+To: [% recipient.email %]
+Subject: [[% terms.Bugzilla %]] Outstanding Requests Report
+Date: [% date %]
+X-Bugzilla-Type: nag-watch
diff --git a/extensions/RequestNagger/template/en/default/email/request_nagging-watching.html.tmpl b/extensions/RequestNagger/template/en/default/email/request_nagging-watching.html.tmpl
new file mode 100644
index 000000000..e01167c5f
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/email/request_nagging-watching.html.tmpl
@@ -0,0 +1,105 @@
+[%# 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/field-descs.none.tmpl" %]
+
+<!doctype html>
+<html>
+
+<head>
+ <title>[[% terms.Bugzilla %]] Outstanding Requests Report</title>
+</head>
+
+<body bgcolor="#ffffff">
+
+<p>
+ The following is a list of people who you are watching that have outstanding
+ requests.
+</p>
+
+<hr>
+
+[% FOREACH login = requests.keys.sort %]
+ [% requestee = requests.$login.requestee %]
+ [% requestee.identity FILTER html %]
+ <ul>
+ <li>
+ [%+ FOREACH type = requests.$login.typelist %]
+ [% requests.$login.types.item(type).size %] [%+ type FILTER html %]
+ [% ", " UNLESS loop.last %]
+ [% END %]
+ </li>
+ </ul>
+[% END %]
+
+[% FOREACH login = requests.keys.sort %]
+ [% requestee = requests.$login.requestee %]
+
+ [% bug_ids = [] %]
+ [% FOREACH type = requests.$login.typelist %]
+ [% FOREACH request = requests.$login.types.$type %]
+ [% bug_ids.push(request.bug.id) %]
+ [% END %]
+ [% END %]
+
+ <hr>
+ <h3>
+ [% requestee.identity FILTER html %]
+ <span style="font-size: x-small; font-weight: normal">
+ (<a href="[% urlbase FILTER none %]buglist.cgi?bug_id=[% bug_ids.join(",") FILTER uri %]">buglist</a>)
+ </span><br>
+ <span style="font-size: x-small; font-weight: normal">
+ [% FOREACH type = requests.$login.typelist %]
+ [% requests.$login.types.item(type).size %] [%+ type FILTER html %]
+ [% ", " UNLESS loop.last %]
+ [% END %]
+ </span>
+ </h3>
+
+ [% FOREACH type = requests.$login.typelist %]
+
+ <h3>[% type FILTER upper FILTER html %] requests</h3>
+
+ <ul>
+ [% FOREACH request = requests.$login.types.$type %]
+ <li>
+ <a href="[% urlbase FILTER none %]show_bug.cgi?id=[% request.bug.id FILTER none %]"
+ title="[% request.bug.bug_status FILTER html %]
+ [% request.bug.product FILTER html %] :: [% request.bug.component FILTER html %]">
+ [% request.bug.id FILTER none %] - [% request.bug.short_desc FILTER html %]
+ </a><br>
+ <b>[%+ request.flag.age FILTER html %]</b> from [% request.requester.identity FILTER html %]<br>
+ [% IF request.flag.deferred %]
+ Deferred until [%+ request.flag.deferred.ymd FILTER html %]<br>
+ [% END %]
+ <br>
+ </li>
+ [% END %]
+ </ul>
+
+ [% END %]
+
+[% END %]
+
+<div>
+ <hr style="border: 1px dashed #969696">
+ <a href="[% urlbase FILTER none %]userprefs.cgi?tab=request_nagging">
+ Change who you are watching
+ </a>
+</div>
+
+<div style="font-size: 90%; color: #666666">
+ <hr style="border: 1px dashed #969696">
+ <b>You are receiving this mail because:</b>
+ <ul>
+ <li>you are watching someone with outstanding requests.</li>
+ </ul>
+</div>
+
+</body>
+</html>
diff --git a/extensions/RequestNagger/template/en/default/email/request_nagging-watching.txt.tmpl b/extensions/RequestNagger/template/en/default/email/request_nagging-watching.txt.tmpl
new file mode 100644
index 000000000..39ca8d004
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/email/request_nagging-watching.txt.tmpl
@@ -0,0 +1,47 @@
+[%# 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/field-descs.none.tmpl" %]
+
+The following is a list of people who you are watching that have outstanding
+requests.
+
+[% FOREACH login = requests.keys.sort %]
+[% requestee = requests.$login.requestee %]
+::
+:: [% requestee.identity %]
+:: [% FOREACH type = requests.$login.typelist %]
+ [%- requests.$login.types.item(type).size %] [%+ type %]
+ [% ", " UNLESS loop.last %]
+ [% END %]
+::
+
+[% FOREACH type = requests.$login.typelist %]
+:: [% type FILTER upper FILTER html %] requests
+
+[% FOREACH request = requests.$login.types.$type %]
+[[% terms.Bug %] [%+ request.bug.id %]] [% request.bug.short_desc %]
+ [%+ request.flag.age %] from [% request.requester.identity %]
+ [%+ urlbase %]show_bug.cgi?id=[% request.bug.id +%]
+ [% IF request.flag.deferred %]
+ Deferred until [%+ request.flag.deferred.ymd %]
+ [% END %]
+
+[% END %]
+[% END %]
+
+[% END %]
+
+::
+
+Change who you are watching
+ [%+ urlbase %]userprefs.cgi?tab=request_nagging
+
+--
+You are receiving this mail because: you are watching someone with outstanding
+requests.
diff --git a/extensions/RequestNagger/template/en/default/hook/account/prefs/prefs-tabs.html.tmpl b/extensions/RequestNagger/template/en/default/hook/account/prefs/prefs-tabs.html.tmpl
new file mode 100644
index 000000000..ed3e29c64
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/hook/account/prefs/prefs-tabs.html.tmpl
@@ -0,0 +1,14 @@
+[%# 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.
+ #%]
+
+[% tabs = tabs.import([{
+ name => "request_nagging",
+ label => "Request Reminders",
+ link => "userprefs.cgi?tab=request_nagging",
+ saveable => 1
+ }]) %]
diff --git a/extensions/RequestNagger/template/en/default/hook/admin/products/edit-common-rows.html.tmpl b/extensions/RequestNagger/template/en/default/hook/admin/products/edit-common-rows.html.tmpl
new file mode 100644
index 000000000..795ca2ec0
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/hook/admin/products/edit-common-rows.html.tmpl
@@ -0,0 +1,16 @@
+[%# 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.
+ #%]
+
+<tr>
+ <th align="right">Remind for outstanding requests after:</th>
+ <td>
+ <input name="nag_interval" size="5"
+ value="[% product.id ? product.nag_interval / 24 : 7 %]">
+ days (Setting this to 0 disables request reminding).
+ </td>
+</tr>
diff --git a/extensions/RequestNagger/template/en/default/hook/admin/products/updated-changes.html.tmpl b/extensions/RequestNagger/template/en/default/hook/admin/products/updated-changes.html.tmpl
new file mode 100644
index 000000000..9baccce86
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/hook/admin/products/updated-changes.html.tmpl
@@ -0,0 +1,14 @@
+[%# 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.
+ #%]
+
+[% IF changes.nag_interval.defined %]
+ <p>
+ Changed request reminder interval from '[% changes.nag_interval.0 / 24 FILTER html %]' to
+ '[% product.nag_interval / 24 FILTER html %]'.
+ </p>
+[% END %]
diff --git a/extensions/RequestNagger/template/en/default/hook/bug/show-header-end.html.tmpl b/extensions/RequestNagger/template/en/default/hook/bug/show-header-end.html.tmpl
new file mode 100644
index 000000000..d91877dba
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/hook/bug/show-header-end.html.tmpl
@@ -0,0 +1,9 @@
+[%# 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.
+ #%]
+
+[% style_urls.push("extensions/RequestNagger/web/requestnagger.css") %]
diff --git a/extensions/RequestNagger/template/en/default/hook/global/setting-descs-settings.none.tmpl b/extensions/RequestNagger/template/en/default/hook/global/setting-descs-settings.none.tmpl
new file mode 100644
index 000000000..aaec920a9
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/hook/global/setting-descs-settings.none.tmpl
@@ -0,0 +1,11 @@
+[%# 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.
+ #%]
+
+[%
+ setting_descs.request_nagging = "Send me reminders for outstanding requests"
+%]
diff --git a/extensions/RequestNagger/template/en/default/hook/global/user-error-errors.html.tmpl b/extensions/RequestNagger/template/en/default/hook/global/user-error-errors.html.tmpl
new file mode 100644
index 000000000..12ef38370
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/hook/global/user-error-errors.html.tmpl
@@ -0,0 +1,25 @@
+[%# 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.
+ #%]
+
+[% IF error == "request_nagging_flag_invalid" %]
+ [% title = "Invalid Flag" %]
+ Invalid or missing Flag ID
+
+[% ELSIF error == "request_nagging_flag_set" %]
+ [% title = "Flag Already Set" %]
+ The requested Flag has been set, and is no longer pending.
+
+[% ELSIF error == "request_nagging_flag_wind" %]
+ [% title = "No Requestee" %]
+ The requested Flag does not have a requestee, and cannot be deferred.
+
+[% ELSIF error == "request_nagging_flag_not_owned" %]
+ [% title = "Not The Requestee" %]
+ You cannot defer Flags unless you are the requestee.
+
+[% END %]
diff --git a/extensions/RequestNagger/template/en/default/pages/request_defer.html.tmpl b/extensions/RequestNagger/template/en/default/pages/request_defer.html.tmpl
new file mode 100644
index 000000000..e89409ce1
--- /dev/null
+++ b/extensions/RequestNagger/template/en/default/pages/request_defer.html.tmpl
@@ -0,0 +1,101 @@
+[%# 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 = "Defer Request Reminder"
+ style_urls = [ "extensions/RequestNagger/web/style/requestnagger.css" ]
+ javascript_urls = [ "js/util.js" , "extensions/RequestNagger/web/js/requestnagger.js" ]
+%]
+
+<h2>Defer Request Reminder</h2>
+
+[% IF saved %]
+ <div id="message">
+ Request reminder deferral has been saved.
+ </div>
+[% END %]
+
+<form method="post" action="page.cgi">
+<input type="hidden" name="id" value="request_defer.html">
+<input type="hidden" name="flag" value="[% flag.id FILTER none %]">
+<input type="hidden" name="save" value="1">
+
+<table class="edit_form">
+<tr><td>
+
+ <div class="flag-bug">
+ <a href="show_bug.cgi?id=[% flag.bug.id FILTER none %]">
+ [% terms.Bug %] [%+ flag.bug.id FILTER none %]
+ </a>
+ -
+ <a href="show_bug.cgi?id=[% flag.bug.id FILTER none %]">
+ [% flag.bug.short_desc FILTER html %]
+ </a>
+ </div>
+
+ [% IF flag.attachment %]
+ <div class="flag-attach">
+ <div class="flag-attach-desc">
+ <a href="attachment.cgi?id=[% flag.attachment.id FILTER none %]&amp;action=edit">
+ [% flag.attachment.description FILTER html %]
+ </a>
+ </div>
+ <div class="flag-attach-details">
+ [% flag.attachment.filename FILTER html %] ([% flag.attachment.contenttype FILTER html %]),
+ [% IF flag.attachment.datasize %]
+ [%+ flag.attachment.datasize FILTER unitconvert %]
+ [% ELSE %]
+ <em>deleted</em>
+ [% END %],
+ created by [%+ INCLUDE global/user.html.tmpl who = flag.attachment.attacher %]
+ </div>
+ [% IF flag.attachment.ispatch %]
+ <div class="flag-attach-actions">
+ <a href="attachment.cgi?id=[% flag.attachment.id FILTER none ~%]
+ &amp;action=diff">Diff</a> |
+ <a href="review?bug=[% flag.bug.id FILTER none ~%]
+ &amp;attachment=[% flag.attachment.id FILTER none %]">Review</a>
+ </div>
+ [% END %]
+ </div>
+ [% END %]
+
+ <div class="flag-details">
+ <span class="flag-type">
+ [% flag.type.name FILTER html %]
+ </span>
+ requested by [%+ INCLUDE global/user.html.tmpl who = flag.setter %]
+ [% flag.age FILTER html %]
+ </div>
+
+ [% IF saved %]
+ <div class="deferred">
+ Deferred until [% defer_until.ymd FILTER html %].
+ </div>
+ [% ELSE %]
+ <div class="defer">
+ Defer[% "ed" IF flag.deferred %] for
+ <select name="defer-until" id="defer-until">
+ [% FOREACH defer = defer_until %]
+ <option value="[% defer.date.ymd FILTER html %]"
+ [%+ "selected" IF flag.deferred.ymd == defer.date.ymd %]
+ >
+ [% defer.days FILTER html %] Day[% "s" UNLESS defer.days == 1 %]
+ </option>
+ [% END %]
+ </select>
+ <span id="defer-date"></span>
+ </div>
+ <input type="submit" value="Submit">
+ [% END %]
+</td></tr>
+</table>
+
+</form>
+
+[% PROCESS global/footer.html.tmpl %]