MOBILE-3814 storage: Fix course prefetch

main
Pau Ferrer Ocaña 2022-02-10 17:32:23 +01:00
parent 7736d899a9
commit 54deab86f8
4 changed files with 30 additions and 10 deletions

View File

@ -549,7 +549,14 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy {
* Prefetch the whole course. * Prefetch the whole course.
*/ */
async prefetchCourse(): Promise<void> { async prefetchCourse(): Promise<void> {
const course = await CoreCourses.getCourse(this.courseId); const courses = await CoreCourses.getUserCourses(true);
let course = courses.find((course) => course.id == this.courseId);
if (!course) {
course = await CoreCourses.getCourse(this.courseId);
}
if (!course) {
return;
}
try { try {
await CoreCourseHelper.confirmAndPrefetchCourse( await CoreCourseHelper.confirmAndPrefetchCourse(

View File

@ -20,7 +20,7 @@
{{ 'core.settings.spaceusagehelp' | translate }} {{ 'core.settings.spaceusagehelp' | translate }}
</p> </p>
</ion-label> </ion-label>
<ion-button fill="clear" color="danger" slot="end" (click)="deleteSiteStorage()" <ion-button fill="clear" color="danger" slot="end" (click)="deleteSiteStorage($event)"
[hidden]="spaceUsage.spaceUsage! + spaceUsage.cacheEntries! <= 0" [hidden]="spaceUsage.spaceUsage! + spaceUsage.cacheEntries! <= 0"
[attr.aria-label]="'core.settings.deletesitefilestitle' | translate" fill="outline"> [attr.aria-label]="'core.settings.deletesitefilestitle' | translate" fill="outline">
<ion-icon name="fas-trash" slot="icon-only" aria-hidden="true"></ion-icon> <ion-icon name="fas-trash" slot="icon-only" aria-hidden="true"></ion-icon>
@ -31,8 +31,8 @@
<h2 class="ion-text-wrap">{{ 'addon.storagemanager.coursesspaceusage' | translate }}</h2> <h2 class="ion-text-wrap">{{ 'addon.storagemanager.coursesspaceusage' | translate }}</h2>
<ion-badge color="light">{{ totalSize | coreBytesToSize }}</ion-badge> <ion-badge color="light">{{ totalSize | coreBytesToSize }}</ion-badge>
</ion-label> </ion-label>
<ion-button slot="end" (click)="deleteCompletelyDownloadedCourses()" [disabled]="completelyDownloadedCourses.length === 0" <ion-button slot="end" (click)="deleteCompletelyDownloadedCourses($event)"
color="danger" fill="outline"> [disabled]="completelyDownloadedCourses.length === 0" color="danger" fill="outline">
<ion-icon name="fas-trash" slot="icon-only" ariaLabel="{{ 'addon.storagemanager.deletecourses' | translate }}"> <ion-icon name="fas-trash" slot="icon-only" ariaLabel="{{ 'addon.storagemanager.deletecourses' | translate }}">
</ion-icon> </ion-icon>
</ion-button> </ion-button>
@ -55,7 +55,8 @@
{{ course.totalSize | coreBytesToSize }} {{ course.totalSize | coreBytesToSize }}
</ion-badge> </ion-badge>
</ion-label> </ion-label>
<ion-button slot="end" (click)="deleteCourse(course)" [disabled]="course.isDownloading" color="danger" fill="clear"> <ion-button slot="end" (click)="deleteCourse($event, course)" [disabled]="course.isDownloading" color="danger"
fill="clear">
<ion-icon name="fas-trash" slot="icon-only" <ion-icon name="fas-trash" slot="icon-only"
[attr.aria-label]="'addon.storagemanager.deletedatafrom' | translate: { name: course.displayname }"> [attr.aria-label]="'addon.storagemanager.deletedatafrom' | translate: { name: course.displayname }">
</ion-icon> </ion-icon>

View File

@ -103,8 +103,13 @@ export class AddonStorageManagerCoursesStoragePage implements OnInit, OnDestroy
/** /**
* Delete all courses that have been downloaded. * Delete all courses that have been downloaded.
*
* @param event: Event Object.
*/ */
async deleteCompletelyDownloadedCourses(): Promise<void> { async deleteCompletelyDownloadedCourses(event: Event): Promise<void> {
event.preventDefault();
event.stopPropagation();
try { try {
await CoreDomUtils.showDeleteConfirm('core.course.confirmdeletestoreddata'); await CoreDomUtils.showDeleteConfirm('core.course.confirmdeletestoreddata');
} catch (error) { } catch (error) {
@ -132,9 +137,13 @@ export class AddonStorageManagerCoursesStoragePage implements OnInit, OnDestroy
/** /**
* Delete course. * Delete course.
* *
* @param event: Event Object.
* @param course Course to delete. * @param course Course to delete.
*/ */
async deleteCourse(course: DownloadedCourse): Promise<void> { async deleteCourse(event: Event, course: DownloadedCourse): Promise<void> {
event.preventDefault();
event.stopPropagation();
try { try {
await CoreDomUtils.showDeleteConfirm('core.course.confirmdeletestoreddata'); await CoreDomUtils.showDeleteConfirm('core.course.confirmdeletestoreddata');
} catch (error) { } catch (error) {
@ -242,9 +251,12 @@ export class AddonStorageManagerCoursesStoragePage implements OnInit, OnDestroy
/** /**
* Deletes files of a site and the tables that can be cleared. * Deletes files of a site and the tables that can be cleared.
* *
* @param siteData Site object with space usage. * @param event: Event Object.
*/ */
async deleteSiteStorage(): Promise<void> { async deleteSiteStorage(event: Event): Promise<void> {
event.preventDefault();
event.stopPropagation();
try { try {
const siteName = CoreSites.getRequiredCurrentSite().getSiteName(); const siteName = CoreSites.getRequiredCurrentSite().getSiteName();

View File

@ -119,7 +119,7 @@ export class CoreSettingsHelperProvider {
const title = Translate.instant('core.settings.deletesitefilestitle'); const title = Translate.instant('core.settings.deletesitefilestitle');
const message = Translate.instant('core.settings.deletesitefiles', { sitename: siteName }); const message = Translate.instant('core.settings.deletesitefiles', { sitename: siteName });
await CoreDomUtils.showConfirm(message, title); await CoreDomUtils.showConfirm(message, title, Translate.instant('core.delete'));
const site = await CoreSites.getSite(siteId); const site = await CoreSites.getSite(siteId);