diff options
| -rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin.pm | 26 | ||||
| -rw-r--r-- | templates/web/base/admin/user-alerts.html | 49 | ||||
| -rw-r--r-- | templates/web/base/admin/user_edit.html | 2 | 
3 files changed, 77 insertions, 0 deletions
| diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 8ccc5b8d3..e13a4b7ca 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -1512,6 +1512,10 @@ sub user_edit : Path('user_edit') : Args(1) {      $c->forward('fetch_all_bodies');      $c->forward('fetch_body_areas', [ $user->from_body ]) if $user->from_body; +    unless ( $c->cobrand->moniker eq 'zurich' ) { +        $c->forward('user_alert_details'); +    } +      if ( defined $c->flash->{status_message} ) {          $c->stash->{status_message} =              '<p><em>' . $c->flash->{status_message} . '</em></p>'; @@ -1847,6 +1851,28 @@ sub get_user : Private {      return $user;  } +sub user_alert_details : Private { +    my ( $self, $c ) = @_; + +    my @alerts = $c->stash->{user}->alerts({}, { prefetch => 'alert_type' })->all; +    $c->stash->{alerts} = \@alerts; + +    my @wards; + +    for my $alert (@alerts) { +        if ($alert->alert_type->ref eq 'ward_problems') { +            push @wards, $alert->parameter2; +        } +    } + +    if (@wards) { +        $c->stash->{alert_areas} = mySociety::MaPit::call('areas', join(',', @wards) ); +    } + +    my %body_names = map { $_->{id} => $_->{name} } @{ $c->stash->{bodies} }; +    $c->stash->{body_names} = \%body_names; +} +  =item log_edit      $c->forward( 'log_edit', [ $object_id, $object_type, $action_performed ] ); diff --git a/templates/web/base/admin/user-alerts.html b/templates/web/base/admin/user-alerts.html new file mode 100644 index 000000000..1da9729d7 --- /dev/null +++ b/templates/web/base/admin/user-alerts.html @@ -0,0 +1,49 @@ +[% IF alerts.size %] +<h3>[% loc("User's alerts") %]</h3> +<table> +<tr> +    <th>[% loc('ID') %]</th> +    <th>[% loc('Type') %]</th> +    <th>[% loc('Confirmed') %]</th> +    <th>[% loc('State') %]</th> +    <th>[% loc('Details') %]</th> +</tr> +[% FOREACH alert IN alerts %] +<tr> +    <td>[% alert.id %]</td> +    <td>[% alert.alert_type.ref %]</td> +    <td>[% IF alert.confirmed %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td> +    <td>[% loc('Subscribed:') %] [% alert.whensubscribed %] +        <br>[% loc('Disabled:') %] [% alert.whendisabled %] +    </td> +    <td> +    [% SWITCH alert.alert_type.ref %] +        [% CASE 'new_updates' %] +            [% tprintf( loc('New updates on report <a href="%s">%s</a>'), c.uri_for( '/report', alert.parameter ), alert.parameter ) %] +        [% CASE 'local_problems' %] +            [% tprintf( loc('New problems near <a href="%s">%s,%s</a>'), c.uri_for( '/around', { lon => alert.parameter, lat => alert.parameter2 } ), alert.parameter, alert.parameter2 ) %] +        [% CASE 'ward_problems' %] +            [% body = alert.parameter %] +            [% ward = alert.parameter2 %] +            [% IF alert_areas.$ward AND body_names.$body %] +                [% tprintf( loc('New problems for <a href="%s">%s</a> ward in <a href="%s">%s</a>'), c.uri_for('/reports', body_names.$body, alert_areas.$ward.name), alert_areas.$ward.name, c.uri_for('/reports', body_names.$body), body_names.$body ) %] +            [% ELSE %] +                [% tprintf( loc('New problems for ward id %s in body id %s'), alert.parameter2, body ) %] +            [% END %] +        [% CASE 'council_problems' %] +            [% body = alert.parameter %] +            [% IF body_names.$body %] +                [% tprintf( loc('New problems for <a href="%s">%s</a>'), c.uri_for('/reports', body_names.$body) body_names.$body ) %] +            [% ELSE %] +                [% tprintf( loc('New problems for %s'), body ) %] +            [% END %] +        [% CASE 'area_problems' %] +            [% tprintf( loc('New problems for area id <a href="%s">%s</a>'), c.config.MAPIT_URL _ 'area/' _ alert.parameter _ '.html', alert.parameter ) %] +        [% CASE %] +            [% alert.parameter %] [% alert.parameter2 %] +    [% END %] +    </td> +</tr> +[% END %] +</table> +[% END %] diff --git a/templates/web/base/admin/user_edit.html b/templates/web/base/admin/user_edit.html index 5bfdf341f..cc456914d 100644 --- a/templates/web/base/admin/user_edit.html +++ b/templates/web/base/admin/user_edit.html @@ -10,4 +10,6 @@  [% INCLUDE 'admin/user-form.html' %] +[% INCLUDE 'admin/user-alerts.html' %] +  [% INCLUDE 'admin/footer.html' %] | 
