From dd137cc81f7b6fb7a232738ff4f671ce46de1e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Fri, 14 Dec 2018 11:15:12 +0100 Subject: [PATCH 1/2] MOBILE-2790 dashboard: Toggle download icons from blocks --- .../myoverview/addon-block-myoverview.html | 10 +++---- .../components/myoverview/myoverview.ts | 13 +++++---- .../recentlyaccessedcourses.ts | 15 +++++------ .../starredcourses/starredcourses.ts | 15 +++++------ src/core/block/components/block/block.scss | 4 +++ .../courses/pages/dashboard/dashboard.html | 5 +++- src/core/courses/pages/dashboard/dashboard.ts | 27 +++++++++++++++++++ src/core/courses/providers/courses.ts | 1 + 8 files changed, 59 insertions(+), 31 deletions(-) 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 39dc99008..3fe886769 100644 --- a/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html +++ b/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html @@ -1,10 +1,3 @@ - - - - -

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

@@ -15,6 +8,9 @@ {{prefetchCoursesData[selectedFilter].badge}} + + +
diff --git a/src/addon/block/myoverview/components/myoverview/myoverview.ts b/src/addon/block/myoverview/components/myoverview/myoverview.ts index 7e1668566..f43e74707 100644 --- a/src/addon/block/myoverview/components/myoverview/myoverview.ts +++ b/src/addon/block/myoverview/components/myoverview/myoverview.ts @@ -65,7 +65,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem protected prefetchIconsInitialized = false; protected isDestroyed; - protected updateSiteObserver; + protected downloadButtonObserver; protected coursesObserver; protected courseIds = []; protected fetchContentDefaultError = 'Error getting my overview data.'; @@ -83,13 +83,12 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem * Component being initialized. */ ngOnInit(): void { - this.downloadAllCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite(); - - // Refresh the enabled flags if site is updated. - this.updateSiteObserver = this.eventsProvider.on(CoreEventsProvider.SITE_UPDATED, () => { + // Refresh the enabled flags if enabled. + this.downloadButtonObserver = this.eventsProvider.on(CoreCoursesProvider.EVENT_DASHBOARD_DOWNLOAD_ENABLED_CHANGED, + (data) => { const wasEnabled = this.downloadAllCoursesEnabled; - this.downloadAllCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite(); + this.downloadAllCoursesEnabled = data.enabled; if (!wasEnabled && this.downloadAllCoursesEnabled && this.loaded) { // Download all courses is enabled now, initialize it. @@ -332,6 +331,6 @@ 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/addon/block/recentlyaccessedcourses/components/recentlyaccessedcourses/recentlyaccessedcourses.ts b/src/addon/block/recentlyaccessedcourses/components/recentlyaccessedcourses/recentlyaccessedcourses.ts index d81c2fc07..fe741aca6 100644 --- a/src/addon/block/recentlyaccessedcourses/components/recentlyaccessedcourses/recentlyaccessedcourses.ts +++ b/src/addon/block/recentlyaccessedcourses/components/recentlyaccessedcourses/recentlyaccessedcourses.ts @@ -40,7 +40,7 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom protected prefetchIconsInitialized = false; protected isDestroyed; - protected updateSiteObserver; + protected downloadButtonObserver; protected coursesObserver; protected courseIds = []; protected fetchContentDefaultError = 'Error getting recent courses data.'; @@ -58,19 +58,18 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom * Component being initialized. */ ngOnInit(): void { - this.downloadAllCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite(); - - // Refresh the enabled flags if site is updated. - this.updateSiteObserver = this.eventsProvider.on(CoreEventsProvider.SITE_UPDATED, () => { + // Refresh the enabled flags if enabled. + this.downloadButtonObserver = this.eventsProvider.on(CoreCoursesProvider.EVENT_DASHBOARD_DOWNLOAD_ENABLED_CHANGED, + (data) => { const wasEnabled = this.downloadAllCoursesEnabled; - this.downloadAllCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite(); + this.downloadAllCoursesEnabled = data.enabled; if (!wasEnabled && this.downloadAllCoursesEnabled && this.loaded) { // Download all courses is enabled now, initialize it. this.initPrefetchCoursesIcons(); } - }, this.sitesProvider.getCurrentSiteId()); + }); this.coursesObserver = this.eventsProvider.on(CoreCoursesProvider.EVENT_MY_COURSES_UPDATED, () => { this.refreshContent(); @@ -155,6 +154,6 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom ngOnDestroy(): void { this.isDestroyed = true; this.coursesObserver && this.coursesObserver.off(); - this.updateSiteObserver && this.updateSiteObserver.off(); + this.downloadButtonObserver && this.downloadButtonObserver.off(); } } diff --git a/src/addon/block/starredcourses/components/starredcourses/starredcourses.ts b/src/addon/block/starredcourses/components/starredcourses/starredcourses.ts index 66d2945bb..651322c69 100644 --- a/src/addon/block/starredcourses/components/starredcourses/starredcourses.ts +++ b/src/addon/block/starredcourses/components/starredcourses/starredcourses.ts @@ -40,7 +40,7 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im protected prefetchIconsInitialized = false; protected isDestroyed; - protected updateSiteObserver; + protected downloadButtonObserver; protected coursesObserver; protected courseIds = []; protected fetchContentDefaultError = 'Error getting starred courses data.'; @@ -58,19 +58,18 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im * Component being initialized. */ ngOnInit(): void { - this.downloadAllCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite(); - - // Refresh the enabled flags if site is updated. - this.updateSiteObserver = this.eventsProvider.on(CoreEventsProvider.SITE_UPDATED, () => { + // Refresh the enabled flags if enabled. + this.downloadButtonObserver = this.eventsProvider.on(CoreCoursesProvider.EVENT_DASHBOARD_DOWNLOAD_ENABLED_CHANGED, + (data) => { const wasEnabled = this.downloadAllCoursesEnabled; - this.downloadAllCoursesEnabled = !this.coursesProvider.isDownloadCoursesDisabledInSite(); + this.downloadAllCoursesEnabled = data.enabled; if (!wasEnabled && this.downloadAllCoursesEnabled && this.loaded) { // Download all courses is enabled now, initialize it. this.initPrefetchCoursesIcons(); } - }, this.sitesProvider.getCurrentSiteId()); + }); this.coursesObserver = this.eventsProvider.on(CoreCoursesProvider.EVENT_MY_COURSES_UPDATED, () => { this.refreshContent(); @@ -155,6 +154,6 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im 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/block/components/block/block.scss b/src/core/block/components/block/block.scss index 28a9914d4..3fc6c57b8 100644 --- a/src/core/block/components/block/block.scss +++ b/src/core/block/components/block/block.scss @@ -20,4 +20,8 @@ ion-app.app-root core-block { .item-divider .core-button-spinner { margin: 0; } + + .item-divider .icon { + color: $black; + } } \ No newline at end of file diff --git a/src/core/courses/pages/dashboard/dashboard.html b/src/core/courses/pages/dashboard/dashboard.html index 4bf752f86..9d409ca54 100644 --- a/src/core/courses/pages/dashboard/dashboard.html +++ b/src/core/courses/pages/dashboard/dashboard.html @@ -1,4 +1,4 @@ - + @@ -6,6 +6,9 @@ + + + diff --git a/src/core/courses/pages/dashboard/dashboard.ts b/src/core/courses/pages/dashboard/dashboard.ts index 591b5fec5..150ad911a 100644 --- a/src/core/courses/pages/dashboard/dashboard.ts +++ b/src/core/courses/pages/dashboard/dashboard.ts @@ -49,6 +49,10 @@ export class CoreCoursesDashboardPage implements OnDestroy { userId: number; dashboardLoaded = false; + downloadEnabled: boolean; + downloadEnabledIcon = 'square-outline'; // Disabled by default. + downloadCourseEnabled: boolean; + protected isDestroyed; protected updateSiteObserver; @@ -64,10 +68,15 @@ export class CoreCoursesDashboardPage implements OnDestroy { */ ionViewDidLoad(): void { this.searchEnabled = !this.coursesProvider.isSearchCoursesDisabledInSite(); + this.downloadCourseEnabled = !this.coursesProvider.isDownloadCourseDisabledInSite(); // Refresh the enabled flags if site is updated. this.updateSiteObserver = this.eventsProvider.on(CoreEventsProvider.SITE_UPDATED, () => { this.searchEnabled = !this.coursesProvider.isSearchCoursesDisabledInSite(); + this.downloadCourseEnabled = !this.coursesProvider.isDownloadCourseDisabledInSite(); + + this.switchDownload(this.downloadEnabled); + this.loadSiteName(); }, this.sitesProvider.getCurrentSiteId()); @@ -174,6 +183,24 @@ export class CoreCoursesDashboardPage implements OnDestroy { }); } + /** + * Toggle download enabled. + */ + toggleDownload(): void { + this.switchDownload(!this.downloadEnabled); + } + + /** + * Convenience function to switch download enabled. + * + * @param {boolean} enable If enable or disable. + */ + protected switchDownload(enable: boolean): void { + this.downloadEnabled = this.downloadCourseEnabled && enable; + this.downloadEnabledIcon = this.downloadEnabled ? 'checkbox-outline' : 'square-outline'; + this.eventsProvider.trigger(CoreCoursesProvider.EVENT_DASHBOARD_DOWNLOAD_ENABLED_CHANGED, {enabled: this.downloadEnabled}); + } + /** * Load fallback blocks to shown before 3.6 when dashboard blocks are not supported. */ diff --git a/src/core/courses/providers/courses.ts b/src/core/courses/providers/courses.ts index 880010733..3ea3805c2 100644 --- a/src/core/courses/providers/courses.ts +++ b/src/core/courses/providers/courses.ts @@ -26,6 +26,7 @@ export class CoreCoursesProvider { static ENROL_INVALID_KEY = 'CoreCoursesEnrolInvalidKey'; static EVENT_MY_COURSES_UPDATED = 'courses_my_courses_updated'; static EVENT_MY_COURSES_REFRESHED = 'courses_my_courses_refreshed'; + static EVENT_DASHBOARD_DOWNLOAD_ENABLED_CHANGED = 'dashboard_download_enabled_changed'; protected ROOT_CACHE_KEY = 'mmCourses:'; protected logger; From 02f3d107ae6607295ebbede0517cb46bb0f46d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Fri, 14 Dec 2018 11:24:16 +0100 Subject: [PATCH 2/2] MOBILE-2790 dashboard: Switch download button on course cards --- .../components/myoverview/addon-block-myoverview.html | 2 +- .../addon-block-recentlyaccessedcourses.html | 2 +- .../starredcourses/addon-block-starredcourses.html | 2 +- .../course-progress/core-courses-course-progress.html | 4 ++-- .../components/course-progress/course-progress.scss | 11 +++++++++-- .../components/course-progress/course-progress.ts | 1 + 6 files changed, 15 insertions(+), 7 deletions(-) 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 3fe886769..f5f192ca9 100644 --- a/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html +++ b/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html @@ -43,7 +43,7 @@ - + diff --git a/src/addon/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html b/src/addon/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html index 8012cf048..c890ad9f7 100644 --- a/src/addon/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html +++ b/src/addon/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html @@ -14,7 +14,7 @@
- +
diff --git a/src/addon/block/starredcourses/components/starredcourses/addon-block-starredcourses.html b/src/addon/block/starredcourses/components/starredcourses/addon-block-starredcourses.html index 194a1d6fe..a88854ee1 100644 --- a/src/addon/block/starredcourses/components/starredcourses/addon-block-starredcourses.html +++ b/src/addon/block/starredcourses/components/starredcourses/addon-block-starredcourses.html @@ -14,7 +14,7 @@
- +
diff --git a/src/core/courses/components/course-progress/core-courses-course-progress.html b/src/core/courses/components/course-progress/core-courses-course-progress.html index c59de59e4..413d94520 100644 --- a/src/core/courses/components/course-progress/core-courses-course-progress.html +++ b/src/core/courses/components/course-progress/core-courses-course-progress.html @@ -3,7 +3,7 @@
-
+

@@ -11,7 +11,7 @@

-
+