aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.cypress/cypress/integration/simple_spec.js2
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm6
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/Update.pm6
-rw-r--r--templates/web/base/report/form/user_loggedout.html7
-rw-r--r--templates/web/base/report/form/user_loggedout_by_email.html27
-rw-r--r--templates/web/base/report/form/user_loggedout_email.html4
-rw-r--r--templates/web/base/report/form/user_loggedout_password.html6
-rw-r--r--templates/web/base/report/new/oauth_email_form.html4
-rw-r--r--templates/web/base/report/update/form_user.html3
-rw-r--r--templates/web/bromley/report/form/user_loggedout_email.html4
-rw-r--r--templates/web/zurich/report/new/fill_in_details_form.html4
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js5
12 files changed, 47 insertions, 31 deletions
diff --git a/.cypress/cypress/integration/simple_spec.js b/.cypress/cypress/integration/simple_spec.js
index 01fb77f49..7040681a3 100644
--- a/.cypress/cypress/integration/simple_spec.js
+++ b/.cypress/cypress/integration/simple_spec.js
@@ -12,8 +12,8 @@ describe('Clicking the map', function() {
cy.get('[name=title]').type('Title');
cy.get('[name=detail]').type('Detail');
cy.get('#js-new-report-user-show').click();
- cy.get('[name=username]').type('user@example.org');
cy.get('#js-new-report-show-sign-in').click();
+ cy.get('#form_username_sign_in').type('user@example.org');
cy.get('[name=password_sign_in]').type('password');
cy.get('[name=password_sign_in]').parents('form').submit();
cy.get('#map_sidebar').should('contain', 'check and confirm your details');
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm
index 1a1a657a9..ce2fe19f6 100644
--- a/perllib/FixMyStreet/App/Controller/Report/New.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/New.pm
@@ -6,6 +6,7 @@ BEGIN { extends 'Catalyst::Controller'; }
use Encode;
use List::MoreUtils qw(uniq);
+use List::Util 'first';
use POSIX 'strcoll';
use HTML::Entities;
use mySociety::MaPit;
@@ -789,7 +790,10 @@ sub process_user : Private {
# Extract all the params to a hash to make them easier to work with
my %params = map { $_ => $c->get_param($_) }
- ( 'username', 'email', 'name', 'phone', 'password_register', 'fms_extra_title' );
+ ( 'email', 'name', 'phone', 'password_register', 'fms_extra_title' );
+
+ # Report form includes two username fields: #form_username_register and #form_username_sign_in
+ $params{username} = (first { $_ } $c->get_param_list('username')) || '';
if ( $c->cobrand->allow_anonymous_reports ) {
my $anon_details = $c->cobrand->anonymous_account;
diff --git a/perllib/FixMyStreet/App/Controller/Report/Update.pm b/perllib/FixMyStreet/App/Controller/Report/Update.pm
index dc46be61f..cbedf7a01 100644
--- a/perllib/FixMyStreet/App/Controller/Report/Update.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/Update.pm
@@ -5,6 +5,7 @@ use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller'; }
use Path::Class;
+use List::Util 'first';
use Utils;
=head1 NAME
@@ -99,7 +100,10 @@ sub process_user : Private {
# Extract all the params to a hash to make them easier to work with
my %params = map { $_ => $c->get_param($_) }
- ( 'username', 'name', 'password_register', 'fms_extra_title' );
+ ( 'name', 'password_register', 'fms_extra_title' );
+
+ # Update form includes two username fields: #form_username_register and #form_username_sign_in
+ $params{username} = (first { $_ } $c->get_param_list('username')) || '';
# Extra block to use 'last'
if ( $c->user_exists ) { {
diff --git a/templates/web/base/report/form/user_loggedout.html b/templates/web/base/report/form/user_loggedout.html
index 8743883ee..c9c3fabad 100644
--- a/templates/web/base/report/form/user_loggedout.html
+++ b/templates/web/base/report/form/user_loggedout.html
@@ -2,13 +2,6 @@
<div id="form_sign_in">
[% PROCESS 'report/form/private_details.html' %]
-
-[% IF c.cobrand.social_auth_enabled %]
- [% PROCESS 'report/form/user_loggedout_email.html' required=0 %]
-[% ELSE %]
- [% PROCESS 'report/form/user_loggedout_email.html' required=1 %]
-[% END %]
-
<h2 class="hidden-js">[% tprintf(loc("Do you have a %s password?", "%s is the site name"), site_name) %]</h2>
[% PROCESS 'report/form/user_loggedout_password.html' %]
[% PROCESS 'report/form/user_loggedout_by_email.html' %]
diff --git a/templates/web/base/report/form/user_loggedout_by_email.html b/templates/web/base/report/form/user_loggedout_by_email.html
index e115f6d20..4ae3db868 100644
--- a/templates/web/base/report/form/user_loggedout_by_email.html
+++ b/templates/web/base/report/form/user_loggedout_by_email.html
@@ -8,7 +8,7 @@
[% INCLUDE 'report/_show_name_label.html' %]
[% IF type != 'update' %]
- [% UNLESS c.cobrand.call_hook('disable_phone_number_entry') %]
+ [% IF NOT c.cobrand.call_hook('disable_phone_number_entry') AND NOT c.config.SMS_AUTHENTICATION %]
<div id="js-hide-if-username-phone">
<label for="form_phone">[% loc('Phone number (optional)') %]</label>
[% IF field_errors.phone %]
@@ -17,12 +17,6 @@
<input class="form-control" type="text" value="[% phone | html %]" name="phone" id="form_phone">
</div>
[% END %]
- [% IF c.config.SMS_AUTHENTICATION %]
- <div id="js-hide-if-username-email">
- <label for="form_email">[% loc('Email address (optional)') %]</label>
- <input class="form-control" type="text" value="[% email | html %]" name="email" id="form_email">
- </div>
- [% END %]
[% END %]
[% IF c.cobrand.moniker == 'fixamingata' %]
@@ -31,6 +25,25 @@
</div>
[% END %]
+ [% IF c.cobrand.social_auth_enabled AND NOT email_required %]
+ [% PROCESS 'report/form/user_loggedout_email.html' name='username_register' required=0 %]
+ [% ELSE %]
+ [% PROCESS 'report/form/user_loggedout_email.html' name='username_register' required=1 %]
+ [% END %]
+
+ [% IF type != 'update' AND c.config.SMS_AUTHENTICATION %]
+ [% UNLESS c.cobrand.call_hook('disable_phone_number_entry') %]
+ <div id="js-hide-if-username-phone" class="hidden-js">
+ <label for="form_phone">[% loc('Phone number (optional)') %]</label>
+ <input class="form-control" type="text" value="[% phone | html %]" name="phone" id="form_phone">
+ </div>
+ [% END %]
+ <div id="js-hide-if-username-email" class="hidden-js">
+ <label for="form_email">[% loc('Email address (optional)') %]</label>
+ <input class="form-control" type="text" value="[% email | html %]" name="email" id="form_email">
+ </div>
+ [% END %]
+
[% IF type == 'update' %]
<div class="checkbox-group">
<input type="checkbox" name="add_alert" id="form_add_alert" value="1"[% ' checked' IF add_alert %]>
diff --git a/templates/web/base/report/form/user_loggedout_email.html b/templates/web/base/report/form/user_loggedout_email.html
index 932bc97a7..c32691eb4 100644
--- a/templates/web/base/report/form/user_loggedout_email.html
+++ b/templates/web/base/report/form/user_loggedout_email.html
@@ -9,11 +9,11 @@
[% SET username_value = object.user.email %]
[% END %]
-<label for="form_username">[% username_label %]</label>
+<label for="form_[% name %]">[% username_label %]</label>
[% IF field_errors.username %]
<p class='form-error'>[% field_errors.username %]</p>
[% END %]
-<input type="[% username_type %]" name="username" id="form_username"
+<input type="[% username_type %]" name="username" id="form_[% name %]"
value="[% username_value | html %]"
[% IF required %]required[% END %]
class="form-control required">
diff --git a/templates/web/base/report/form/user_loggedout_password.html b/templates/web/base/report/form/user_loggedout_password.html
index 016da88ad..dfd7d0d14 100644
--- a/templates/web/base/report/form/user_loggedout_password.html
+++ b/templates/web/base/report/form/user_loggedout_password.html
@@ -8,6 +8,12 @@
<a id="js-new-report-hide-sign-in" href="#">[% loc('Fill in your details manually.') %]</a>
</p>
+ [% IF c.cobrand.social_auth_enabled %]
+ [% PROCESS 'report/form/user_loggedout_email.html' name='username_sign_in' required=0 %]
+ [% ELSE %]
+ [% PROCESS 'report/form/user_loggedout_email.html' name='username_sign_in' required=1 %]
+ [% END %]
+
<label for="password_sign_in">[% loc('Your password') %]</label>
[% IF field_errors.password %]
<p class='form-error'>[% field_errors.password %]</p>
diff --git a/templates/web/base/report/new/oauth_email_form.html b/templates/web/base/report/new/oauth_email_form.html
index 394a4b743..5b4622cda 100644
--- a/templates/web/base/report/new/oauth_email_form.html
+++ b/templates/web/base/report/new/oauth_email_form.html
@@ -11,10 +11,8 @@
<fieldset>
<div id="problem_form">
- [% PROCESS 'report/form/user_loggedout_email.html' type='report' object=report required=1 %]
-
<div id="form_sign_in">
- [% PROCESS 'report/form/user_loggedout_by_email.html' object=report type='report' %]
+ [% PROCESS 'report/form/user_loggedout_by_email.html' object=report type='report' email_required=1 %]
</div>
<input type="hidden" name="oauth_need_email" value="1">
diff --git a/templates/web/base/report/update/form_user.html b/templates/web/base/report/update/form_user.html
index 5d4c67528..47ba18c12 100644
--- a/templates/web/base/report/update/form_user.html
+++ b/templates/web/base/report/update/form_user.html
@@ -10,9 +10,8 @@
[% IF c.user_exists %]
[% PROCESS "report/update/form_user_loggedin.html" %]
[% ELSIF oauth_need_email %]
- [% PROCESS 'report/form/user_loggedout_email.html' type='update' object=update required=1 %]
<div id="form_sign_in">
- [% PROCESS 'report/form/user_loggedout_by_email.html' object=update type='update' valid_class='validNameU' %]
+ [% PROCESS 'report/form/user_loggedout_by_email.html' object=update type='update' valid_class='validNameU' email_required=1 %]
<input type="hidden" name="oauth_need_email" value="1">
</div>
[% ELSE %]
diff --git a/templates/web/bromley/report/form/user_loggedout_email.html b/templates/web/bromley/report/form/user_loggedout_email.html
index fc4f83f9c..78b4a0044 100644
--- a/templates/web/bromley/report/form/user_loggedout_email.html
+++ b/templates/web/bromley/report/form/user_loggedout_email.html
@@ -8,7 +8,7 @@
[% SET username_value = object.user.email %]
[% END %]
-<label for="form_username">[% loc('Email' ) %]
+<label for="form_[% name %]">[% loc('Email' ) %]
[% IF type == 'update' %]
<span class="muted">([% loc('We never show your email') %])</span>
[% END %]
@@ -16,7 +16,7 @@
[% IF field_errors.username %]
<p class='form-error'>[% field_errors.username %]</p>
[% END %]
-<input type="[% username_type %]" name="username" id="form_username"
+<input type="[% username_type %]" name="username" id="form_[% name %]"
value="[% username_value | html %]"
[% IF required %]required[% END %]
class="form-control required">
diff --git a/templates/web/zurich/report/new/fill_in_details_form.html b/templates/web/zurich/report/new/fill_in_details_form.html
index bd20efdaa..17e308f07 100644
--- a/templates/web/zurich/report/new/fill_in_details_form.html
+++ b/templates/web/zurich/report/new/fill_in_details_form.html
@@ -50,11 +50,11 @@
[% PROCESS "report/new/category_wrapper.html" %]
- <label for="form_username">[% loc('Your email') %]</label>
+ <label for="form_username_register">[% loc('Your email') %]</label>
[% IF field_errors.username %]
<p class='form-error'>[% field_errors.username %]</p>
[% END %]
- <input class="form-control" type="email" value="[% email | html %]" name="username" id="form_username" required>
+ <input class="form-control" type="email" value="[% email | html %]" name="username" id="form_username_register" required>
<label for="form_name">[% loc('Name') %] [% loc('(optional)') %]</label>
[% IF field_errors.name %]
diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js
index 31b47f7a7..8f115fd1e 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -322,8 +322,7 @@ $.extend(fixmystreet.set_up, {
} );
$('#facebook_sign_in, #twitter_sign_in').click(function(e){
- $('#form_username').removeClass();
- $('#username').removeClass();
+ $('#username, #form_username_register, #form_username_sign_in').removeClass('required');
});
$('#planned_form').submit(function(e) {
@@ -950,7 +949,7 @@ $.extend(fixmystreet.set_up, {
},
reporting_hide_phone_email: function() {
- $('#form_username').on('keyup change', function() {
+ $('#form_username_register').on('keyup change', function() {
var username = $(this).val();
if (/^[^a-z]+$/i.test(username)) {
$('#js-hide-if-username-phone').hide();