summaryrefslogtreecommitdiffstats
path: root/extensions/BMO
diff options
context:
space:
mode:
authorByron Jones <glob@mozilla.com>2015-04-28 06:41:44 +0200
committerByron Jones <glob@mozilla.com>2015-04-28 06:41:44 +0200
commit29e3eb8b03ba072fa4ce092b45fb98c2e2352744 (patch)
tree38c4ab19d0e5bf1a81c927fd713c417f0d31e908 /extensions/BMO
parent283be21f66e638667bc2ec7720cab459ecf1f698 (diff)
downloadbugzilla-29e3eb8b03ba072fa4ce092b45fb98c2e2352744.tar.gz
bugzilla-29e3eb8b03ba072fa4ce092b45fb98c2e2352744.tar.xz
Bug 1153102: add hooks for bug bounty display and form
Diffstat (limited to 'extensions/BMO')
-rw-r--r--extensions/BMO/Extension.pm23
-rw-r--r--extensions/BMO/template/en/default/hook/bug_modal/attachments-actions.html.tmpl13
-rw-r--r--extensions/BMO/template/en/default/hook/bug_modal/attachments-row.html.tmpl32
3 files changed, 63 insertions, 5 deletions
diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm
index 717f347de..40a00a625 100644
--- a/extensions/BMO/Extension.pm
+++ b/extensions/BMO/Extension.pm
@@ -73,7 +73,8 @@ BEGIN {
*Bugzilla::Product::default_platform = \&_product_default_platform;
*Bugzilla::Product::default_op_sys = \&_product_default_op_sys;
*Bugzilla::check_default_product_security_group = \&_check_default_product_security_group;
- *Bugzilla::Attachment::is_bounty_attachment = \&_is_bounty_attachment;
+ *Bugzilla::Attachment::is_bounty_attachment = \&_attachment_is_bounty_attachment;
+ *Bugzilla::Attachment::bounty_details = \&_attachment_bounty_details;
}
sub template_before_process {
@@ -224,7 +225,7 @@ sub bounty_attachment {
my $input = Bugzilla->input_params;
my $dbh = Bugzilla->dbh;
my $bug = Bugzilla::Bug->check({ id => $input->{bug_id}, cache => 1 });
- my $attachment = first { $_ && _is_bounty_attachment($_) } @{$bug->attachments};
+ my $attachment = first { $_ && _attachment_is_bounty_attachment($_) } @{$bug->attachments};
$vars->{bug} = $bug;
if ($input->{submit}) {
@@ -261,12 +262,11 @@ sub bounty_attachment {
}
if ($attachment) {
- my $form = parse_bounty_attachment_description($attachment->description);
- $vars->{form} = $form;
+ $vars->{form} = $attachment->bounty_details;
}
}
-sub _is_bounty_attachment {
+sub _attachment_is_bounty_attachment {
my ($attachment) = @_;
return 0 unless $attachment->filename eq 'bugbounty.data';
@@ -275,6 +275,19 @@ sub _is_bounty_attachment {
return $attachment->description =~ /^(?:[^,]*,)+[^,]*$/;
}
+sub _attachment_bounty_details {
+ my ($attachment) = @_;
+ if (!exists $attachment->{bounty_details}) {
+ if ($attachment->is_bounty_attachment) {
+ $attachment->{bounty_details} = parse_bounty_attachment_description($attachment->description);
+ }
+ else {
+ $attachment->{bounty_details} = undef;
+ }
+ }
+ return $attachment->{bounty_details};
+}
+
sub format_bounty_attachment_description {
my ($form) = @_;
my @fields = (
diff --git a/extensions/BMO/template/en/default/hook/bug_modal/attachments-actions.html.tmpl b/extensions/BMO/template/en/default/hook/bug_modal/attachments-actions.html.tmpl
new file mode 100644
index 000000000..97d0ed739
--- /dev/null
+++ b/extensions/BMO/template/en/default/hook/bug_modal/attachments-actions.html.tmpl
@@ -0,0 +1,13 @@
+[%# 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.
+ #%]
+
+[% RETURN IF !user.in_group("bounty-team") || has_bounty_attachment %]
+<button type="button" class="minor"
+ onclick="document.location='page.cgi?id=attachment_bounty_form.html&bug_id=[% bug.id FILTER none %]'">
+ Add Bounty Tracking Attachment
+</button>
diff --git a/extensions/BMO/template/en/default/hook/bug_modal/attachments-row.html.tmpl b/extensions/BMO/template/en/default/hook/bug_modal/attachments-row.html.tmpl
new file mode 100644
index 000000000..67ab62f5a
--- /dev/null
+++ b/extensions/BMO/template/en/default/hook/bug_modal/attachments-row.html.tmpl
@@ -0,0 +1,32 @@
+[%# 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.
+ #%]
+
+[%
+ RETURN UNLESS attachment.is_bounty_attachment;
+ has_bounty_attachment = 1;
+ attachment_rendered = 1;
+ bounty = attachment.bounty_details;
+%]
+<tr class="bz_private">
+ <td colspan="2">
+ Bounty: [% bounty.reporter_email FILTER html %]
+ $[% bounty.amount_paid || '-' FILTER html %]<br>
+ Reported: [% bounty.reported_date || '-' FILTER html %]
+ Fixed: [% bounty.fixed_date || '-' FILTER html %]
+ Awarded: [% bounty.awarded_date || '-' FILTER html %]
+ Publish: [% bounty.publish ? "Yes" : "No" FILTER none %]<br>
+ [% IF bounty.credit.size %]
+ Credit: [% bounty.credit.join(", ") FILTER html %]
+ [% END %]
+ </td>
+ <td class="attach-actions">
+ <a href="page.cgi?id=attachment_bounty_form.html&bug_id=[% bug.id FILTER none %]">
+ Edit Bounty
+ </a>
+ </td>
+</tr>