forked from EVOgeek/Vmeda.Online
		
	MOBILE-3833 sites: Add required current site function to solve warnings
This commit is contained in:
		
							parent
							
								
									d5d8962766
								
							
						
					
					
						commit
						0d3123d2af
					
				| @ -52,7 +52,7 @@ export class AddonBadgesIssuedBadgePage implements OnInit { | ||||
|      */ | ||||
|     ngOnInit(): void { | ||||
|         this.courseId = CoreNavigator.getRouteNumberParam('courseId') || this.courseId; // Use 0 for site badges.
 | ||||
|         this.userId = CoreNavigator.getRouteNumberParam('userId') || CoreSites.getCurrentSite()!.getUserId(); | ||||
|         this.userId = CoreNavigator.getRouteNumberParam('userId') || CoreSites.getRequiredCurrentSite().getUserId(); | ||||
|         this.badgeHash = CoreNavigator.getRouteParam('badgeHash') || ''; | ||||
| 
 | ||||
|         this.fetchIssuedBadge().finally(() => { | ||||
|  | ||||
| @ -69,12 +69,12 @@ export class AddonBlockTimelineComponent extends CoreBlockBaseComponent implemen | ||||
|      * Component being initialized. | ||||
|      */ | ||||
|     async ngOnInit(): Promise<void> { | ||||
|         this.currentSite = CoreSites.getCurrentSite(); | ||||
|         this.currentSite = CoreSites.getRequiredCurrentSite(); | ||||
| 
 | ||||
|         this.filter = await this.currentSite!.getLocalSiteConfig('AddonBlockTimelineFilter', this.filter); | ||||
|         this.filter = await this.currentSite.getLocalSiteConfig('AddonBlockTimelineFilter', this.filter); | ||||
|         this.switchFilter(this.filter); | ||||
| 
 | ||||
|         this.sort = await this.currentSite!.getLocalSiteConfig('AddonBlockTimelineSort', this.sort); | ||||
|         this.sort = await this.currentSite.getLocalSiteConfig('AddonBlockTimelineSort', this.sort); | ||||
| 
 | ||||
|         super.ngOnInit(); | ||||
|     } | ||||
|  | ||||
| @ -96,7 +96,7 @@ export class AddonCalendarEditEventPage implements OnInit, OnDestroy, CanLeave { | ||||
|         protected fb: FormBuilder, | ||||
|         @Optional() protected svComponent: CoreSplitViewComponent, | ||||
|     ) { | ||||
|         this.currentSite = CoreSites.getCurrentSite()!; | ||||
|         this.currentSite = CoreSites.getRequiredCurrentSite(); | ||||
|         this.errors = { | ||||
|             required: Translate.instant('core.required'), | ||||
|         }; | ||||
|  | ||||
| @ -54,7 +54,7 @@ export class AddonMessagesSendMessageUserHandlerService implements CoreUserProfi | ||||
|      * @return Promise resolved with true if enabled, resolved with false otherwise. | ||||
|      */ | ||||
|     async isEnabledForUser(user: CoreUserProfile): Promise<boolean> { | ||||
|         const currentSite = CoreSites.getCurrentSite()!; | ||||
|         const currentSite = CoreSites.getRequiredCurrentSite(); | ||||
| 
 | ||||
|         // From 3.7 you can send messages to yourself.
 | ||||
|         return user.id != CoreSites.getCurrentSiteUserId() || currentSite.isVersionGreaterEqualThan('3.7'); | ||||
|  | ||||
| @ -134,7 +134,7 @@ export class AddonModBookProvider { | ||||
| 
 | ||||
|         if (!CoreFile.isAvailable()) { | ||||
|             // We return the live URL.
 | ||||
|             return CoreSites.getCurrentSite()!.checkAndFixPluginfileURL(indexUrl); | ||||
|             return CoreSites.getRequiredCurrentSite().checkAndFixPluginfileURL(indexUrl); | ||||
|         } | ||||
| 
 | ||||
|         const siteId = CoreSites.getCurrentSiteId(); | ||||
|  | ||||
| @ -225,7 +225,7 @@ export class AddonModDataHelperProvider { | ||||
|                 let render = ''; | ||||
|                 if (action == AddonModDataAction.MOREURL) { | ||||
|                     // Render more url directly because it can be part of an HTML attribute.
 | ||||
|                     render = CoreSites.getCurrentSite()!.getURL() + '/mod/data/view.php?d={{database.id}}&rid=' + entry.id; | ||||
|                     render = CoreSites.getRequiredCurrentSite().getURL() + '/mod/data/view.php?d={{database.id}}&rid=' + entry.id; | ||||
|                 } else if (action == 'approvalstatus') { | ||||
|                     render = Translate.instant('addon.mod_data.' + (entry.approved ? 'approved' : 'notapproved')); | ||||
|                 } else { | ||||
|  | ||||
| @ -77,7 +77,7 @@ export class AddonModFeedbackFormPage implements OnInit, OnDestroy, CanLeave { | ||||
|     completedOffline = false; | ||||
| 
 | ||||
|     constructor() { | ||||
|         this.currentSite = CoreSites.getCurrentSite()!; | ||||
|         this.currentSite = CoreSites.getRequiredCurrentSite(); | ||||
| 
 | ||||
|         // Refresh online status when changes.
 | ||||
|         this.onlineObserver = Network.onChange().subscribe(() => { | ||||
|  | ||||
| @ -58,7 +58,7 @@ export class AddonModForumPostOptionsMenuComponent implements OnInit, OnDestroy | ||||
|         }); | ||||
| 
 | ||||
|         if (this.post.id > 0) { | ||||
|             const site = CoreSites.getCurrentSite()!; | ||||
|             const site = CoreSites.getRequiredCurrentSite(); | ||||
|             this.url = site.createSiteUrl('/mod/forum/discuss.php', { d: this.post.discussionid.toString() }, 'p' + this.post.id); | ||||
|             this.offlinePost = false; | ||||
|         } else { | ||||
|  | ||||
| @ -298,7 +298,7 @@ export class AddonModForumDiscussionPage implements OnInit, AfterViewInit, OnDes | ||||
|      */ | ||||
|     protected async getUserSort(): Promise<SortType> { | ||||
|         try { | ||||
|             const value = await CoreSites.getCurrentSite()!.getLocalSiteConfig<SortType>('AddonModForumDiscussionSort'); | ||||
|             const value = await CoreSites.getRequiredCurrentSite().getLocalSiteConfig<SortType>('AddonModForumDiscussionSort'); | ||||
| 
 | ||||
|             return value; | ||||
|         } catch (error) { | ||||
| @ -656,7 +656,7 @@ export class AddonModForumDiscussionPage implements OnInit, AfterViewInit, OnDes | ||||
|     changeSort(type: SortType): Promise<void> { | ||||
|         this.discussionLoaded = false; | ||||
|         this.sort = type; | ||||
|         CoreSites.getCurrentSite()!.setLocalSiteConfig('AddonModForumDiscussionSort', this.sort); | ||||
|         CoreSites.getRequiredCurrentSite().setLocalSiteConfig('AddonModForumDiscussionSort', this.sort); | ||||
|         this.content.scrollToTop(); | ||||
| 
 | ||||
|         return this.fetchPosts(); | ||||
|  | ||||
| @ -96,7 +96,7 @@ export class AddonModH5PActivityIndexComponent extends CoreCourseModuleMainActiv | ||||
|     ) { | ||||
|         super('AddonModH5PActivityIndexComponent', content, courseContentsPage); | ||||
| 
 | ||||
|         this.site = CoreSites.getCurrentSite()!; | ||||
|         this.site = CoreSites.getRequiredCurrentSite(); | ||||
|         this.siteCanDownload = this.site.canDownloadFiles() && !CoreH5P.isOfflineDisabledInSite(); | ||||
| 
 | ||||
|         // Listen for messages from the iframe.
 | ||||
|  | ||||
| @ -83,7 +83,7 @@ export class AddonModResourceHelperProvider { | ||||
|             // Error getting directory, there was an error downloading or we're in browser. Return online URL.
 | ||||
|             if (CoreApp.isOnline() && mainFile.fileurl) { | ||||
|                 // This URL is going to be injected in an iframe, we need this to make it work.
 | ||||
|                 return CoreSites.getCurrentSite()!.checkAndFixPluginfileURL(mainFile.fileurl); | ||||
|                 return CoreSites.getRequiredCurrentSite().checkAndFixPluginfileURL(mainFile.fileurl); | ||||
|             } | ||||
| 
 | ||||
|             throw e; | ||||
|  | ||||
| @ -730,7 +730,7 @@ export class AddonModScormOfflineProvider { | ||||
|         } | ||||
| 
 | ||||
|         const scoUserData = scoData?.userdata || {}; | ||||
|         const db = CoreSites.getCurrentSite()!.getDb(); | ||||
|         const db = CoreSites.getRequiredCurrentSite().getDb(); | ||||
|         let lessonStatusInserted = false; | ||||
| 
 | ||||
|         if (forceCompleted) { | ||||
|  | ||||
| @ -664,7 +664,7 @@ export class AddonModWikiIndexComponent extends CoreCourseModuleMainActivityComp | ||||
|         content = content.trim(); | ||||
| 
 | ||||
|         if (content.length > 0) { | ||||
|             const editUrl = CoreTextUtils.concatenatePaths(CoreSites.getCurrentSite()!.getURL(), '/mod/wiki/edit.php'); | ||||
|             const editUrl = CoreTextUtils.concatenatePaths(CoreSites.getRequiredCurrentSite().getURL(), '/mod/wiki/edit.php'); | ||||
|             content = content.replace(/href="edit\.php/g, 'href="' + editUrl); | ||||
|         } | ||||
| 
 | ||||
|  | ||||
| @ -15,10 +15,7 @@ | ||||
| import { CoreConstants } from '@/core/constants'; | ||||
| import { Injectable, Type } from '@angular/core'; | ||||
| import { CoreModuleHandlerBase } from '@features/course/classes/module-base-handler'; | ||||
| import { CoreCourse, CoreCourseAnyModuleData } from '@features/course/services/course'; | ||||
| import { CoreCourseModule } from '@features/course/services/course-helper'; | ||||
| import { CoreCourseModuleHandler, CoreCourseModuleHandlerData } from '@features/course/services/module-delegate'; | ||||
| import { CoreNavigationOptions, CoreNavigator } from '@services/navigator'; | ||||
| import { CoreCourseModuleHandler } from '@features/course/services/module-delegate'; | ||||
| import { makeSingleton } from '@singletons'; | ||||
| import { AddonModWikiIndexComponent } from '../../components/index'; | ||||
| 
 | ||||
| @ -47,26 +44,6 @@ export class AddonModWikiModuleHandlerService extends CoreModuleHandlerBase impl | ||||
|         [CoreConstants.FEATURE_COMMENT]: true, | ||||
|     }; | ||||
| 
 | ||||
|     /** | ||||
|      * @inheritdoc | ||||
|      */ | ||||
|     getData(module: CoreCourseAnyModuleData): CoreCourseModuleHandlerData { | ||||
|         return { | ||||
|             icon: CoreCourse.getModuleIconSrc(this.modName, 'modicon' in module ? module.modicon : undefined), | ||||
|             title: module.name, | ||||
|             class: 'addon-mod_wiki-handler', | ||||
|             showDownloadButton: true, | ||||
|             action: (event: Event, module: CoreCourseModule, courseId: number, options?: CoreNavigationOptions) => { | ||||
|                 options = options || {}; | ||||
|                 options.params = options.params || {}; | ||||
|                 Object.assign(options.params, { module }); | ||||
|                 const routeParams = `/${courseId}/${module.id}/page/root`; | ||||
| 
 | ||||
|                 CoreNavigator.navigateToSitePath(AddonModWikiModuleHandlerService.PAGE_NAME + routeParams, options); | ||||
|             }, | ||||
|         }; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @inheritdoc | ||||
|      */ | ||||
|  | ||||
| @ -22,6 +22,10 @@ import { CanLeaveGuard } from '@guards/can-leave'; | ||||
| import { AddonModWikiEditPage } from './pages/edit/edit'; | ||||
| 
 | ||||
| const routes: Routes = [ | ||||
|     { | ||||
|         path: ':courseId/:cmId', | ||||
|         redirectTo: ':courseId/:cmId/page/root', | ||||
|     }, | ||||
|     { | ||||
|         path: ':courseId/:cmId/page/:hash', | ||||
|         component: AddonModWikiIndexPage, | ||||
|  | ||||
| @ -78,17 +78,17 @@ export type CoreCourseModulePrefetchInfo = { | ||||
|     /** | ||||
|      * Downloaded size. | ||||
|      */ | ||||
|     size?: number; | ||||
|     size: number; | ||||
| 
 | ||||
|     /** | ||||
|      * Downloadable size in a readable format. | ||||
|      */ | ||||
|     sizeReadable?: string; | ||||
|     sizeReadable: string; | ||||
| 
 | ||||
|     /** | ||||
|      * Module status. | ||||
|      */ | ||||
|     status?: string; | ||||
|     status: string; | ||||
| 
 | ||||
|     /** | ||||
|      * Icon's name of the module status. | ||||
| @ -98,12 +98,12 @@ export type CoreCourseModulePrefetchInfo = { | ||||
|     /** | ||||
|      * Time when the module was last downloaded. | ||||
|      */ | ||||
|     downloadTime?: number; | ||||
|     downloadTime: number; | ||||
| 
 | ||||
|     /** | ||||
|      * Download time in a readable format. | ||||
|      */ | ||||
|     downloadTimeReadable?: string; | ||||
|     downloadTimeReadable: string; | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
| @ -539,18 +539,14 @@ export class CoreCourseHelperProvider { | ||||
|             total: true, | ||||
|         }; | ||||
| 
 | ||||
|         if (!section && !sections) { | ||||
|             throw new CoreError('Either section or list of sections needs to be supplied.'); | ||||
|         } | ||||
| 
 | ||||
|         // Calculate the size of the download.
 | ||||
|         if (section && section.id != CoreCourseProvider.ALL_SECTIONS_ID) { | ||||
|             sizeSum = await CoreCourseModulePrefetchDelegate.getDownloadSize(section.modules, courseId); | ||||
| 
 | ||||
|             // Check if the section has embedded files in the description.
 | ||||
|             hasEmbeddedFiles = CoreFilepool.extractDownloadableFilesFromHtml(section.summary).length > 0; | ||||
|         } else { | ||||
|             await Promise.all(sections!.map(async (section) => { | ||||
|         } else if (sections) { | ||||
|             await Promise.all(sections.map(async (section) => { | ||||
|                 if (section.id == CoreCourseProvider.ALL_SECTIONS_ID) { | ||||
|                     return; | ||||
|                 } | ||||
| @ -565,6 +561,8 @@ export class CoreCourseHelperProvider { | ||||
|                     hasEmbeddedFiles = true; | ||||
|                 } | ||||
|             })); | ||||
|         } else { | ||||
|             throw new CoreError('Either section or list of sections needs to be supplied.'); | ||||
|         } | ||||
| 
 | ||||
|         if (hasEmbeddedFiles) { | ||||
| @ -1057,7 +1055,7 @@ export class CoreCourseHelperProvider { | ||||
| 
 | ||||
|         const moduleInfo = await this.getModulePrefetchInfo(module, courseId, invalidateCache, component); | ||||
| 
 | ||||
|         instance.size = moduleInfo.size && moduleInfo.size > 0 ? moduleInfo.sizeReadable! : ''; | ||||
|         instance.size = moduleInfo.sizeReadable; | ||||
|         instance.prefetchStatusIcon = moduleInfo.statusIcon; | ||||
|         instance.prefetchStatus = moduleInfo.status; | ||||
| 
 | ||||
| @ -1443,7 +1441,7 @@ export class CoreCourseHelperProvider { | ||||
|         invalidateCache?: boolean, | ||||
|         component?: string, | ||||
|     ): Promise<CoreCourseModulePrefetchInfo> { | ||||
|         const moduleInfo: CoreCourseModulePrefetchInfo = {}; | ||||
| 
 | ||||
|         const siteId = CoreSites.getCurrentSiteId(); | ||||
| 
 | ||||
|         if (invalidateCache) { | ||||
| @ -1459,45 +1457,59 @@ export class CoreCourseHelperProvider { | ||||
|         ]); | ||||
| 
 | ||||
|         // Treat stored size.
 | ||||
|         moduleInfo.size = results[0]; | ||||
|         moduleInfo.sizeReadable = CoreTextUtils.bytesToSize(results[0], 2); | ||||
|         const size = results[0]; | ||||
|         const sizeReadable = CoreTextUtils.bytesToSize(results[0], 2); | ||||
| 
 | ||||
|         // Treat module status.
 | ||||
|         moduleInfo.status = results[1]; | ||||
|         const status = results[1]; | ||||
|         let statusIcon: string | undefined; | ||||
|         switch (results[1]) { | ||||
|             case CoreConstants.NOT_DOWNLOADED: | ||||
|                 moduleInfo.statusIcon = CoreConstants.ICON_NOT_DOWNLOADED; | ||||
|                 statusIcon = CoreConstants.ICON_NOT_DOWNLOADED; | ||||
|                 break; | ||||
|             case CoreConstants.DOWNLOADING: | ||||
|                 moduleInfo.statusIcon = CoreConstants.ICON_DOWNLOADING; | ||||
|                 statusIcon = CoreConstants.ICON_DOWNLOADING; | ||||
|                 break; | ||||
|             case CoreConstants.OUTDATED: | ||||
|                 moduleInfo.statusIcon = CoreConstants.ICON_OUTDATED; | ||||
|                 statusIcon = CoreConstants.ICON_OUTDATED; | ||||
|                 break; | ||||
|             case CoreConstants.DOWNLOADED: | ||||
|                 break; | ||||
|             default: | ||||
|                 moduleInfo.statusIcon = ''; | ||||
|                 statusIcon = ''; | ||||
|                 break; | ||||
|         } | ||||
| 
 | ||||
|         // Treat download time.
 | ||||
|         if (!results[2] || !results[2].downloadTime || !CoreFileHelper.isStateDownloaded(results[2].status || '')) { | ||||
|             // Not downloaded.
 | ||||
|             moduleInfo.downloadTime = 0; | ||||
| 
 | ||||
|             return moduleInfo; | ||||
|             return { | ||||
|                 size, | ||||
|                 sizeReadable, | ||||
|                 status, | ||||
|                 statusIcon, | ||||
|                 downloadTime: 0, | ||||
|                 downloadTimeReadable: '', | ||||
|             }; | ||||
|         } | ||||
| 
 | ||||
|         const now = CoreTimeUtils.timestamp(); | ||||
|         moduleInfo.downloadTime = results[2].downloadTime; | ||||
|         const downloadTime = results[2].downloadTime; | ||||
|         let downloadTimeReadable = ''; | ||||
|         if (now - results[2].downloadTime < 7 * 86400) { | ||||
|             moduleInfo.downloadTimeReadable = moment(results[2].downloadTime * 1000).fromNow(); | ||||
|             downloadTimeReadable = moment(results[2].downloadTime * 1000).fromNow(); | ||||
|         } else { | ||||
|             moduleInfo.downloadTimeReadable = moment(results[2].downloadTime * 1000).calendar(); | ||||
|             downloadTimeReadable = moment(results[2].downloadTime * 1000).calendar(); | ||||
|         } | ||||
| 
 | ||||
|         return moduleInfo; | ||||
|         return { | ||||
|             size, | ||||
|             sizeReadable, | ||||
|             status, | ||||
|             statusIcon, | ||||
|             downloadTime, | ||||
|             downloadTimeReadable, | ||||
|         }; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -1690,20 +1702,20 @@ export class CoreCourseHelperProvider { | ||||
|         courseMenuHandlers: CoreCourseOptionsMenuHandlerToDisplay[], | ||||
|         siteId?: string, | ||||
|     ): Promise<void> { | ||||
|         siteId = siteId || CoreSites.getCurrentSiteId(); | ||||
|         const requiredSiteId = siteId || CoreSites.getRequiredCurrentSite().getId(); | ||||
| 
 | ||||
|         if (this.courseDwnPromises[siteId] && this.courseDwnPromises[siteId][course.id]) { | ||||
|         if (this.courseDwnPromises[requiredSiteId] && this.courseDwnPromises[requiredSiteId][course.id] !== undefined) { | ||||
|             // There's already a download ongoing for this course, return the promise.
 | ||||
|             return this.courseDwnPromises[siteId][course.id]; | ||||
|         } else if (!this.courseDwnPromises[siteId]) { | ||||
|             this.courseDwnPromises[siteId] = {}; | ||||
|             return this.courseDwnPromises[requiredSiteId][course.id]; | ||||
|         } else if (!this.courseDwnPromises[requiredSiteId]) { | ||||
|             this.courseDwnPromises[requiredSiteId] = {}; | ||||
|         } | ||||
| 
 | ||||
|         // First of all, mark the course as being downloaded.
 | ||||
|         this.courseDwnPromises[siteId][course.id] = CoreCourse.setCourseStatus( | ||||
|         this.courseDwnPromises[requiredSiteId][course.id] = CoreCourse.setCourseStatus( | ||||
|             course.id, | ||||
|             CoreConstants.DOWNLOADING, | ||||
|             siteId, | ||||
|             requiredSiteId, | ||||
|         ).then(async () => { | ||||
| 
 | ||||
|             const promises: Promise<unknown>[] = []; | ||||
| @ -1740,17 +1752,17 @@ export class CoreCourseHelperProvider { | ||||
|             await CoreUtils.allPromises(promises); | ||||
| 
 | ||||
|             // Download success, mark the course as downloaded.
 | ||||
|             return CoreCourse.setCourseStatus(course.id, CoreConstants.DOWNLOADED, siteId); | ||||
|             return CoreCourse.setCourseStatus(course.id, CoreConstants.DOWNLOADED, requiredSiteId); | ||||
|         }).catch(async (error) => { | ||||
|             // Error, restore previous status.
 | ||||
|             await CoreCourse.setCoursePreviousStatus(course.id, siteId); | ||||
|             await CoreCourse.setCoursePreviousStatus(course.id, requiredSiteId); | ||||
| 
 | ||||
|             throw error; | ||||
|         }).finally(() => { | ||||
|             delete this.courseDwnPromises[siteId!][course.id]; | ||||
|             delete this.courseDwnPromises[requiredSiteId][course.id]; | ||||
|         }); | ||||
| 
 | ||||
|         return this.courseDwnPromises[siteId][course.id]; | ||||
|         return this.courseDwnPromises[requiredSiteId][course.id]; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | ||||
| @ -70,7 +70,7 @@ export class CoreCourseModuleDefaultHandler implements CoreCourseModuleHandler { | ||||
|                     e.preventDefault(); | ||||
|                     e.stopPropagation(); | ||||
| 
 | ||||
|                     CoreSites.requireCurrentSite().openInBrowserWithAutoLoginIfSameSite(url); | ||||
|                     CoreSites.getRequiredCurrentSite().openInBrowserWithAutoLoginIfSameSite(url); | ||||
|                 }, | ||||
|             }]; | ||||
|         } | ||||
|  | ||||
| @ -305,7 +305,7 @@ export class CoreSitesProvider { | ||||
|         if (data.errorcode && (data.errorcode == 'enablewsdescription' || data.errorcode == 'requirecorrectaccess')) { | ||||
|             throw new CoreSiteError({ | ||||
|                 errorcode: data.errorcode, | ||||
|                 message: data.error!, | ||||
|                 message: data.error ?? '', | ||||
|             }); | ||||
|         } | ||||
| 
 | ||||
| @ -816,11 +816,24 @@ export class CoreSitesProvider { | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get current site. | ||||
|      * Get current site or undefined if none. | ||||
|      * | ||||
|      * @return Current site or undefined if none. | ||||
|      */ | ||||
|     getCurrentSite(): CoreSite | undefined { | ||||
|         return this.currentSite; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get current site or fail if none. | ||||
|      * | ||||
|      * @return Current site. | ||||
|      */ | ||||
|     getCurrentSite(): CoreSite | undefined { | ||||
|     getRequiredCurrentSite(): CoreSite { | ||||
|         if (!this.currentSite) { | ||||
|             throw new CoreError('You aren\'t authenticated in any site.'); | ||||
|         } | ||||
| 
 | ||||
|         return this.currentSite; | ||||
|     } | ||||
| 
 | ||||
| @ -1487,7 +1500,9 @@ export class CoreSitesProvider { | ||||
|             return Promise.resolve(); | ||||
|         } | ||||
| 
 | ||||
|         if (this.siteSchemasMigration[site.id]) { | ||||
|         const siteId = site.id; | ||||
| 
 | ||||
|         if (this.siteSchemasMigration[site.id] !== undefined) { | ||||
|             return this.siteSchemasMigration[site.id]; | ||||
|         } | ||||
| 
 | ||||
| @ -1500,7 +1515,7 @@ export class CoreSitesProvider { | ||||
|         this.siteSchemasMigration[site.id] = promise; | ||||
| 
 | ||||
|         return promise.finally(() => { | ||||
|             delete this.siteSchemasMigration[site.id!]; | ||||
|             delete this.siteSchemasMigration[siteId]; | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user