MOBILE-4362 glossary: Fix some pages not prefetched

This commit is contained in:
Dani Palou 2023-10-25 15:48:42 +02:00
parent e958210df0
commit e9601aee13

View File

@ -291,16 +291,16 @@ export class AddonModGlossaryProvider {
glossaryId: number, glossaryId: number,
options: AddonModGlossaryGetEntriesOptions = {}, options: AddonModGlossaryGetEntriesOptions = {},
): Promise<AddonModGlossaryGetEntriesWSResponse> { ): Promise<AddonModGlossaryGetEntriesWSResponse> {
options.from = options.from || 0; const from = options.from || 0;
options.limit = options.limit || AddonModGlossaryProvider.LIMIT_ENTRIES; const limit = options.limit || AddonModGlossaryProvider.LIMIT_ENTRIES;
const site = await CoreSites.getSite(options.siteId); const site = await CoreSites.getSite(options.siteId);
const params: AddonModGlossaryGetEntriesByLetterWSParams = { const params: AddonModGlossaryGetEntriesByLetterWSParams = {
id: glossaryId, id: glossaryId,
letter: 'ALL', letter: 'ALL',
from: options.from, from,
limit: options.limit, limit,
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getEntriesByLetterCacheKey(glossaryId), cacheKey: this.getEntriesByLetterCacheKey(glossaryId),
@ -316,9 +316,9 @@ export class AddonModGlossaryProvider {
preSets, preSets,
); );
if (options.limit == AddonModGlossaryProvider.LIMIT_ENTRIES) { if (limit === AddonModGlossaryProvider.LIMIT_ENTRIES) {
// Store entries in background, don't block the user for this. // Store entries in background, don't block the user for this.
CoreUtils.ignoreErrors(this.storeEntries(glossaryId, result.entries, options.from, site.getId())); CoreUtils.ignoreErrors(this.storeEntries(glossaryId, result.entries, from, site.getId()));
} }
return result; return result;
@ -446,13 +446,13 @@ export class AddonModGlossaryProvider {
site: CoreSite, site: CoreSite,
options: AddonModGlossaryGetCategoriesOptions = {}, options: AddonModGlossaryGetCategoriesOptions = {},
): Promise<AddonModGlossaryCategory[]> { ): Promise<AddonModGlossaryCategory[]> {
options.from = options.from || 0; const from = options.from || 0;
options.limit = options.limit || AddonModGlossaryProvider.LIMIT_CATEGORIES; const limit = options.limit || AddonModGlossaryProvider.LIMIT_CATEGORIES;
const params: AddonModGlossaryGetCategoriesWSParams = { const params: AddonModGlossaryGetCategoriesWSParams = {
id: glossaryId, id: glossaryId,
from: options.from, from,
limit: options.limit, limit,
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getCategoriesCacheKey(glossaryId), cacheKey: this.getCategoriesCacheKey(glossaryId),
@ -465,11 +465,12 @@ export class AddonModGlossaryProvider {
const response = await site.read<AddonModGlossaryGetCategoriesWSResponse>('mod_glossary_get_categories', params, preSets); const response = await site.read<AddonModGlossaryGetCategoriesWSResponse>('mod_glossary_get_categories', params, preSets);
categories = categories.concat(response.categories); categories = categories.concat(response.categories);
const canLoadMore = (options.from + options.limit) < response.count; const canLoadMore = (from + limit) < response.count;
if (canLoadMore) { if (canLoadMore) {
options.from += options.limit; return this.getCategories(glossaryId, categories, site, {
...options,
return this.getCategories(glossaryId, categories, site, options); from: from + limit,
});
} }
return categories; return categories;