aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm8
-rw-r--r--templates/web/base/admin/user-form.html4
-rw-r--r--templates/web/base/admin/user_edit.html7
4 files changed, 12 insertions, 8 deletions
diff --git a/README.md b/README.md
index a6ea03163..e888c8121 100644
--- a/README.md
+++ b/README.md
@@ -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 %]