Skip to content

Commit ea22e65

Browse files
committed
MOBILE-3039 course: Hide download when offline disabled
1 parent 240f425 commit ea22e65

File tree

8 files changed

+30
-8
lines changed

8 files changed

+30
-8
lines changed

src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<ion-item-divider>
22
<h2>{{ 'addon.block_myoverview.pluginname' | translate }}</h2>
33
<!-- Download all courses. -->
4-
<div *ngIf="downloadEnabled && courses[selectedFilter] && courses[selectedFilter].length > 1 && !showFilter" class="core-button-spinner" item-end>
4+
<div *ngIf="downloadCoursesEnabled && downloadEnabled && courses[selectedFilter] && courses[selectedFilter].length > 1 && !showFilter" class="core-button-spinner" item-end>
55
<button *ngIf="prefetchCoursesData[selectedFilter].icon && prefetchCoursesData[selectedFilter].icon != 'spinner'" ion-button icon-only clear color="dark" (click)="prefetchCourses()">
66
<core-icon [name]="prefetchCoursesData[selectedFilter].icon"></core-icon>
77
</button>
@@ -36,7 +36,7 @@ <h2>{{ 'addon.block_myoverview.pluginname' | translate }}</h2>
3636
<ion-grid no-padding>
3737
<ion-row no-padding>
3838
<ion-col *ngFor="let course of filteredCourses" no-padding col-12 col-sm-6 col-md-6 col-lg-4 col-xl-4 align-self-stretch>
39-
<core-courses-course-progress [course]="course" class="core-courseoverview" showAll="true" [showDownload]="downloadEnabled"></core-courses-course-progress>
39+
<core-courses-course-progress [course]="course" class="core-courseoverview" showAll="true" [showDownload]="downloadCourseEnabled && downloadEnabled"></core-courses-course-progress>
4040
</ion-col>
4141
</ion-row>
4242
</ion-grid>

src/addon/block/myoverview/components/myoverview/myoverview.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,14 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
6262
showHidden = false;
6363
showSelectorFilter = false;
6464
showSortFilter = false;
65+
downloadCourseEnabled: boolean;
66+
downloadCoursesEnabled: boolean;
6567

6668
protected prefetchIconsInitialized = false;
6769
protected isDestroyed;
6870
protected downloadButtonObserver;
6971
protected coursesObserver;
72+
protected updateSiteObserver;
7073
protected courseIds = [];
7174
protected fetchContentDefaultError = 'Error getting my overview data.';
7275

@@ -96,6 +99,16 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
9699
}
97100
});
98101

102+
this.downloadCourseEnabled = !this.coursesProvider.isDownloadCourseDisabledInSite();
103+
this.downloadCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite();
104+
105+
// Refresh the enabled flags if site is updated.
106+
this.updateSiteObserver = this.eventsProvider.on(CoreEventsProvider.SITE_UPDATED, () => {
107+
this.downloadCourseEnabled = !this.coursesProvider.isDownloadCourseDisabledInSite();
108+
this.downloadCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite();
109+
110+
}, this.sitesProvider.getCurrentSiteId());
111+
99112
this.coursesObserver = this.eventsProvider.on(CoreCoursesProvider.EVENT_MY_COURSES_UPDATED, () => {
100113
this.refreshContent();
101114
}, this.sitesProvider.getCurrentSiteId());
@@ -336,6 +349,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
336349
ngOnDestroy(): void {
337350
this.isDestroyed = true;
338351
this.coursesObserver && this.coursesObserver.off();
352+
this.updateSiteObserver && this.updateSiteObserver.off();
339353
this.downloadButtonObserver && this.downloadButtonObserver.off();
340354
}
341355
}

src/core/course/pages/list-mod-type/list-mod-type.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<ion-list>
1414
<ng-container *ngFor="let module of modules">
15-
<core-course-module *ngIf="module.visibleoncoursepage !== 0" [module]="module" [courseId]="courseId" downloadEnabled="true"></core-course-module>
15+
<core-course-module *ngIf="module.visibleoncoursepage !== 0" [module]="module" [courseId]="courseId" [downloadEnabled]="downloadEnabled"></core-course-module>
1616
</ng-container>
1717
</ion-list>
1818
</core-loading>

src/core/course/pages/list-mod-type/list-mod-type.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { CoreDomUtilsProvider } from '@providers/utils/dom';
1818
import { CoreCourseProvider } from '../../providers/course';
1919
import { CoreCourseModuleDelegate } from '../../providers/module-delegate';
2020
import { CoreCourseHelperProvider } from '../../providers/helper';
21+
import { CoreSitesProvider } from '@providers/sites';
2122
import { CoreConstants } from '@core/constants';
2223

