forked from CIT/Vmeda.Online
		
	MOBILE-3780 core: Fix spinner not shown in forum when refreshing
The variable loaded has been renamed to showLoading in index components
This commit is contained in:
		
							parent
							
								
									40a0d63394
								
							
						
					
					
						commit
						3a51b361fd
					
				@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -122,10 +122,11 @@
 | 
			
		||||
    </ng-container>
 | 
			
		||||
 | 
			
		||||
    <!-- If it's a student, display his submission. -->
 | 
			
		||||
    <addon-mod-assign-submission *ngIf="loaded && !canViewAllSubmissions && canViewOwnSubmission" [courseId]="courseId"
 | 
			
		||||
    <addon-mod-assign-submission *ngIf="!showLoading && !canViewAllSubmissions && canViewOwnSubmission" [courseId]="courseId"
 | 
			
		||||
        [moduleId]="module.id">
 | 
			
		||||
    </addon-mod-assign-submission>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-page">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-page">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -112,5 +112,6 @@
 | 
			
		||||
    </ng-container>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -115,14 +115,14 @@ export class AddonModBBBIndexComponent extends CoreCourseModuleMainActivityCompo
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            await AddonModBBB.invalidateAllGroupsMeetingInfo(this.bbb.id);
 | 
			
		||||
 | 
			
		||||
            await this.fetchMeetingInfo();
 | 
			
		||||
        } finally {
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            this.showLoading = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -148,14 +148,14 @@ export class AddonModBBBIndexComponent extends CoreCourseModuleMainActivityCompo
 | 
			
		||||
     * @return Promise resolved when done.
 | 
			
		||||
     */
 | 
			
		||||
    async groupChanged(): Promise<void> {
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            await this.fetchMeetingInfo();
 | 
			
		||||
        } catch (error) {
 | 
			
		||||
            CoreDomUtils.showErrorModal(error);
 | 
			
		||||
        } finally {
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            this.showLoading = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -41,5 +41,6 @@
 | 
			
		||||
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-padding">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-padding">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -30,5 +30,6 @@
 | 
			
		||||
    </ng-container>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -135,7 +135,8 @@
 | 
			
		||||
    </ion-card>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
<!-- Template to render a choice option label. -->
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -120,7 +120,8 @@
 | 
			
		||||
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
<ion-fab slot="fixed" core-fab vertical="bottom" horizontal="end" *ngIf="canAdd">
 | 
			
		||||
 | 
			
		||||
@ -133,7 +133,7 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp
 | 
			
		||||
        // Refresh entries on change.
 | 
			
		||||
        this.entryChangedObserver = CoreEvents.on(AddonModDataProvider.ENTRY_CHANGED, (eventData) => {
 | 
			
		||||
            if (this.database?.id == eventData.dataId) {
 | 
			
		||||
                this.loaded = false;
 | 
			
		||||
                this.showLoading = true;
 | 
			
		||||
 | 
			
		||||
                return this.loadContent(true);
 | 
			
		||||
            }
 | 
			
		||||
@ -191,7 +191,7 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp
 | 
			
		||||
     */
 | 
			
		||||
    protected isRefreshSyncNeeded(syncEventData: AddonModDataAutoSyncData): boolean {
 | 
			
		||||
        if (this.database && syncEventData.dataId == this.database.id && syncEventData.entryId === undefined) {
 | 
			
		||||
            this.loaded = false;
 | 
			
		||||
            this.showLoading = true;
 | 
			
		||||
            // Refresh the data.
 | 
			
		||||
            this.content?.scrollToTop();
 | 
			
		||||
 | 
			
		||||
@ -404,7 +404,7 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp
 | 
			
		||||
     * @return Resolved when done.
 | 
			
		||||
     */
 | 
			
		||||
    async searchEntries(page: number): Promise<void> {
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
        this.search.page = page;
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
@ -414,7 +414,7 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp
 | 
			
		||||
        } catch (error) {
 | 
			
		||||
            CoreDomUtils.showErrorModalDefault(error, 'core.course.errorgetmodule', true);
 | 
			
		||||
        } finally {
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            this.showLoading = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -35,7 +35,8 @@
 | 
			
		||||
    </core-tabs>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
<ng-template #basicInfo>
 | 
			
		||||
 | 
			
		||||
@ -97,7 +97,7 @@ export class AddonModFeedbackIndexComponent extends CoreCourseModuleMainActivity
 | 
			
		||||
 | 
			
		||||
            this.tabsLoaded.analysis = false;
 | 
			
		||||
            this.tabsLoaded.overview = false;
 | 
			
		||||
            this.loaded = false;
 | 
			
		||||
            this.showLoading = true;
 | 
			
		||||
 | 
			
		||||
            // Prefetch data if needed.
 | 
			
		||||
            if (!data.offline && this.isPrefetched()) {
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info *ngIf="!subfolder" [module]="module" [description]="description" [component]="component"
 | 
			
		||||
@ -32,5 +32,6 @@
 | 
			
		||||
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -55,7 +55,7 @@ export class AddonModFolderIndexComponent extends CoreCourseModuleMainResourceCo
 | 
			
		||||
            this.description = this.folderInstance ? this.folderInstance.intro : this.module.description;
 | 
			
		||||
            this.contents = this.subfolder;
 | 
			
		||||
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            this.showLoading = false;
 | 
			
		||||
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
@ -70,7 +70,7 @@ export class AddonModFolderIndexComponent extends CoreCourseModuleMainResourceCo
 | 
			
		||||
                // Ignore errors.
 | 
			
		||||
            }
 | 
			
		||||
        } finally {
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            this.showLoading = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="subfolder || !activityComponent?.loaded"
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="subfolder || activityComponent?.showLoading"
 | 
			
		||||
        (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
@ -7,11 +7,11 @@
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-split-view>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="discussions && !discussions.loaded" (ionRefresh)="doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="showLoading || (discussions && !discussions.loaded)" (ionRefresh)="doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
    <core-loading [hideUntil]="discussions && discussions.loaded">
 | 
			
		||||
    <core-loading [hideUntil]="!showLoading && discussions && discussions.loaded">
 | 
			
		||||
        <!-- Activity info. -->
 | 
			
		||||
        <core-course-module-info [module]="module" [description]="forum && forum.type != 'single' && description" [component]="component"
 | 
			
		||||
            [componentId]="componentId" [courseId]="courseId" [hasDataToSync]="hasOffline || hasOfflineRatings">
 | 
			
		||||
@ -114,7 +114,7 @@
 | 
			
		||||
        </ng-container>
 | 
			
		||||
    </core-loading>
 | 
			
		||||
 | 
			
		||||
    <core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    <core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
        (completionChanged)="onCompletionChange()">
 | 
			
		||||
    </core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-split-view>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!loaded" (ionRefresh)="doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="showLoading" (ionRefresh)="doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,7 @@
 | 
			
		||||
        [autoFocus]="true" [lengthCheck]="2" (onClear)="toggleSearch()" searchArea="AddonModGlossary-{{module.id}}">
 | 
			
		||||
    </core-search-box>
 | 
			
		||||
 | 
			
		||||
    <core-loading [hideUntil]="loaded">
 | 
			
		||||
    <core-loading [hideUntil]="!showLoading">
 | 
			
		||||
        <!-- Activity info. -->
 | 
			
		||||
        <core-course-module-info *ngIf="!isSearch" [module]="module" [description]="description" [component]="component"
 | 
			
		||||
            [componentId]="componentId" [courseId]="courseId" [hasDataToSync]="hasOffline || hasOfflineRatings">
 | 
			
		||||
@ -72,7 +72,7 @@
 | 
			
		||||
        </core-infinite-loading>
 | 
			
		||||
    </core-loading>
 | 
			
		||||
 | 
			
		||||
    <core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    <core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
        (completionChanged)="onCompletionChange()">
 | 
			
		||||
    </core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -393,7 +393,7 @@ export class AddonModGlossaryIndexComponent extends CoreCourseModuleMainActivity
 | 
			
		||||
        this.loadingMessage = Translate.instant('core.loading');
 | 
			
		||||
        this.content?.scrollToTop();
 | 
			
		||||
        this.switchMode(mode);
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
        this.loadContent();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -411,7 +411,7 @@ export class AddonModGlossaryIndexComponent extends CoreCourseModuleMainActivity
 | 
			
		||||
     */
 | 
			
		||||
    search(query: string): void {
 | 
			
		||||
        this.loadingMessage = Translate.instant('core.searching');
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
 | 
			
		||||
        this.entries?.getSource().search(query);
 | 
			
		||||
        this.loadContent();
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-padding">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-padding">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -68,5 +68,6 @@
 | 
			
		||||
    </core-h5p-iframe>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<!-- Buttons to add to the header. -->
 | 
			
		||||
<core-navbar-buttons slot="end">
 | 
			
		||||
    <ion-button *ngIf="loaded" (click)="showToc()" aria-haspopup="true" [attr.aria-label]="'addon.mod_imscp.toc' | translate">
 | 
			
		||||
    <ion-button *ngIf="!showLoading" (click)="showToc()" aria-haspopup="true" [attr.aria-label]="'addon.mod_imscp.toc' | translate">
 | 
			
		||||
        <ion-icon name="fas-bookmark" slot="icon-only" aria-hidden="true"></ion-icon>
 | 
			
		||||
    </ion-button>
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-padding">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-padding">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module">
 | 
			
		||||
@ -26,9 +26,10 @@
 | 
			
		||||
    <div class="addon-mod-imscp-container">
 | 
			
		||||
        <core-navigation-bar [items]="navigationItems" (action)="loadItem($event)">
 | 
			
		||||
        </core-navigation-bar>
 | 
			
		||||
        <core-iframe *ngIf="loaded" [src]="src" [showFullscreenOnToolbar]="true" [autoFullscreenOnRotate]="true"></core-iframe>
 | 
			
		||||
        <core-iframe *ngIf="!showLoading" [src]="src" [showFullscreenOnToolbar]="true" [autoFullscreenOnRotate]="true"></core-iframe>
 | 
			
		||||
    </div>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -6,8 +6,8 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
    <core-tabs [hideUntil]="loaded" [selectedIndex]="selectedTab">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
    <core-tabs [hideUntil]="!showLoading" [selectedIndex]="selectedTab">
 | 
			
		||||
        <!-- Index/Preview tab. -->
 | 
			
		||||
        <core-tab [title]="'addon.mod_lesson.preview' | translate" (ionSelect)="indexSelected()">
 | 
			
		||||
            <ng-template>
 | 
			
		||||
@ -278,5 +278,6 @@
 | 
			
		||||
    </core-tabs>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -618,7 +618,7 @@ export class AddonModLessonIndexComponent extends CoreCourseModuleMainActivityCo
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            await this.validatePassword(<string> password);
 | 
			
		||||
@ -635,7 +635,7 @@ export class AddonModLessonIndexComponent extends CoreCourseModuleMainActivityCo
 | 
			
		||||
        } catch (error) {
 | 
			
		||||
            CoreDomUtils.showErrorModal(error);
 | 
			
		||||
        } finally {
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            this.showLoading = false;
 | 
			
		||||
 | 
			
		||||
            CoreForms.triggerFormSubmittedEvent(this.formElement, true, this.siteId);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-padding">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-padding">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="displayDescription && description" [component]="component"
 | 
			
		||||
@ -21,5 +21,6 @@
 | 
			
		||||
    </div>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-padding">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-padding">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="displayDescription && description" [component]="component"
 | 
			
		||||
@ -32,5 +32,6 @@
 | 
			
		||||
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -206,5 +206,6 @@
 | 
			
		||||
    </ion-card>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -455,13 +455,13 @@ export class AddonModQuizIndexComponent extends CoreCourseModuleMainActivityComp
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Refresh data.
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
        this.content?.scrollToTop();
 | 
			
		||||
 | 
			
		||||
        await promise;
 | 
			
		||||
        await CoreUtils.ignoreErrors(this.refreshContent(true));
 | 
			
		||||
 | 
			
		||||
        this.loaded = true;
 | 
			
		||||
        this.showLoading = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@ -547,8 +547,7 @@ export class AddonModQuizIndexComponent extends CoreCourseModuleMainActivityComp
 | 
			
		||||
 | 
			
		||||
        if (status == CoreConstants.DOWNLOADED && previousStatus == CoreConstants.DOWNLOADING) {
 | 
			
		||||
            // Quiz downloaded now, maybe a new attempt was created. Load content again.
 | 
			
		||||
            this.loaded = false;
 | 
			
		||||
            this.loadContent();
 | 
			
		||||
            this.showLoadingAndFetch();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-padding">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-padding">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [courseId]="courseId" [description]="displayDescription && description"
 | 
			
		||||
@ -97,5 +97,6 @@
 | 
			
		||||
    </ng-container>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded || activityComponent?.mode == 'iframe'"
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading || activityComponent?.mode == 'iframe'"
 | 
			
		||||
        (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-padding">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-padding">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -21,7 +21,7 @@
 | 
			
		||||
        </ion-item>
 | 
			
		||||
    </ion-card>
 | 
			
		||||
 | 
			
		||||
    <ng-container *ngIf="scorm && loaded && !scorm.warningMessage">
 | 
			
		||||
    <ng-container *ngIf="scorm && !showLoading && !scorm.warningMessage">
 | 
			
		||||
        <!-- Attempts status. -->
 | 
			
		||||
        <ion-card *ngIf="(scorm.displayattemptstatus || offlineAttempts.length) && !skip">
 | 
			
		||||
            <ion-card-header class="ion-text-wrap">
 | 
			
		||||
@ -217,5 +217,6 @@
 | 
			
		||||
    </ng-container>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded" class="safe-area-padding">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading" class="safe-area-padding">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="survey && !survey.surveydone && !hasOffline && description"
 | 
			
		||||
@ -131,5 +131,6 @@
 | 
			
		||||
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="displayDescription && description" [component]="component"
 | 
			
		||||
@ -46,5 +46,6 @@
 | 
			
		||||
    </ion-list>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@
 | 
			
		||||
        <ion-icon *ngIf="groupWiki" name="fas-users" aria-hidden="true"></ion-icon>
 | 
			
		||||
    </ion-button>
 | 
			
		||||
 | 
			
		||||
    <ion-button *ngIf="loaded && currentPageObj" (click)="openMap()" [attr.aria-label]="'addon.mod_wiki.map' | translate"
 | 
			
		||||
    <ion-button *ngIf="!showLoading && currentPageObj" (click)="openMap()" [attr.aria-label]="'addon.mod_wiki.map' | translate"
 | 
			
		||||
        aria-haspopup="true">
 | 
			
		||||
        <ion-icon name="fas-map" aria-hidden="true"></ion-icon>
 | 
			
		||||
    </ion-button>
 | 
			
		||||
@ -27,7 +27,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [description]="description" [component]="component" [componentId]="componentId"
 | 
			
		||||
@ -71,7 +71,8 @@
 | 
			
		||||
    </div>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
<ion-fab slot="fixed" core-fab vertical="bottom" horizontal="end" *ngIf="canEdit">
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
</core-navbar-buttons>
 | 
			
		||||
 | 
			
		||||
<!-- Content. -->
 | 
			
		||||
<core-loading [hideUntil]="loaded">
 | 
			
		||||
<core-loading [hideUntil]="!showLoading">
 | 
			
		||||
 | 
			
		||||
    <!-- Activity info. -->
 | 
			
		||||
    <core-course-module-info [module]="module" [hasDataToSync]="hasOffline">
 | 
			
		||||
@ -233,5 +233,6 @@
 | 
			
		||||
    </div>
 | 
			
		||||
</core-loading>
 | 
			
		||||
 | 
			
		||||
<core-course-module-navigation [hidden]="!loaded" [courseId]="courseId" [currentModule]="module" (completionChanged)="onCompletionChange()">
 | 
			
		||||
<core-course-module-navigation [hidden]="showLoading" [courseId]="courseId" [currentModule]="module"
 | 
			
		||||
    (completionChanged)="onCompletionChange()">
 | 
			
		||||
</core-course-module-navigation>
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="!activityComponent?.loaded" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
    <ion-refresher slot="fixed" [disabled]="activityComponent?.showLoading" (ionRefresh)="activityComponent?.doRefresh($event.target)">
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -116,7 +116,7 @@ export class CoreCourseModuleMainActivityComponent extends CoreCourseModuleMainR
 | 
			
		||||
     * @return Resolved when done.
 | 
			
		||||
     */
 | 
			
		||||
    protected async showLoadingAndFetch(sync: boolean = false, showErrors: boolean = false): Promise<void> {
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
        this.content?.scrollToTop();
 | 
			
		||||
 | 
			
		||||
        await this.loadContent(false, sync, showErrors);
 | 
			
		||||
@ -130,7 +130,7 @@ export class CoreCourseModuleMainActivityComponent extends CoreCourseModuleMainR
 | 
			
		||||
     * @return Resolved when done.
 | 
			
		||||
     */
 | 
			
		||||
    protected showLoadingAndRefresh(sync: boolean = false, showErrors: boolean = false): Promise<void> {
 | 
			
		||||
        this.loaded = false;
 | 
			
		||||
        this.showLoading = true;
 | 
			
		||||
        this.content?.scrollToTop();
 | 
			
		||||
 | 
			
		||||
        return this.refreshContent(sync, showErrors);
 | 
			
		||||
@ -177,7 +177,7 @@ export class CoreCourseModuleMainActivityComponent extends CoreCourseModuleMainR
 | 
			
		||||
 | 
			
		||||
            CoreDomUtils.showErrorModalDefault(error, this.fetchContentDefaultError, true);
 | 
			
		||||
        } finally {
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            this.showLoading = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -52,7 +52,7 @@ export class CoreCourseModuleMainResourceComponent implements OnInit, OnDestroy,
 | 
			
		||||
    @Input() courseId!: number; // Course ID the component belongs to.
 | 
			
		||||
    @Output() dataRetrieved = new EventEmitter<unknown>(); // Called to notify changes the index page from the main component.
 | 
			
		||||
 | 
			
		||||
    loaded = false; // If the component has been loaded.
 | 
			
		||||
    showLoading = true; // Whether to show loading.
 | 
			
		||||
    component?: string; // Component name.
 | 
			
		||||
    componentId?: number; // Component ID.
 | 
			
		||||
    hasOffline = false; // Resources don't have any data to sync.
 | 
			
		||||
@ -199,7 +199,7 @@ export class CoreCourseModuleMainResourceComponent implements OnInit, OnDestroy,
 | 
			
		||||
 | 
			
		||||
            CoreDomUtils.showErrorModalDefault(error, this.fetchContentDefaultError, true);
 | 
			
		||||
        } finally {
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            this.showLoading = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -416,12 +416,12 @@ export class CoreCourseModuleMainResourceComponent implements OnInit, OnDestroy,
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        if (data) {
 | 
			
		||||
            if (this.loaded && (data.action == 'refresh' || data.action == 'sync')) {
 | 
			
		||||
                this.loaded = false;
 | 
			
		||||
            if (!this.showLoading && (data.action == 'refresh' || data.action == 'sync')) {
 | 
			
		||||
                this.showLoading = true;
 | 
			
		||||
                try {
 | 
			
		||||
                    await this.doRefresh(undefined, data.action == 'sync');
 | 
			
		||||
                } finally {
 | 
			
		||||
                    this.loaded = true;
 | 
			
		||||
                    this.showLoading = false;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -22,6 +22,7 @@ information provided here is intended especially for developers.
 | 
			
		||||
- The parameters of the following functions in CoreCourseHelper have changed: navigateToModuleByInstance, navigateToModule, openModule.
 | 
			
		||||
- fillContextMenu, expandDescription, gotoBlog, prefetch and removeFiles functions have been removed from CoreCourseModuleMainResourceComponent.
 | 
			
		||||
- contextMenuPrefetch and fillContextMenu have been removed from CoreCourseHelper.
 | 
			
		||||
-The variable "loaded" in CoreCourseModuleMainResourceComponent has been changed to "showLoading" to reflect its purpose better.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user