From d44100f757301ef90030e54c5963bc45f1a42cfc Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Mon, 8 Jul 2019 11:39:07 +0200 Subject: [PATCH] MOBILE-2941 login: Display forgot password button in reconnect --- .../login/pages/credentials/credentials.ts | 24 ++------------ src/core/login/pages/reconnect/reconnect.html | 5 +++ src/core/login/pages/reconnect/reconnect.ts | 7 ++++ src/core/login/providers/helper.ts | 32 +++++++++++++++++++ 4 files changed, 46 insertions(+), 22 deletions(-) diff --git a/src/core/login/pages/credentials/credentials.ts b/src/core/login/pages/credentials/credentials.ts index 20b3d2116..3c2089190 100644 --- a/src/core/login/pages/credentials/credentials.ts +++ b/src/core/login/pages/credentials/credentials.ts @@ -19,7 +19,6 @@ import { CoreAppProvider } from '@providers/app'; import { CoreEventsProvider } from '@providers/events'; import { CoreSitesProvider } from '@providers/sites'; import { CoreDomUtilsProvider } from '@providers/utils/dom'; -import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreLoginHelperProvider } from '../../providers/helper'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { CoreConfigConstants } from '../../../../configconstants'; @@ -53,7 +52,7 @@ export class CoreLoginCredentialsPage { constructor(private navCtrl: NavController, navParams: NavParams, fb: FormBuilder, private appProvider: CoreAppProvider, private sitesProvider: CoreSitesProvider, private loginHelper: CoreLoginHelperProvider, - private domUtils: CoreDomUtilsProvider, private translate: TranslateService, private utils: CoreUtilsProvider, + private domUtils: CoreDomUtilsProvider, private translate: TranslateService, private eventsProvider: CoreEventsProvider) { this.siteUrl = navParams.get('siteUrl'); @@ -230,26 +229,7 @@ export class CoreLoginCredentialsPage { * Forgotten password button clicked. */ forgottenPassword(): void { - if (this.siteConfig && this.siteConfig.forgottenpasswordurl) { - // URL set, open it. - this.utils.openInApp(this.siteConfig.forgottenpasswordurl); - - return; - } - - // Check if password reset can be done through the app. - const modal = this.domUtils.showModalLoading(); - this.loginHelper.canRequestPasswordReset(this.siteUrl).then((canReset) => { - if (canReset) { - this.navCtrl.push('CoreLoginForgottenPasswordPage', { - siteUrl: this.siteUrl, username: this.credForm.value.username - }); - } else { - this.loginHelper.openForgottenPassword(this.siteUrl); - } - }).finally(() => { - modal.dismiss(); - }); + this.loginHelper.forgottenPasswordClicked(this.navCtrl, this.siteUrl, this.credForm.value.username, this.siteConfig); } /** diff --git a/src/core/login/pages/reconnect/reconnect.html b/src/core/login/pages/reconnect/reconnect.html index ce0edcde6..7d4cadb37 100644 --- a/src/core/login/pages/reconnect/reconnect.html +++ b/src/core/login/pages/reconnect/reconnect.html @@ -49,6 +49,11 @@ + +
+ +
+ {{ 'core.login.potentialidps' | translate }} diff --git a/src/core/login/pages/reconnect/reconnect.ts b/src/core/login/pages/reconnect/reconnect.ts index 4114678c4..b7882e1f1 100644 --- a/src/core/login/pages/reconnect/reconnect.ts +++ b/src/core/login/pages/reconnect/reconnect.ts @@ -161,6 +161,13 @@ export class CoreLoginReconnectPage { }); } + /** + * Forgotten password button clicked. + */ + forgottenPassword(): void { + this.loginHelper.forgottenPasswordClicked(this.navCtrl, this.siteUrl, this.credForm.value.username, this.siteConfig); + } + /** * An OAuth button was clicked. * diff --git a/src/core/login/providers/helper.ts b/src/core/login/providers/helper.ts index 2d4bbc62f..5adc9ac32 100644 --- a/src/core/login/providers/helper.ts +++ b/src/core/login/providers/helper.ts @@ -260,6 +260,38 @@ export class CoreLoginHelperProvider { }); } + /** + * Helper function to act when the forgotten password is clicked. + * + * @param {NavController} navCtrl NavController to use to navigate. + * @param {string} siteUrl Site URL. + * @param {string} username Username. + * @param {any} [siteConfig] Site config. + */ + forgottenPasswordClicked(navCtrl: NavController, siteUrl: string, username: string, siteConfig?: any): void { + if (siteConfig && siteConfig.forgottenpasswordurl) { + // URL set, open it. + this.utils.openInApp(siteConfig.forgottenpasswordurl); + + return; + } + + // Check if password reset can be done through the app. + const modal = this.domUtils.showModalLoading(); + + this.canRequestPasswordReset(siteUrl).then((canReset) => { + if (canReset) { + navCtrl.push('CoreLoginForgottenPasswordPage', { + siteUrl: siteUrl, username: username + }); + } else { + this.openForgottenPassword(siteUrl); + } + }).finally(() => { + modal.dismiss(); + }); + } + /** * Format profile fields, filtering the ones that shouldn't be shown on signup and classifying them in categories. *