summaryrefslogtreecommitdiffstats
path: root/extensions/Review/Extension.pm
diff options
context:
space:
mode:
authorByron Jones <bjones@mozilla.com>2013-08-02 08:14:46 +0200
committerByron Jones <bjones@mozilla.com>2013-08-02 08:14:46 +0200
commitbb2b65b5d51cdbb022543d4e16a57005dff33eb2 (patch)
treeff02d60c581bcef7d1a50e3474ea414dbad76060 /extensions/Review/Extension.pm
parent57c28359e43b7ac6620bcdb06cb5854b371aaedc (diff)
downloadbugzilla-bb2b65b5d51cdbb022543d4e16a57005dff33eb2.tar.gz
bugzilla-bb2b65b5d51cdbb022543d4e16a57005dff33eb2.tar.xz
Bug 896320: increase the visibility of review suggestions (report, webservice)
Diffstat (limited to 'extensions/Review/Extension.pm')
-rw-r--r--extensions/Review/Extension.pm46
1 files changed, 45 insertions, 1 deletions
diff --git a/extensions/Review/Extension.pm b/extensions/Review/Extension.pm
index 51755ca2c..9a19f528c 100644
--- a/extensions/Review/Extension.pm
+++ b/extensions/Review/Extension.pm
@@ -159,7 +159,7 @@ sub object_end_of_update {
sub _new_reviewers_from_input {
if (!Bugzilla->input_params->{reviewers}) {
- return (undef, []);
+ return ('', []);
}
Bugzilla::User::match_field({ 'reviewers' => {'type' => 'multi'} });
my $new = Bugzilla->input_params->{reviewers};
@@ -266,6 +266,50 @@ sub flag_end_of_update {
}
#
+# web service / reports
+#
+
+sub webservice {
+ my ($self, $args) = @_;
+ my $dispatch = $args->{dispatch};
+ $dispatch->{Review} = "Bugzilla::Extension::Review::WebService";
+}
+
+sub page_before_template {
+ my ($self, $args) = @_;
+ return unless $args->{page_id} eq 'review_suggestions.html';
+ my $user = Bugzilla->login(LOGIN_REQUIRED);
+ my $products = [];
+ my @products = sort { lc($a->name) cmp lc($b->name) }
+ @{ Bugzilla->user->get_accessible_products };
+ foreach my $product_obj (@products) {
+ my $has_reviewers = 0;
+ my $product = {
+ name => $product_obj->name,
+ components => [],
+ reviewers => $product_obj->reviewers_objs,
+ };
+ $has_reviewers = scalar @{ $product->{reviewers} };
+
+ foreach my $component_obj (@{ $product_obj->components }) {
+ my $component = {
+ name => $component_obj->name,
+ reviewers => $component_obj->reviewers_objs,
+ };
+ if (@{ $component->{reviewers} }) {
+ push @{ $product->{components} }, $component;
+ $has_reviewers = 1;
+ }
+ }
+
+ if ($has_reviewers) {
+ push @$products, $product;
+ }
+ }
+ $args->{vars}->{products} = $products;
+}
+
+#
# installation
#