diff --git a/.editorconfig b/.editorconfig
index 9c378bd19..986314661 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,7 +1,7 @@
root = true
[*]
-indent_style = tab
+indent_style = space
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
diff --git a/client/coral-framework/actions/auth.js b/client/coral-framework/actions/auth.js
index e3bf0babd..a1a44611f 100644
--- a/client/coral-framework/actions/auth.js
+++ b/client/coral-framework/actions/auth.js
@@ -1,3 +1,6 @@
+import I18n from 'coral-framework/modules/i18n/i18n';
+import translations from './../translations';
+const lang = new I18n(translations);
import * as actions from '../constants/auth';
import {base, handleResp, getInit} from '../helpers/response';
@@ -27,7 +30,7 @@ export const fetchSignIn = (formData) => dispatch => {
dispatch(hideSignInDialog());
dispatch(signInSuccess(user));
})
- .catch(() => dispatch(signInFailure('Email and/or password combination incorrect.')));
+ .catch(() => dispatch(signInFailure(lang.t('error.emailPasswordError'))));
};
// Sign In - Facebook
@@ -75,7 +78,7 @@ export const fetchSignUp = formData => dispatch => {
dispatch(changeView('SIGNIN'));
}, 3000);
})
- .catch((error) => dispatch(signUpFailure(error)));
+ .catch(() => dispatch(signUpFailure(lang.t('error.emailInUse')))); // We need to inprove error handling. TODO (bc)
};
// Forgot Password Actions
@@ -106,27 +109,8 @@ export const logout = () => dispatch => {
.catch(error => dispatch(logOutFailure(error)));
};
-// Availability Checks Actions
+// LogOut Actions
-const availabilityRequest = () => ({type: actions.FETCH_AVAILABILITY_REQUEST});
-const availabilitySuccess = () => ({type: actions.FETCH_AVAILABILITY_SUCCESS});
-const availabilityFailure = () => ({type: actions.FETCH_AVAILABILITY_FAILURE});
-
-const availableField = field => ({type: actions.AVAILABLE_FIELD, field});
-const unavailableField = field => ({type: actions.UNAVAILABLE_FIELD, field});
-
-export const fetchCheckAvailability = formData => dispatch => {
- dispatch(availabilityRequest());
- fetch(`${base}/user/availability`, getInit('POST', formData))
- .then(handleResp)
- .then(({status}) => {
- const [field] = Object.keys(formData);
- dispatch(availabilitySuccess());
- if (status === 'available') {
- return dispatch(availableField(field));
- }
- return dispatch(unavailableField(field));
- })
- .catch((error) => availabilityFailure(error));
-};
+export const validForm = () => ({type: actions.VALID_FORM});
+export const invalidForm = error => ({type: actions.INVALID_FORM, error});
diff --git a/client/coral-framework/constants/auth.js b/client/coral-framework/constants/auth.js
index 5c0135f58..a6a2c44f8 100644
--- a/client/coral-framework/constants/auth.js
+++ b/client/coral-framework/constants/auth.js
@@ -24,9 +24,6 @@ export const LOGOUT_REQUEST = 'LOGOUT_REQUEST';
export const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';
export const LOGOUT_FAILURE = 'LOGOUT_FAILURE';
-export const FETCH_AVAILABILITY_REQUEST = 'FETCH_AVAILABILITY_REQUEST';
-export const FETCH_AVAILABILITY_SUCCESS = 'FETCH_AVAILABILITY_SUCCESS';
-export const FETCH_AVAILABILITY_FAILURE = 'FETCH_AVAILABILITY_FAILURE';
+export const INVALID_FORM = 'INVALID_FORM';
+export const VALID_FORM = 'VALID_FORM';
-export const AVAILABLE_FIELD = 'AVAILABLE_FIELD';
-export const UNAVAILABLE_FIELD = 'UNAVAILABLE_FIELD';
diff --git a/client/coral-framework/helpers/error.js b/client/coral-framework/helpers/error.js
index 735ad7a5d..34ba253ba 100644
--- a/client/coral-framework/helpers/error.js
+++ b/client/coral-framework/helpers/error.js
@@ -1,6 +1,10 @@
+import I18n from 'coral-framework/modules/i18n/i18n';
+import translations from './../translations';
+const lang = new I18n(translations);
+
export default {
- email: 'Not a valid E-Mail',
- password: 'Password must be at least 8 characters',
- displayName: 'Display name is too short',
- confirmPassword: 'Passwords don`t match. Please, check again'
+ email: lang.t('error.email'),
+ password: lang.t('error.password'),
+ displayName: lang.t('error.displayName'),
+ confirmPassword: lang.t('error.confirmPassword')
};
diff --git a/client/coral-framework/reducers/auth.js b/client/coral-framework/reducers/auth.js
index bf7fef368..3e454892f 100644
--- a/client/coral-framework/reducers/auth.js
+++ b/client/coral-framework/reducers/auth.js
@@ -7,8 +7,7 @@ const initialState = Map({
user: null,
showSignInDialog: false,
view: 'SIGNIN',
- signUpError: '',
- emailAvailable: true,
+ error: '',
successSignUp: false
});
@@ -22,14 +21,12 @@ export default function auth (state = initialState, action) {
isLoading: false,
showSignInDialog: false,
view: 'SIGNIN',
- signInError: '',
- signUpError: '',
- emailAvailable: true,
+ error: '',
successSignUp: false
}));
case actions.CHANGE_VIEW :
return state
- .set('signInError', '')
+ .set('error', '')
.set('view', action.view);
case actions.CLEAN_STATE:
return initialState;
@@ -43,7 +40,7 @@ export default function auth (state = initialState, action) {
case actions.FETCH_SIGNIN_FAILURE:
return state
.set('isLoading', false)
- .set('signInError', action.error);
+ .set('error', action.error);
case actions.FETCH_SIGNIN_FACEBOOK_SUCCESS:
return state
.set('user', action.user)
@@ -57,6 +54,7 @@ export default function auth (state = initialState, action) {
.set('isLoading', true);
case actions.FETCH_SIGNUP_FAILURE:
return state
+ .set('error', action.error)
.set('isLoading', false);
case actions.FETCH_SIGNUP_SUCCESS:
return state
@@ -66,12 +64,12 @@ export default function auth (state = initialState, action) {
return state
.set('loggedIn', false)
.set('user', null);
- case actions.AVAILABLE_FIELD:
+ case actions.INVALID_FORM:
return state
- .set(`${action.field}Available`, true);
- case actions.UNAVAILABLE_FIELD:
+ .set('error', action.error);
+ case actions.VALID_FORM:
return state
- .set(`${action.field}Available`, false);
+ .set('error', '');
default :
return state;
}
diff --git a/client/coral-framework/translations.json b/client/coral-framework/translations.json
new file mode 100644
index 000000000..4abd1ed03
--- /dev/null
+++ b/client/coral-framework/translations.json
@@ -0,0 +1,22 @@
+{
+ "en": {
+ "error": {
+ "email": "Not a valid E-Mail",
+ "password": "Password must be at least 8 characters",
+ "displayName": "Display name is too short",
+ "confirmPassword": "Passwords don`t match. Please, check again",
+ "emailPasswordError": "Email and/or password combination incorrect.",
+ "emailInUse": "Email address already in use"
+ }
+ },
+ "es": {
+ "error": {
+ "email": "No es un email válido",
+ "password": "La contraseña debe tener por lo menos 8 caracteres",
+ "displayName": "El nombre es muy corto",
+ "confirmPassword": "Las contraseñas no coinciden",
+ "emailPasswordError": "Email y/o contraseña incorrecta.",
+ "emailInUse": "Email address already in use"
+ }
+ }
+}
\ No newline at end of file
diff --git a/client/coral-sign-in/components/SignInContent.js b/client/coral-sign-in/components/SignInContent.js
index 8aa688133..76a93f56c 100644
--- a/client/coral-sign-in/components/SignInContent.js
+++ b/client/coral-sign-in/components/SignInContent.js
@@ -25,7 +25,7 @@ const SignInContent = ({handleChange, formData, ...props}) => (
{lang.t('signIn.or')}
- { props.auth.signInError &&