diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-10-26 16:36:04 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-10-26 16:49:55 +0100 |
commit | b42f354d5c4ad7f237a826033c3c176821e4a085 (patch) | |
tree | ce15578e612eaee3cd0a55e9f019563be4bb4627 | |
parent | 0d3c0ee6390aed6bec647b04ee35d575fcb26543 (diff) |
Show admin user edit errors.
Fix title if error in adding user. Fixes #1510.
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin.pm | 8 | ||||
-rw-r--r-- | templates/web/base/admin/user-form.html | 4 | ||||
-rw-r--r-- | templates/web/base/admin/user_edit.html | 7 |
4 files changed, 12 insertions, 8 deletions
@@ -101,6 +101,7 @@ web-based cross-browser testing tools for this project. - Show 'Remove from site' button based on report. #1508 - Improve moderation display and email. #855 - Fix invalid SQL being generated by moderation lookup. #1489 + - Show user edit errors (e.g. blank name/email). #1510 - Disallow empty name when creating/editing bodies. - Fix a crash on /admin/timeline. - Development improvements: diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index f0a1fa95b..d5a6486fd 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -1182,14 +1182,14 @@ sub user_add : Path('user_edit') : Args(0) { $c->forward('/auth/check_csrf_token'); + $c->stash->{field_errors} = {}; unless ($c->get_param('email')) { $c->stash->{field_errors}->{email} = _('Please enter a valid email'); - return; } unless ($c->get_param('name')) { $c->stash->{field_errors}->{name} = _('Please enter a name'); - return; } + return if %{$c->stash->{field_errors}}; my $user = $c->model('DB::User')->find_or_create( { name => $c->get_param('name'), @@ -1326,14 +1326,14 @@ sub user_edit : Path('user_edit') : Args(1) { } } + $c->stash->{field_errors} = {}; unless ($user->email) { $c->stash->{field_errors}->{email} = _('Please enter a valid email'); - return; } unless ($user->name) { $c->stash->{field_errors}->{name} = _('Please enter a name'); - return; } + return if %{$c->stash->{field_errors}}; my $existing_user = $c->model('DB::User')->search({ email => $user->email, id => { '!=', $user->id } })->first; if ($existing_user) { diff --git a/templates/web/base/admin/user-form.html b/templates/web/base/admin/user-form.html index 5adc200a1..388434e80 100644 --- a/templates/web/base/admin/user-form.html +++ b/templates/web/base/admin/user-form.html @@ -2,9 +2,7 @@ <input type="hidden" name="token" value="[% csrf_token %]" > <input type="hidden" name="submit" value="1" > - [% IF c.cobrand.moniker == 'zurich' AND field_errors.email %] - <p class='error'>[% field_errors.email %]</p> - [% END %] + [% INCLUDE 'errors.html' errors = field_errors.values %] <ul class="no-bullets"> <li> <div class="admin-hint"> diff --git a/templates/web/base/admin/user_edit.html b/templates/web/base/admin/user_edit.html index d69c873a3..5bfdf341f 100644 --- a/templates/web/base/admin/user_edit.html +++ b/templates/web/base/admin/user_edit.html @@ -1,4 +1,9 @@ -[% INCLUDE 'admin/header.html' title=tprintf(loc('Editing user %d'), user.id ) -%] +[% IF user.id ~%] + [% title = tprintf(loc('Editing user %d'), user.id ) ~%] +[% ELSE ~%] + [% title = loc('Add user') ~%] +[% END ~%] +[% INCLUDE 'admin/header.html' title=title -%] [% PROCESS 'admin/report_blocks.html' %] [% status_message %] |