From 4d17d8c23a258aa43218a000bba9c917b9472232 Mon Sep 17 00:00:00 2001 From: Byron Jones Date: Thu, 12 Jan 2012 13:54:26 +0800 Subject: Bug 715424: add report showing emails in TheSchwartz's queue --- extensions/BMO/Extension.pm | 6 ++- extensions/BMO/lib/Reports.pm | 27 ++++++++++- .../user-error-auth_failure_object.html.tmpl | 2 + .../en/default/hook/reports/menu-end.html.tmpl | 4 ++ .../en/default/pages/email_queue.html.tmpl | 53 ++++++++++++++++++++++ extensions/BMO/web/styles/reports.css | 14 +++--- 6 files changed, 97 insertions(+), 9 deletions(-) create mode 100644 extensions/BMO/template/en/default/pages/email_queue.html.tmpl diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm index 44a1a3e69..3cf0e8317 100644 --- a/extensions/BMO/Extension.pm +++ b/extensions/BMO/Extension.pm @@ -56,7 +56,8 @@ use Bugzilla::Extension::BMO::Data qw($cf_visible_in_products %product_sec_groups); use Bugzilla::Extension::BMO::Reports qw(user_activity_report triage_reports - group_admins); + group_admins + email_queue_report); our $VERSION = '0.1'; @@ -169,6 +170,9 @@ sub page_before_template { elsif ($page eq 'group_admins.html') { group_admins($vars); } + elsif ($page eq 'email_queue.html') { + email_queue_report($vars); + } } sub _get_field_values_sort_key { diff --git a/extensions/BMO/lib/Reports.pm b/extensions/BMO/lib/Reports.pm index 7dcbc0ae6..aa7ca5690 100644 --- a/extensions/BMO/lib/Reports.pm +++ b/extensions/BMO/lib/Reports.pm @@ -32,7 +32,8 @@ use base qw(Exporter); our @EXPORT_OK = qw(user_activity_report triage_reports - group_admins); + group_admins + email_queue_report); sub user_activity_report { my ($vars) = @_; @@ -560,4 +561,28 @@ sub group_admins { $vars->{'groups'} = \@groups; } +sub email_queue_report { + my ($vars, $filter) = @_; + my $dbh = Bugzilla->dbh; + my $user = Bugzilla->user; + + $user->in_group('admin') + || ThrowUserError('auth_failure', { group => 'admin', + action => 'run', + object => 'email_queue' }); + + my $query = " + SELECT j.jobid, + j.run_after AS timestamp, + COUNT(e.jobid) AS error_count, + MAX(e.error_time) AS error_time, + e.message AS error_message + FROM ts_job j + LEFT JOIN ts_error e ON e.jobid = j.jobid + GROUP BY j.jobid + ORDER BY j.run_after"; + + $vars->{'jobs'} = $dbh->selectall_arrayref($query, { Slice => {} }); +} + 1; diff --git a/extensions/BMO/template/en/default/hook/global/user-error-auth_failure_object.html.tmpl b/extensions/BMO/template/en/default/hook/global/user-error-auth_failure_object.html.tmpl index 067347f3b..0a674aa30 100644 --- a/extensions/BMO/template/en/default/hook/global/user-error-auth_failure_object.html.tmpl +++ b/extensions/BMO/template/en/default/hook/global/user-error-auth_failure_object.html.tmpl @@ -1,3 +1,5 @@ [% IF object == 'group_admins' %] the group administrators report +[% ELSIF object == 'email_queue' %] + the email queue status report [% END %] diff --git a/extensions/BMO/template/en/default/hook/reports/menu-end.html.tmpl b/extensions/BMO/template/en/default/hook/reports/menu-end.html.tmpl index 6e8463020..846f12767 100644 --- a/extensions/BMO/template/en/default/hook/reports/menu-end.html.tmpl +++ b/extensions/BMO/template/en/default/hook/reports/menu-end.html.tmpl @@ -36,6 +36,10 @@ Group Admins - Group Admins Report +
  • + Email Queue - TheSchwartz queue +
  • [% END %] diff --git a/extensions/BMO/template/en/default/pages/email_queue.html.tmpl b/extensions/BMO/template/en/default/pages/email_queue.html.tmpl new file mode 100644 index 000000000..7afd083ac --- /dev/null +++ b/extensions/BMO/template/en/default/pages/email_queue.html.tmpl @@ -0,0 +1,53 @@ +[%# 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. + #%] + +[% INCLUDE global/header.html.tmpl + title = "Job Queue Status" + style_urls = [ "extensions/BMO/web/styles/reports.css" ] +%] + +[% IF jobs.size %] + +

    [% jobs.size FILTER none %] email(s) in the queue.

    + + + + + + + + + [% FOREACH job IN jobs %] + + + + + + + [% END %] +
    TimeError CountLast ErrorError Message
    [% time2str("%Y-%m-%d %H:%M:%S %Z", job.timestamp) FILTER html %][% job.error_count FILTER html %] + [% IF job.error_count %] + [% time2str("%Y-%m-%d %H:%M:%S %Z", job.error_time) FILTER html %] + [% ELSE %] + - + [% END %] + + [% IF job.error_count %] + [% job.error_message FILTER html %] + [% ELSE %] + - + [% END %] +
    + +[% ELSE %] + +

    The email queue is empty.

    + +[% END %] + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/web/styles/reports.css b/extensions/BMO/web/styles/reports.css index 3106a6295..260a95471 100644 --- a/extensions/BMO/web/styles/reports.css +++ b/extensions/BMO/web/styles/reports.css @@ -2,10 +2,6 @@ display: none; } -#triage_form th { - text-align: left; -} - #product, #component { width: 20em; } @@ -14,8 +10,12 @@ background: #ccccff; } -#report td { - padding: 1px 10px 1px 10px; +#report td, #report th { + padding: 3px 10px 3px 3px; +} + +#report th { + text-align: left; } #report-header { @@ -32,6 +32,6 @@ color: #000000; } -tr.report_item:hover { +#report tr:hover { background-color: #ccccff; } -- cgit v1.2.3-24-g4f1b