diff --git a/app/models/user.rb b/app/models/user.rb index e0eedf1..296565c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -125,7 +125,6 @@ # @param new_organisation_id [Integer] the id for an organisation # @return [String] the empty string as a causality of setting api_token def org_id=(new_org_id) - puts "$$$$ new_org_id: #{new_org_id}" unless self.can_change_org? || new_org_id.nil? || self.org.nil? || (new_org_id.to_s == self.org.id.to_s) # rip all permissions from the user self.perms.delete_all diff --git a/app/views/shared/_sign_in_form.html.erb b/app/views/shared/_sign_in_form.html.erb index ba659b3..48428a5 100644 --- a/app/views/shared/_sign_in_form.html.erb +++ b/app/views/shared/_sign_in_form.html.erb @@ -1,11 +1,11 @@ <%= form_for resource, as: 'user', url: user_session_path, html: {id: "sign_in_form"} do |f| %>
<%= f.label(:email, _('Email'), class: 'control-label') %> - <%= f.email_field(:email, class: 'form-control', "aria-required": true) %> + <%= f.email_field(:email, class: 'form-control', "aria-required": true, id: nil) %>
<%= f.label(:password, _('Password'), class: 'control-label') %> - <%= f.password_field(:password, class: 'form-control', "aria-required": true) %> + <%= f.password_field(:password, class: 'form-control', "aria-required": true, id: nil) %>
<%= link_to _('Forgot password?'), new_password_path('user') %> diff --git a/lib/assets/javascripts/views/shared/sign_in_form.js b/lib/assets/javascripts/views/shared/sign_in_form.js index f265b67..9a954db 100644 --- a/lib/assets/javascripts/views/shared/sign_in_form.js +++ b/lib/assets/javascripts/views/shared/sign_in_form.js @@ -1,32 +1,37 @@ import * as Cookies from 'js-cookie'; import ariatiseForm from '../../utils/ariatiseForm'; -import { togglisePasswords } from '../../utils/passwordHelper'; +import { isValidText } from '../../utils/isValidInputType'; $(() => { - ariatiseForm({ selector: '#sign_in_form' }); - togglisePasswords({ selector: '#sign_in_form' }); - - const email = Cookies.get('dmproadmap_email'); - - // If the user's email was stored in the browser's cookies the pre-populate the field - if (email && email !== '') { - $('#sign_in_form #remember_email').attr('checked', 'checked'); - $('#sign_in_form #user_email').val(email); - } - - // When the user checks the 'remember email' box store the value in the browser storage - $('#sign_in_form #remember_email').click((e) => { - if ($(e.currentTarget).is(':checked')) { - Cookies.set('dmproadmap_email', $('#sign_in_form #user_email').val(), { expires: 14 }); + // Constants and methods + const rememberEmail = $('#sign_in_form input[name="remember_email"]'); + const userEmail = $('#sign_in_form input[name="user[email]"]'); + const emailCookieKey = 'dmproadmap_email'; + const getEmailCookie = () => Cookies.get(emailCookieKey); + const setEmailCookie = (value = null) => { + if (value === null) { + Cookies.remove(emailCookieKey); } else { - Cookies.remove('dmproadmap_email'); + Cookies.set(emailCookieKey, value, { expires: 14 }); + } + }; + // Event handlers + rememberEmail.click(() => { + if (rememberEmail.is(':checked')) { + setEmailCookie(userEmail.val()); + } else { + setEmailCookie(null); } }); - - // If the email is changed and the user has asked to remember it update the browser storage - $('#sign_in_form #user_email').change((e) => { - if ($('#sign_in_form #remember_email').is(':checked')) { - Cookies.set('dmproadmap_email', $(e.currentTarget).val(), { expires: 14 }); + userEmail.change(() => { + if (rememberEmail.is(':checked')) { + setEmailCookie(userEmail.val()); } }); + // Initialisation + if (isValidText(getEmailCookie())) { + rememberEmail.attr('checked', 'checked'); + userEmail.val(getEmailCookie()); + } + ariatiseForm({ selector: '#sign_in_form' }); });