diff options
Diffstat (limited to 'client/components/main/layouts.js')
-rw-r--r-- | client/components/main/layouts.js | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js index 6f7c914a..d5113a25 100644 --- a/client/components/main/layouts.js +++ b/client/components/main/layouts.js @@ -23,6 +23,7 @@ const validator = { Template.userFormsLayout.onCreated(function() { const instance = this; instance.currentSetting = new ReactiveVar(); + instance.isLoading = new ReactiveVar(false); Meteor.subscribe('setting', { onReady() { @@ -47,6 +48,10 @@ Template.userFormsLayout.helpers({ return Template.instance().currentSetting.get(); }, + isLoading() { + return Template.instance().isLoading.get(); + }, + afterBodyStart() { return currentSetting.customHTMLafterBodyStart; }, @@ -89,7 +94,11 @@ Template.userFormsLayout.events({ }, 'click #at-btn'(event, instance) { if (FlowRouter.getRouteName() === 'atSignIn') { - authentication(event, instance); + instance.isLoading.set(true); + authentication(event, instance) + .then(() => { + instance.isLoading.set(false); + }); } }, }); @@ -104,11 +113,11 @@ async function authentication(event, instance) { const match = $('#at-field-username_and_email').val(); const password = $('#at-field-password').val(); - if (!match || !password) return; + if (!match || !password) return undefined; const result = await getAuthenticationMethod(instance.currentSetting.get(), match); - if (result === 'password') return; + if (result === 'password') return undefined; // Stop submit #at-pwd-form event.preventDefault(); @@ -116,19 +125,21 @@ async function authentication(event, instance) { switch (result) { case 'ldap': - Meteor.loginWithLDAP(match, password, function() { - FlowRouter.go('/'); + return new Promise((resolve) => { + Meteor.loginWithLDAP(match, password, function() { + resolve(FlowRouter.go('/')); + }); }); - break; case 'cas': - Meteor.loginWithCas(function() { - FlowRouter.go('/'); + return new Promise((resolve) => { + Meteor.loginWithCas(match, password, function() { + resolve(FlowRouter.go('/')); + }); }); - break; default: - break; + return undefined; } } |