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' });
});