Merge pull request #58 from todda00/form-submit-hook

call onSubmitHook after all form submissions
This commit is contained in:
Tim Brandin 2016-12-14 15:25:58 +01:00 committed by GitHub
commit ee0ffeb81f

View file

@ -444,7 +444,9 @@ export class LoginForm extends Tracker.Component {
username = null,
email = null,
usernameOrEmail = null,
password
password,
formState,
onSubmitHook
} = this.state;
let loginSelector;
@ -486,6 +488,7 @@ export class LoginForm extends Tracker.Component {
}
Meteor.loginWithPassword(loginSelector, password, (error, result) => {
onSubmitHook(error,formState);
if (error) {
this.showMessage(T9n.get(`error.accounts.${error.reason}`) || T9n.get("Unknown error"), 'error');
}
@ -517,7 +520,7 @@ export class LoginForm extends Tracker.Component {
}
oauthSignIn(serviceName) {
const { formState, waiting, user } = this.state;
const { formState, waiting, user, onSubmitHook } = this.state;
//Thanks Josh Owens for this one.
function capitalService() {
return serviceName.charAt(0).toUpperCase() + serviceName.slice(1);
@ -538,6 +541,7 @@ export class LoginForm extends Tracker.Component {
options.forceApprovalPrompt = Accounts.ui._options.forceApprovalPrompt[serviceName];
loginWithService(options, (error) => {
onSubmitHook(error,formState);
if (error) {
this.showMessage(T9n.get(`error.accounts.${error.reason}`) || T9n.get("Unknown error"));
} else {
@ -556,7 +560,8 @@ export class LoginForm extends Tracker.Component {
email = null,
usernameOrEmail = null,
password,
formState
formState,
onSubmitHook
} = this.state;
if (username !== null) {
@ -594,7 +599,7 @@ export class LoginForm extends Tracker.Component {
}
else if (!validatePassword(password)) {
this.showMessage(T9n.get("error.minChar").replace(/7/, Accounts.ui._options.minimumPasswordLength), 'warning');
this.state.onSubmitHook("error.minChar", formState);
onSubmitHook("error.minChar", formState);
return;
}
else {
@ -608,13 +613,14 @@ export class LoginForm extends Tracker.Component {
if (error) {
this.showMessage(T9n.get(`error.accounts.${error.reason}`) || T9n.get("Unknown error"), 'error');
if (T9n.get(`error.accounts.${error.reason}`)) {
this.state.onSubmitHook(`error.accounts.${error.reason}`, formState);
onSubmitHook(`error.accounts.${error.reason}`, formState);
}
else {
this.state.onSubmitHook("Unknown error", formState);
onSubmitHook("Unknown error", formState);
}
}
else {
onSubmitHook(null, formState);
this.setState({
formState: STATES.PROFILE,
message: null,
@ -642,7 +648,9 @@ export class LoginForm extends Tracker.Component {
const {
email = '',
usernameOrEmail = '',
waiting
waiting,
formState,
onSubmitHook
} = this.state;
if (waiting) {
@ -659,7 +667,7 @@ export class LoginForm extends Tracker.Component {
else {
this.showMessage(T9n.get("info.emailSent"), 'success', 5000);
}
onSubmitHook(error, formState);
this.setState({ waiting: false });
});
}
@ -673,24 +681,29 @@ export class LoginForm extends Tracker.Component {
else {
this.showMessage(T9n.get("info.emailSent"), 'success', 5000);
}
onSubmitHook(error, formState);
this.setState({ waiting: false });
});
}
else {
let errMsg = null;
if (_.contains([ "USERNAME_AND_EMAIL_NO_PASSWORD" ], passwordSignupFields())) {
this.showMessage(T9n.get("error.accounts.Invalid email or username"), 'warning');
errMsg = T9n.get("error.accounts.Invalid email or username");
}
else {
this.showMessage(T9n.get("error.accounts.Invalid email"), 'warning');
errMsg = T9n.get("error.accounts.Invalid email");
}
this.showMessage(errMsg,'warning');
onSubmitHook(errMsg, formState);
}
}
passwordReset() {
const {
email = '',
waiting
waiting,
formState,
onSubmitHook
} = this.state;
if (waiting) {
@ -707,23 +720,29 @@ export class LoginForm extends Tracker.Component {
else {
this.showMessage(T9n.get("info.emailSent"), 'success', 5000);
}
onSubmitHook(error, formState);
this.setState({ waiting: false });
});
}
else {
this.showMessage(T9n.get("error.accounts.Invalid email"), 'warning');
const errMsg = T9n.get("error.accounts.Invalid email");
onSubmitHook(errMsg, formState);
this.showMessage(errMsg,'warning');
}
}
passwordChange() {
const {
password,
newPassword
newPassword,
formState,
onSubmitHook
} = this.state;
if ( !validatePassword(newPassword) ){
this.showMessage(T9n.get("error.minChar").replace(/7/, Accounts.ui._options.minimumPasswordLength), 'warning');
const errMsg = T9n.get("error.minChar").replace(/7/, Accounts.ui._options.minimumPasswordLength);
this.showMessage(errMsg,'warning');
onSubmitHook(errMsg,formState);
return;
}
@ -735,9 +754,11 @@ export class LoginForm extends Tracker.Component {
Accounts.resetPassword(token, newPassword, (error) => {
if (error) {
this.showMessage(T9n.get(`error.accounts.${error.reason}`) || T9n.get("Unknown error"), 'error');
onSubmitHook(error, formState);
}
else {
this.showMessage(T9n.get('info.passwordChanged'), 'success', 5000);
onSubmitHook(null, formState);
this.setState({ formState: STATES.PROFILE });
Accounts._loginButtonsSession.set('resetPasswordToken', null);
Accounts._loginButtonsSession.set('enrollAccountToken', null);
@ -748,9 +769,11 @@ export class LoginForm extends Tracker.Component {
Accounts.changePassword(password, newPassword, (error) => {
if (error) {
this.showMessage(T9n.get(`error.accounts.${error.reason}`) || T9n.get("Unknown error"), 'error');
onSubmitHook(error, formState);
}
else {
this.showMessage(T9n.get('info.passwordChanged'), 'success', 5000);
onSubmitHook(null, formState);
this.setState({ formState: STATES.PROFILE });
}
});