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.
*/