diff --git a/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html b/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html index 9b3cfa183..598c204f0 100644 --- a/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html +++ b/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html @@ -1,7 +1,7 @@

{{ 'addon.block_myoverview.pluginname' | translate }}

-
+
@@ -36,7 +36,7 @@ - + diff --git a/src/addon/block/myoverview/components/myoverview/myoverview.ts b/src/addon/block/myoverview/components/myoverview/myoverview.ts index e577c5161..b36202f7e 100644 --- a/src/addon/block/myoverview/components/myoverview/myoverview.ts +++ b/src/addon/block/myoverview/components/myoverview/myoverview.ts @@ -62,11 +62,14 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem showHidden = false; showSelectorFilter = false; showSortFilter = false; + downloadCourseEnabled: boolean; + downloadCoursesEnabled: boolean; protected prefetchIconsInitialized = false; protected isDestroyed; protected downloadButtonObserver; protected coursesObserver; + protected updateSiteObserver; protected courseIds = []; protected fetchContentDefaultError = 'Error getting my overview data.'; @@ -96,6 +99,16 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem } }); + this.downloadCourseEnabled = !this.coursesProvider.isDownloadCourseDisabledInSite(); + this.downloadCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite(); + + // Refresh the enabled flags if site is updated. + this.updateSiteObserver = this.eventsProvider.on(CoreEventsProvider.SITE_UPDATED, () => { + this.downloadCourseEnabled = !this.coursesProvider.isDownloadCourseDisabledInSite(); + this.downloadCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite(); + + }, this.sitesProvider.getCurrentSiteId()); + this.coursesObserver = this.eventsProvider.on(CoreCoursesProvider.EVENT_MY_COURSES_UPDATED, () => { this.refreshContent(); }, this.sitesProvider.getCurrentSiteId()); @@ -336,6 +349,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem ngOnDestroy(): void { this.isDestroyed = true; this.coursesObserver && this.coursesObserver.off(); + this.updateSiteObserver && this.updateSiteObserver.off(); this.downloadButtonObserver && this.downloadButtonObserver.off(); } } diff --git a/src/core/course/pages/list-mod-type/list-mod-type.html b/src/core/course/pages/list-mod-type/list-mod-type.html index b131fb912..7315af183 100644 --- a/src/core/course/pages/list-mod-type/list-mod-type.html +++ b/src/core/course/pages/list-mod-type/list-mod-type.html @@ -12,7 +12,7 @@ - + diff --git a/src/core/course/pages/list-mod-type/list-mod-type.ts b/src/core/course/pages/list-mod-type/list-mod-type.ts index 2a1694243..37220ae4a 100644 --- a/src/core/course/pages/list-mod-type/list-mod-type.ts +++ b/src/core/course/pages/list-mod-type/list-mod-type.ts @@ -18,6 +18,7 @@ import { CoreDomUtilsProvider } from '@providers/utils/dom'; import { CoreCourseProvider } from '../../providers/course'; import { CoreCourseModuleDelegate } from '../../providers/module-delegate'; import { CoreCourseHelperProvider } from '../../providers/helper'; +import { CoreSitesProvider } from '@providers/sites'; import { CoreConstants } from '@core/constants'; /** @@ -33,13 +34,15 @@ export class CoreCourseListModTypePage { modules = []; title: string; loaded = false; + downloadEnabled = false; protected courseId: number; protected modName: string; protected archetypes = {}; // To speed up the check of modules. constructor(navParams: NavParams, private courseProvider: CoreCourseProvider, private moduleDelegate: CoreCourseModuleDelegate, - private domUtils: CoreDomUtilsProvider, private courseHelper: CoreCourseHelperProvider) { + private domUtils: CoreDomUtilsProvider, private courseHelper: CoreCourseHelperProvider, + private sitesProvider: CoreSitesProvider) { this.title = navParams.get('title'); this.courseId = navParams.get('courseId'); @@ -50,6 +53,8 @@ export class CoreCourseListModTypePage { * View loaded. */ ionViewDidLoad(): void { + this.downloadEnabled = !this.sitesProvider.getCurrentSite().isOfflineDisabled(); + this.fetchData().finally(() => { this.loaded = true; }); diff --git a/src/core/course/pages/section/section.ts b/src/core/course/pages/section/section.ts index 468cbf8b3..c2d67c3f1 100644 --- a/src/core/course/pages/section/section.ts +++ b/src/core/course/pages/section/section.ts @@ -87,7 +87,8 @@ export class CoreCourseSectionPage implements OnDestroy { // Get the title to display. We dont't have sections yet. this.title = courseFormatDelegate.getCourseTitle(this.course); - this.displayEnableDownload = courseFormatDelegate.displayEnableDownload(this.course); + this.displayEnableDownload = !sitesProvider.getCurrentSite().isOfflineDisabled() && + courseFormatDelegate.displayEnableDownload(this.course); this.downloadCourseEnabled = !this.coursesProvider.isDownloadCourseDisabledInSite(); // Check if the course format requires the view to be refreshed when completion changes. diff --git a/src/core/courses/providers/courses.ts b/src/core/courses/providers/courses.ts index 9f53303c2..c50cc9656 100644 --- a/src/core/courses/providers/courses.ts +++ b/src/core/courses/providers/courses.ts @@ -167,7 +167,7 @@ export class CoreCoursesProvider { isDownloadCourseDisabledInSite(site?: CoreSite): boolean { site = site || this.sitesProvider.getCurrentSite(); - return site.isFeatureDisabled('NoDelegate_CoreCourseDownload'); + return site.isOfflineDisabled() || site.isFeatureDisabled('NoDelegate_CoreCourseDownload'); } /** @@ -191,7 +191,7 @@ export class CoreCoursesProvider { isDownloadCoursesDisabledInSite(site?: CoreSite): boolean { site = site || this.sitesProvider.getCurrentSite(); - return site.isFeatureDisabled('NoDelegate_CoreCoursesDownload'); + return site.isOfflineDisabled() || site.isFeatureDisabled('NoDelegate_CoreCoursesDownload'); } /** diff --git a/src/core/sitehome/components/index/core-sitehome-index.html b/src/core/sitehome/components/index/core-sitehome-index.html index 6472f3418..a8a1ed1bb 100644 --- a/src/core/sitehome/components/index/core-sitehome-index.html +++ b/src/core/sitehome/components/index/core-sitehome-index.html @@ -7,7 +7,7 @@ - + diff --git a/src/core/sitehome/components/index/index.ts b/src/core/sitehome/components/index/index.ts index c21f2b1d9..34aa44057 100644 --- a/src/core/sitehome/components/index/index.ts +++ b/src/core/sitehome/components/index/index.ts @@ -40,6 +40,7 @@ export class CoreSiteHomeIndexComponent implements OnInit { siteHomeId: number; currentSite: CoreSite; blocks = []; + downloadEnabled: boolean; constructor(private domUtils: CoreDomUtilsProvider, sitesProvider: CoreSitesProvider, private courseProvider: CoreCourseProvider, private courseHelper: CoreCourseHelperProvider, @@ -52,6 +53,7 @@ export class CoreSiteHomeIndexComponent implements OnInit { * Component being initialized. */ ngOnInit(): void { + this.downloadEnabled = !this.currentSite.isOfflineDisabled(); this.loadContent().finally(() => { this.dataLoaded = true; });