MOBILE-3814 storage: Fix course prefetch
This commit is contained in:
		
							parent
							
								
									7736d899a9
								
							
						
					
					
						commit
						54deab86f8
					
				@ -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(
 | 
				
			||||||
 | 
				
			|||||||
@ -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>
 | 
				
			||||||
 | 
				
			|||||||
@ -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();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user