From b668af193bb1d6826e24644ead10fc1ae70e9e98 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Wed, 15 Nov 2023 12:32:25 +0100 Subject: [PATCH] MOBILE-4460 core: Hide informative links if needed --- .../post-options-menu/post-options-menu.ts | 4 +++ .../mod/forum/pages/discussion/discussion.ts | 5 +++- .../components/sites-list/sites-list.html | 2 +- src/core/components/sites-list/sites-list.ts | 12 ++++++++- .../choose-site-modal/choose-site-modal.html | 4 +-- .../choose-site-modal/choose-site-modal.ts | 4 +++ .../module-summary/module-summary.ts | 2 +- .../pages/course-summary/course-summary.html | 2 +- .../course-summary/course-summary.page.ts | 2 ++ .../pages/module-preview/module-preview.html | 4 +-- .../pages/module-preview/module-preview.ts | 3 +++ .../login/pages/credentials/credentials.html | 2 +- .../login/pages/credentials/credentials.ts | 2 ++ .../pages/email-signup/email-signup.html | 4 +-- .../login/pages/email-signup/email-signup.ts | 2 ++ .../login/pages/reconnect/reconnect.html | 2 +- .../login/pages/reconnect/reconnect.ts | 3 ++- src/core/features/login/pages/site/site.html | 2 +- src/core/features/login/pages/site/site.ts | 14 ++++++++++ .../components/user-menu/user-menu.html | 18 +++++++++++-- .../components/user-menu/user-menu.ts | 2 ++ .../settings/pages/deviceinfo/deviceinfo.html | 2 +- .../settings/pages/deviceinfo/deviceinfo.ts | 2 ++ src/core/services/sites.ts | 26 +++++++++++++++++-- src/types/config.d.ts | 1 + 25 files changed, 106 insertions(+), 20 deletions(-) diff --git a/src/addons/mod/forum/components/post-options-menu/post-options-menu.ts b/src/addons/mod/forum/components/post-options-menu/post-options-menu.ts index f5e147ae8e1..a32c5f97ecb 100644 --- a/src/addons/mod/forum/components/post-options-menu/post-options-menu.ts +++ b/src/addons/mod/forum/components/post-options-menu/post-options-menu.ts @@ -86,6 +86,10 @@ export class AddonModForumPostOptionsMenuComponent implements OnInit { */ protected setOpenInBrowserUrl(): void { const site = CoreSites.getRequiredCurrentSite(); + if (!CoreSites.shouldDisplayInformativeLinks(site)) { + return; + } + this.url = site.createSiteUrl('/mod/forum/discuss.php', { d: this.post.discussionid.toString() }, 'p' + this.post.id); } diff --git a/src/addons/mod/forum/pages/discussion/discussion.ts b/src/addons/mod/forum/pages/discussion/discussion.ts index 60117a03f8e..02c77a6c213 100644 --- a/src/addons/mod/forum/pages/discussion/discussion.ts +++ b/src/addons/mod/forum/pages/discussion/discussion.ts @@ -165,8 +165,11 @@ export class AddonModForumDiscussionPage implements OnInit, AfterViewInit, OnDes return; } + const currentSite = CoreSites.getCurrentSite(); this.isOnline = CoreNetwork.isOnline(); - this.externalUrl = CoreSites.getCurrentSite()?.createSiteUrl('/mod/forum/discuss.php', { d: this.discussionId.toString() }); + this.externalUrl = currentSite && CoreSites.shouldDisplayInformativeLinks(currentSite) ? + currentSite.createSiteUrl('/mod/forum/discuss.php', { d: this.discussionId.toString() }) : + undefined; this.onlineObserver = CoreNetwork.onChange().subscribe(() => { // Execute the callback in the Angular zone, so change detection doesn't stop working. NgZone.run(() => { diff --git a/src/core/components/sites-list/sites-list.html b/src/core/components/sites-list/sites-list.html index 99cc0bc5314..d4f3b7e57af 100644 --- a/src/core/components/sites-list/sites-list.html +++ b/src/core/components/sites-list/sites-list.html @@ -26,7 +26,7 @@

-

+

{{ site.siteUrlWithoutProtocol }} diff --git a/src/core/components/sites-list/sites-list.ts b/src/core/components/sites-list/sites-list.ts index 57477b12516..b92dd59cab7 100644 --- a/src/core/components/sites-list/sites-list.ts +++ b/src/core/components/sites-list/sites-list.ts @@ -14,7 +14,7 @@ import { Component, ContentChild, Input, Output, TemplateRef, EventEmitter } from '@angular/core'; -import { CoreSiteBasicInfo } from '@services/sites'; +import { CoreSiteBasicInfo, CoreSites } from '@services/sites'; import { CoreAccountsList } from '@features/login/services/login-helper'; /** @@ -77,4 +77,14 @@ export class CoreSitesListComponent { this.onSiteClicked.emit(site); } + /** + * Check whether site URL should be displayed. + * + * @param site Site to check. + * @returns Whether to display URL. + */ + displaySiteUrl(site: CoreSiteBasicInfo): boolean { + return CoreSites.shouldDisplayInformativeLinks(site.siteUrl); + } + } diff --git a/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.html b/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.html index 93d5b734e22..49f14b32679 100644 --- a/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.html +++ b/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.html @@ -16,7 +16,7 @@

{{ 'core.contentlinks.chooseaccount' | translate }}

{{ 'core.contentlinks.chooseaccounttoopenlink' | translate }}

-

{{ url }}

+

{{ url }}

@@ -27,7 +27,7 @@

{{ 'core.contentlinks.chooseaccounttoopenlink' | transl

-

{{site.siteUrl}}

+

{{site.siteUrl}}

diff --git a/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.ts b/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.ts index 66297a2a874..1bcbe6325f1 100644 --- a/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.ts +++ b/src/core/features/contentlinks/components/choose-site-modal/choose-site-modal.ts @@ -34,6 +34,7 @@ export class CoreContentLinksChooseSiteModalComponent implements OnInit { sites: CoreSiteBasicInfo[] = []; loaded = false; + displaySiteUrl = false; protected action?: CoreContentLinksAction; protected isRootURL = false; @@ -70,6 +71,9 @@ export class CoreContentLinksChooseSiteModalComponent implements OnInit { // Get the sites that can perform the action. this.sites = await CoreSites.getSites(siteIds); + + // All sites have the same URL, use the first one. + this.displaySiteUrl = CoreSites.shouldDisplayInformativeLinks(this.sites[0].siteUrl); } catch (error) { CoreDomUtils.showErrorModalDefault(error, 'core.contentlinks.errornosites', true); this.closeModal(); diff --git a/src/core/features/course/components/module-summary/module-summary.ts b/src/core/features/course/components/module-summary/module-summary.ts index e2f1415a40f..8500ecd47b3 100644 --- a/src/core/features/course/components/module-summary/module-summary.ts +++ b/src/core/features/course/components/module-summary/module-summary.ts @@ -101,7 +101,7 @@ export class CoreCourseModuleSummaryComponent implements OnInit, OnDestroy { } this.displayOptions = Object.assign({ - displayOpenInBrowser: true, + displayOpenInBrowser: CoreSites.shouldDisplayInformativeLinks(), displayDescription: true, displayRefresh: true, displayPrefetch: true, diff --git a/src/core/features/course/pages/course-summary/course-summary.html b/src/core/features/course/pages/course-summary/course-summary.html index 373dda5ae30..b491d89a5d5 100644 --- a/src/core/features/course/pages/course-summary/course-summary.html +++ b/src/core/features/course/pages/course-summary/course-summary.html @@ -45,7 +45,7 @@

- diff --git a/src/core/features/course/pages/course-summary/course-summary.page.ts b/src/core/features/course/pages/course-summary/course-summary.page.ts index b43a91a6f34..4e6c5547b37 100644 --- a/src/core/features/course/pages/course-summary/course-summary.page.ts +++ b/src/core/features/course/pages/course-summary/course-summary.page.ts @@ -72,6 +72,7 @@ export class CoreCourseSummaryPage implements OnInit, OnDestroy { courseUrl = ''; progress?: number; courseMenuHandlers: CoreCourseOptionsMenuHandlerToDisplay[] = []; + displayOpenInBrowser = false; protected actionSheet?: HTMLIonActionSheetElement; protected waitStart = 0; @@ -137,6 +138,7 @@ export class CoreCourseSummaryPage implements OnInit, OnDestroy { const currentSiteUrl = CoreSites.getRequiredCurrentSite().getURL(); this.enrolUrl = CorePath.concatenatePaths(currentSiteUrl, 'enrol/index.php?id=' + this.courseId); this.courseUrl = CorePath.concatenatePaths(currentSiteUrl, 'course/view.php?id=' + this.courseId); + this.displayOpenInBrowser = CoreSites.shouldDisplayInformativeLinks(); await this.getCourse(); } diff --git a/src/core/features/course/pages/module-preview/module-preview.html b/src/core/features/course/pages/module-preview/module-preview.html index 7df03de9d25..c6e3cb52813 100644 --- a/src/core/features/course/pages/module-preview/module-preview.html +++ b/src/core/features/course/pages/module-preview/module-preview.html @@ -11,8 +11,8 @@

- + diff --git a/src/core/features/course/pages/module-preview/module-preview.ts b/src/core/features/course/pages/module-preview/module-preview.ts index 5779ea379b4..fc154b4bda1 100644 --- a/src/core/features/course/pages/module-preview/module-preview.ts +++ b/src/core/features/course/pages/module-preview/module-preview.ts @@ -22,6 +22,7 @@ import { CoreCourseHelper, CoreCourseModuleData, CoreCourseSection } from '@feat import { CoreCourseModuleDelegate } from '@features/course/services/module-delegate'; import { IonRefresher } from '@ionic/angular'; import { CoreNavigator } from '@services/navigator'; +import { CoreSites } from '@services/sites'; import { CoreDomUtils } from '@services/utils/dom'; import { CoreUtils } from '@services/utils/utils'; @@ -43,6 +44,7 @@ export class CoreCourseModulePreviewPage implements OnInit { unsupported = false; isDisabledInSite = false; showManualCompletion = false; + displayOpenInBrowser = false; protected debouncedUpdateModule?: () => void; // Update the module after a certain time. @@ -62,6 +64,7 @@ export class CoreCourseModulePreviewPage implements OnInit { return; } + this.displayOpenInBrowser = CoreSites.shouldDisplayInformativeLinks(); this.debouncedUpdateModule = CoreUtils.debounce(() => { this.doRefresh(); }, 10000); diff --git a/src/core/features/login/pages/credentials/credentials.html b/src/core/features/login/pages/credentials/credentials.html index 3c76002c638..300cb545fb1 100644 --- a/src/core/features/login/pages/credentials/credentials.html +++ b/src/core/features/login/pages/credentials/credentials.html @@ -32,7 +32,7 @@

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

-

{{siteUrl}}

+

{{siteUrl}}

{{ 'core.agelocationverification' | translate }}

-

{{siteUrl}}

+

{{siteUrl}}

-

{{siteUrl}}

+

{{siteUrl}}

diff --git a/src/core/features/login/pages/email-signup/email-signup.ts b/src/core/features/login/pages/email-signup/email-signup.ts index c3f2da50f70..4f22041bee3 100644 --- a/src/core/features/login/pages/email-signup/email-signup.ts +++ b/src/core/features/login/pages/email-signup/email-signup.ts @@ -53,6 +53,7 @@ export class CoreLoginEmailSignupPage implements OnInit { signupForm: FormGroup; siteUrl!: string; isDemoModeSite = false; + displaySiteUrl = false; siteConfig?: CoreSitePublicConfigResponse; siteName?: string; authInstructions = ''; @@ -130,6 +131,7 @@ export class CoreLoginEmailSignupPage implements OnInit { this.siteUrl = siteUrl; this.isDemoModeSite = CoreLoginHelper.isDemoModeSite(this.siteUrl); + this.displaySiteUrl = CoreSites.shouldDisplayInformativeLinks(this.siteUrl); // Fetch the data. this.fetchData().finally(() => { diff --git a/src/core/features/login/pages/reconnect/reconnect.html b/src/core/features/login/pages/reconnect/reconnect.html index bfc6ed6b1d8..af0a6e68194 100644 --- a/src/core/features/login/pages/reconnect/reconnect.html +++ b/src/core/features/login/pages/reconnect/reconnect.html @@ -40,7 +40,7 @@

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

-

{{siteUrl}}

+

{{siteUrl}}