2324
/**
@@ -33,13 +34,15 @@ export class CoreCourseListModTypePage {
3334
modules = [];
3435
title: string;
3536
loaded = false;
37+
downloadEnabled = false;
3638

3739
protected courseId: number;
3840
protected modName: string;
3941
protected archetypes = {}; // To speed up the check of modules.
4042

4143
constructor(navParams: NavParams, private courseProvider: CoreCourseProvider, private moduleDelegate: CoreCourseModuleDelegate,
42-
private domUtils: CoreDomUtilsProvider, private courseHelper: CoreCourseHelperProvider) {
44+
private domUtils: CoreDomUtilsProvider, private courseHelper: CoreCourseHelperProvider,
45+
private sitesProvider: CoreSitesProvider) {
4346

4447
this.title = navParams.get('title');
4548
this.courseId = navParams.get('courseId');
@@ -50,6 +53,8 @@ export class CoreCourseListModTypePage {
5053
* View loaded.
5154
*/
5255
ionViewDidLoad(): void {
56+
this.downloadEnabled = !this.sitesProvider.getCurrentSite().isOfflineDisabled();
57+
5358
this.fetchData().finally(() => {
5459
this.loaded = true;
5560
});

src/core/course/pages/section/section.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ export class CoreCourseSectionPage implements OnDestroy {
8787

8888
// Get the title to display. We dont't have sections yet.
8989
this.title = courseFormatDelegate.getCourseTitle(this.course);
90-
this.displayEnableDownload = courseFormatDelegate.displayEnableDownload(this.course);
90+
this.displayEnableDownload = !sitesProvider.getCurrentSite().isOfflineDisabled() &&
91+
courseFormatDelegate.displayEnableDownload(this.course);
9192
this.downloadCourseEnabled = !this.coursesProvider.isDownloadCourseDisabledInSite();
9293

9394
// Check if the course format requires the view to be refreshed when completion changes.

src/core/courses/providers/courses.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ export class CoreCoursesProvider {
167167
isDownloadCourseDisabledInSite(site?: CoreSite): boolean {
168168
site = site || this.sitesProvider.getCurrentSite();
169169

170-
return site.isFeatureDisabled('NoDelegate_CoreCourseDownload');
170+
return site.isOfflineDisabled() || site.isFeatureDisabled('NoDelegate_CoreCourseDownload');
171171
}
172172

173173
/**
@@ -191,7 +191,7 @@ export class CoreCoursesProvider {
191191
isDownloadCoursesDisabledInSite(site?: CoreSite): boolean {
192192
site = site || this.sitesProvider.getCurrentSite();
193193

194-
return site.isFeatureDisabled('NoDelegate_CoreCoursesDownload');
194+
return site.isOfflineDisabled() || site.isFeatureDisabled('NoDelegate_CoreCoursesDownload');
195195
}
196196

197197
/**

src/core/sitehome/components/index/core-sitehome-index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<core-format-text [text]="section.summary"></core-format-text>
88
</ion-item>
99

10-
<core-course-module *ngFor="let module of section.modules" [module]="module" [courseId]="siteHomeId" [downloadEnabled]="true" [section]="section"></core-course-module>
10+
<core-course-module *ngFor="let module of section.modules" [module]="module" [courseId]="siteHomeId" [downloadEnabled]="downloadEnabled" [section]="section"></core-course-module>
1111
</ng-container>
1212

1313
<!-- Site home items: news, categories, courses, etc. -->

src/core/sitehome/components/index/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export class CoreSiteHomeIndexComponent implements OnInit {
4040
siteHomeId: number;
4141
currentSite: CoreSite;
4242
blocks = [];
43+
downloadEnabled: boolean;
4344

4445
constructor(private domUtils: CoreDomUtilsProvider, sitesProvider: CoreSitesProvider,
4546
private courseProvider: CoreCourseProvider, private courseHelper: CoreCourseHelperProvider,
@@ -52,6 +53,7 @@ export class CoreSiteHomeIndexComponent implements OnInit {
5253
* Component being initialized.
5354
*/
5455
ngOnInit(): void {
56+
this.downloadEnabled = !this.currentSite.isOfflineDisabled();
5557
this.loadContent().finally(() => {
5658
this.dataLoaded = true;
5759
});

0 commit comments

Comments
 (0)