diff --git a/src/core/features/login/pages/credentials/credentials.html b/src/core/features/login/pages/credentials/credentials.html index a9f727baf..40f69c9c6 100644 --- a/src/core/features/login/pages/credentials/credentials.html +++ b/src/core/features/login/pages/credentials/credentials.html @@ -12,6 +12,9 @@ + + + diff --git a/src/core/features/login/pages/credentials/credentials.ts b/src/core/features/login/pages/credentials/credentials.ts index 9da6e2c21..8a16425b8 100644 --- a/src/core/features/login/pages/credentials/credentials.ts +++ b/src/core/features/login/pages/credentials/credentials.ts @@ -28,6 +28,7 @@ import { CoreSiteIdentityProvider, CoreSitePublicConfigResponse } from '@classes import { CoreEvents } from '@singletons/events'; import { CoreNavigator } from '@services/navigator'; import { CoreForms } from '@singletons/form'; +import { CoreUserSupport } from '@features/user/services/support'; /** * Page to enter the user credentials. @@ -56,6 +57,7 @@ export class CoreLoginCredentialsPage implements OnInit, OnDestroy { showScanQR = false; loginAttempts = 0; siteConfig?: CoreSitePublicConfigResponse; + canContactSupport?: boolean; protected eventThrown = false; protected viewLeft = false; @@ -78,6 +80,7 @@ export class CoreLoginCredentialsPage implements OnInit, OnDestroy { this.logoUrl = !CoreConstants.CONFIG.forceLoginLogo && CoreNavigator.getRouteParam('logoUrl') || undefined; this.siteConfig = CoreNavigator.getRouteParam('siteConfig'); this.urlToOpen = CoreNavigator.getRouteParam('urlToOpen'); + this.canContactSupport = this.siteConfig && CoreUserSupport.canContactSupport(this.siteConfig); } catch (error) { CoreDomUtils.showErrorModal(error); @@ -125,6 +128,15 @@ export class CoreLoginCredentialsPage implements OnInit, OnDestroy { } } + /** + * Contact site support. + */ + async contactSupport(): Promise { + const supportPageUrl = this.siteConfig && CoreUserSupport.getSupportPageUrl(this.siteConfig); + + await CoreUserSupport.contact({ supportPageUrl }); + } + /** * Get site config and check if it requires SSO login. * This should be used only if a fixed URL is set, otherwise this check is already performed in CoreLoginSitePage. diff --git a/src/core/features/login/pages/reconnect/reconnect.html b/src/core/features/login/pages/reconnect/reconnect.html index f1b311c18..334f23769 100644 --- a/src/core/features/login/pages/reconnect/reconnect.html +++ b/src/core/features/login/pages/reconnect/reconnect.html @@ -7,6 +7,12 @@

{{ 'core.login.reconnect' | translate }}

+ + + + + + diff --git a/src/core/features/login/pages/reconnect/reconnect.ts b/src/core/features/login/pages/reconnect/reconnect.ts index e4e618060..1abb7448e 100644 --- a/src/core/features/login/pages/reconnect/reconnect.ts +++ b/src/core/features/login/pages/reconnect/reconnect.ts @@ -26,6 +26,7 @@ import { CoreEvents } from '@singletons/events'; import { CoreError } from '@classes/errors/error'; import { CoreNavigator, CoreRedirectPayload } from '@services/navigator'; import { CoreForms } from '@singletons/form'; +import { CoreUserSupport } from '@features/user/services/support'; /** * Page to enter the user password to reconnect to a site. @@ -57,6 +58,7 @@ export class CoreLoginReconnectPage implements OnInit, OnDestroy { showLoading = true; reconnectAttempts = 0; siteConfig?: CoreSitePublicConfigResponse; + canContactSupport?: boolean; protected viewLeft = false; protected eventThrown = false; @@ -102,6 +104,7 @@ export class CoreLoginReconnectPage implements OnInit, OnDestroy { this.userAvatar = site.infos.userpictureurl; this.siteUrl = site.infos.siteurl; this.siteName = site.getSiteName(); + this.canContactSupport = site.canContactSupport(); // If login was OAuth we should only reach this page if the OAuth method ID has changed. this.isOAuth = site.isOAuth(); @@ -134,6 +137,15 @@ export class CoreLoginReconnectPage implements OnInit, OnDestroy { ); } + /** + * Contact site support. + */ + async contactSupport(): Promise { + const supportPageUrl = this.siteConfig && CoreUserSupport.getSupportPageUrl(this.siteConfig); + + await CoreUserSupport.contact({ supportPageUrl }); + } + /** * Get some data (like identity providers) from the site config. */