Skip to content

Commit c19edbc

Browse files
authored
Merge pull request #4368 from crazyserver/MOBILE-4653
Mobile 4653
2 parents 6db6998 + b8d2e42 commit c19edbc

File tree

104 files changed

+2483
-1660
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+2483
-1660
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ os: linux
22
dist: noble
33
node_js: 20
44
jdk:
5-
- openjdk23
5+
- openjdk17
66

77
git:
88
depth: 3

src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/recentlyaccesseditems.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
// limitations under the License.
1414

1515
import { Component, OnInit } from '@angular/core';
16-
import { CoreSites } from '@services/sites';
1716
import { CoreBlockBaseComponent } from '@features/block/classes/base-block-component';
1817
import {
1918
AddonBlockRecentlyAccessedItems,
@@ -23,6 +22,7 @@ import { CoreText } from '@singletons/text';
2322
import { CoreLoadings } from '@services/overlays/loadings';
2423
import { CoreUtils } from '@singletons/utils';
2524
import { CoreSharedModule } from '@/core/shared.module';
25+
import { CoreContentLinksHelper } from '@features/contentlinks/services/contentlinks-helper';
2626

2727
/**
2828
* Component to render a recently accessed items block.
@@ -82,7 +82,6 @@ export class AddonBlockRecentlyAccessedItemsComponent extends CoreBlockBaseCompo
8282
*
8383
* @param e Click event.
8484
* @param item Activity item info.
85-
* @returns Promise resolved when done.
8685
*/
8786
async action(e: Event, item: AddonBlockRecentlyAccessedItemsItemCalculatedData): Promise<void> {
8887
e.preventDefault();
@@ -92,7 +91,7 @@ export class AddonBlockRecentlyAccessedItemsComponent extends CoreBlockBaseCompo
9291
const modal = await CoreLoadings.show();
9392

9493
try {
95-
await CoreSites.visitLink(url);
94+
await CoreContentLinksHelper.visitLink(url);
9695
} finally {
9796
modal.dismiss();
9897
}

src/addons/block/recentlyaccesseditems/services/recentlyaccesseditems.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import { Injectable } from '@angular/core';
1616
import { CoreSites } from '@services/sites';
17-
import { CoreDomUtils } from '@services/utils/dom';
17+
import { CoreDom } from '@singletons/dom';
1818
import { CoreCourseModuleHelper } from '@features/course/services/course-module-helper';
1919
import { CoreSiteWSPreSets } from '@classes/sites/authenticated-site';
2020
import { makeSingleton } from '@singletons';
@@ -67,10 +67,10 @@ export class AddonBlockRecentlyAccessedItemsProvider {
6767
const cmIds: number[] = [];
6868

6969
const itemsToDisplay = await Promise.all(items.map(async (item: AddonBlockRecentlyAccessedItemsItemCalculatedData) => {
70-
const modicon = item.icon && CoreDomUtils.getHTMLElementAttribute(item.icon, 'src');
70+
const modicon = item.icon && CoreDom.getHTMLElementAttribute(item.icon, 'src');
7171

7272
item.iconUrl = await CoreCourseModuleDelegate.getModuleIconSrc(item.modname, modicon || undefined);
73-
item.iconTitle = item.icon && CoreDomUtils.getHTMLElementAttribute(item.icon, 'title');
73+
item.iconTitle = item.icon && CoreDom.getHTMLElementAttribute(item.icon, 'title');
7474
cmIds.push(item.cmid);
7575

7676
return item;

src/addons/block/timeline/components/events/events.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { CoreEnrolledCourseDataWithOptions } from '@features/courses/services/co
2020
import { AddonBlockTimelineDayEvents } from '@addons/block/timeline/classes/section';
2121
import { CoreSharedModule } from '@/core/shared.module';
2222
import { toBoolean } from '@/core/transforms/boolean';
23+
import { CoreContentLinksHelper } from '@features/contentlinks/services/contentlinks-helper';
2324

2425
/**
2526
* Directive to render a list of events in course overview.
@@ -73,7 +74,7 @@ export class AddonBlockTimelineEventsComponent implements OnInit {
7374
const modal = await CoreLoadings.show();
7475

7576
try {
76-
await CoreSites.visitLink(url);
77+
await CoreContentLinksHelper.visitLink(url);
7778
} finally {
7879
modal.dismiss();
7980
}

src/addons/messages/pages/discussion/discussion.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,7 @@ export default class AddonMessagesDiscussionPage implements OnInit, OnDestroy, A
649649

650650
pagesToLoad--;
651651

652-
// Treat members. Don't use CoreUtilsProvider.arrayToObject because we don't want to override the existing object.
652+
// Treat members. Don't use CoreArray.toObject because we don't want to override the existing object.
653653
if (result.members) {
654654
result.members.forEach((member) => {
655655
this.members[member.id] = member;

src/addons/mod/book/services/book.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { CoreCourse, CoreCourseModuleContentFile } from '@features/course/servic
2222
import { CorePromiseUtils } from '@singletons/promise-utils';
2323
import { CoreFilepool } from '@services/filepool';
2424
import { CoreText } from '@singletons/text';
25-
import { CoreDomUtils } from '@services/utils/dom';
25+
import { CoreDom } from '@singletons/dom';
2626
import { CoreError } from '@classes/errors/error';
2727
import { CoreSiteWSPreSets } from '@classes/sites/authenticated-site';
2828
import { ADDON_MOD_BOOK_COMPONENT } from '../constants';
@@ -96,7 +96,7 @@ export class AddonModBookProvider {
9696
const content = await CoreWS.getText(url);
9797

9898
// Now that we have the content, we update the SRC to point back to the external resource.
99-
return CoreDomUtils.restoreSourcesInHtml(content, contentsMap[chapterId].paths);
99+
return CoreDom.restoreSourcesInHtml(content, contentsMap[chapterId].paths);
100100
}
101101

102102
/**

src/addons/mod/data/components/index/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { IonContent } from '@ionic/angular';
2424
import { CoreGroupInfo, CoreGroups } from '@services/groups';
2525
import { CoreNavigator } from '@services/navigator';
2626
import { CoreSites } from '@services/sites';
27-
import { CoreDomUtils } from '@services/utils/dom';
27+
import { CoreDom } from '@singletons/dom';
2828
import { CoreTime } from '@singletons/time';
2929
import { CoreArray } from '@singletons/array';
3030
import { CoreEventObserver, CoreEvents } from '@singletons/events';
@@ -358,7 +358,7 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp
358358
this.fieldsArray,
359359
);
360360

361-
headerAndFooter = CoreDomUtils.fixHtml(headerAndFooter);
361+
headerAndFooter = CoreDom.fixHtml(headerAndFooter);
362362

363363
// Get first entry from the whole list.
364364
if (!this.search.searching || !this.firstEntry) {

src/addons/mod/data/services/data-helper.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { CoreFileUploader, CoreFileUploaderStoreFilesResult } from '@features/fi
1919
import { CoreRatingOffline } from '@features/rating/services/rating-offline';
2020
import { FileEntry } from '@awesome-cordova-plugins/file/ngx';
2121
import { CoreSites, CoreSitesReadingStrategy } from '@services/sites';
22-
import { CoreDomUtils } from '@services/utils/dom';
22+
import { CoreDom } from '@singletons/dom';
2323
import { CoreFormFields } from '@singletons/form';
2424
import { CoreText } from '@singletons/text';
2525
import { CorePromiseUtils } from '@singletons/promise-utils';
@@ -46,6 +46,7 @@ import {
4646
AddonModDataAction,
4747
AddonModDataTemplateType,
4848
AddonModDataTemplateMode,
49+
ADDON_MOD_DATA_MODNAME,
4950
} from '../constants';
5051
import { CoreToasts, ToastDuration } from '@services/overlays/toasts';
5152
import { CoreLoadings } from '@services/overlays/loadings';
@@ -528,7 +529,7 @@ export class AddonModDataHelperProvider {
528529

529530
const module = await CoreCourse.getModuleBasicInfoByInstance(
530531
dataId,
531-
'data',
532+
ADDON_MOD_DATA_MODNAME,
532533
{ siteId, readingStrategy: CoreSitesReadingStrategy.PREFER_CACHE },
533534
);
534535

@@ -826,7 +827,7 @@ export class AddonModDataHelperProvider {
826827

827828
if (type != AddonModDataTemplateType.LIST_HEADER && type != AddonModDataTemplateType.LIST_FOOTER) {
828829
// Try to fix syntax errors so the template can be parsed by Angular.
829-
template = CoreDomUtils.fixHtml(template);
830+
template = CoreDom.fixHtml(template);
830831
}
831832

832833
// Add core-link directive to links.

src/addons/mod/feedback/pages/form/form.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import { CoreWSError } from '@classes/errors/wserror';
4848
import { CoreObject } from '@singletons/object';
4949
import { CoreAlerts } from '@services/overlays/alerts';
5050
import { CoreSharedModule } from '@/core/shared.module';
51+
import { CoreContentLinksHelper } from '@features/contentlinks/services/contentlinks-helper';
5152

5253
/**
5354
* Page that displays feedback form.
@@ -458,7 +459,7 @@ export default class AddonModFeedbackFormPage implements OnInit, OnDestroy, CanL
458459
const modal = await CoreLoadings.show();
459460

460461
try {
461-
await CoreSites.visitLink(this.siteAfterSubmit, { siteId: this.currentSite.id });
462+
await CoreContentLinksHelper.visitLink(this.siteAfterSubmit, { siteId: this.currentSite.id });
462463
} finally {
463464
modal.dismiss();
464465
}

src/addons/mod/forum/services/handlers/post-link.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { CoreNavigator } from '@services/navigator';
2020
import { CoreSitesReadingStrategy } from '@services/sites';
2121
import { CoreLoadings } from '@services/overlays/loadings';
2222
import { makeSingleton } from '@singletons';
23-
import { ADDON_MOD_FORUM_FEATURE_NAME, ADDON_MOD_FORUM_PAGE_NAME } from '../../constants';
23+
import { ADDON_MOD_FORUM_FEATURE_NAME, ADDON_MOD_FORUM_MODNAME, ADDON_MOD_FORUM_PAGE_NAME } from '../../constants';
2424

2525
/**
2626
* Content links handler for forum new discussion.
@@ -49,7 +49,7 @@ export class AddonModForumPostLinkHandlerService extends CoreContentLinksHandler
4949
try {
5050
const module = await CoreCourse.getModuleBasicInfoByInstance(
5151
forumId,
52-
'forum',
52+
ADDON_MOD_FORUM_MODNAME,
5353
{ siteId, readingStrategy: CoreSitesReadingStrategy.PREFER_CACHE },
5454
);
5555

src/addons/mod/glossary/services/handlers/entry-link.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { CoreNavigator } from '@services/navigator';
2020
import { CoreSitesReadingStrategy } from '@services/sites';
2121
import { makeSingleton, Translate } from '@singletons';
2222
import { AddonModGlossary } from '../glossary';
23-
import { ADDON_MOD_GLOSSARY_FEATURE_NAME, ADDON_MOD_GLOSSARY_PAGE_NAME } from '../../constants';
23+
import { ADDON_MOD_GLOSSARY_FEATURE_NAME, ADDON_MOD_GLOSSARY_MODNAME, ADDON_MOD_GLOSSARY_PAGE_NAME } from '../../constants';
2424
import { CoreLoadings } from '@services/overlays/loadings';
2525
import { CoreAlerts } from '@services/overlays/alerts';
2626

@@ -52,7 +52,7 @@ export class AddonModGlossaryEntryLinkHandlerService extends CoreContentLinksHan
5252

5353
const module = await CoreCourse.getModuleBasicInfoByInstance(
5454
response.entry.glossaryid,
55-
'glossary',
55+
ADDON_MOD_GLOSSARY_MODNAME,
5656
{ siteId, readingStrategy: CoreSitesReadingStrategy.PREFER_CACHE },
5757
);
5858

src/addons/mod/glossary/services/handlers/prefetch.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ export class AddonModGlossaryPrefetchHandlerService extends CoreCourseActivityPr
188188

189189
// Prefetch data for link handlers.
190190
promises.push(CoreCourse.getModuleBasicInfo(module.id, { siteId }));
191-
promises.push(CoreCourse.getModuleBasicInfoByInstance(glossary.id, 'glossary', { siteId }));
191+
promises.push(CoreCourse.getModuleBasicInfoByInstance(glossary.id, ADDON_MOD_GLOSSARY_MODNAME, { siteId }));
192192

193193
// Get course data, needed to determine upload max size if it's configured to be course limit.
194194
promises.push(CorePromiseUtils.ignoreErrors(CoreCourses.getCourseByField('id', courseId, siteId)));

src/addons/mod/h5pactivity/services/handlers/report-link.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ import { CoreSites, CoreSitesReadingStrategy } from '@services/sites';
2222
import { CorePromiseUtils } from '@singletons/promise-utils';
2323
import { makeSingleton } from '@singletons';
2424
import { AddonModH5PActivity } from '../h5pactivity';
25-
import { ADDON_MOD_H5PACTIVITY_FEATURE_NAME, ADDON_MOD_H5PACTIVITY_PAGE_NAME } from '../../constants';
25+
import {
26+
ADDON_MOD_H5PACTIVITY_FEATURE_NAME,
27+
ADDON_MOD_H5PACTIVITY_MODNAME,
28+
ADDON_MOD_H5PACTIVITY_PAGE_NAME,
29+
} from '../../constants';
2630
import { CoreLoadings } from '@services/overlays/loadings';
2731
import { CoreAlerts } from '@services/overlays/alerts';
2832

@@ -53,7 +57,7 @@ export class AddonModH5PActivityReportLinkHandlerService extends CoreContentLink
5357

5458
const module = await CoreCourse.getModuleBasicInfoByInstance(
5559
instanceId,
56-
'h5pactivity',
60+
ADDON_MOD_H5PACTIVITY_MODNAME,
5761
{ siteId, readingStrategy: CoreSitesReadingStrategy.PREFER_CACHE },
5862
);
5963

src/addons/mod/lesson/services/handlers/grade-link.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,8 @@ export class AddonModLessonGradeLinkHandlerService extends CoreContentLinksModul
7777
);
7878
} else {
7979
// User cannot view the report, go to lesson index.
80-
CoreCourseHelper.navigateToModule(moduleId, {
80+
CoreCourseHelper.navigateToModule(module.id, {
8181
courseId: module.course,
82-
sectionId: module.section,
8382
siteId,
8483
});
8584
}

src/addons/mod/lesson/services/handlers/index-link.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,7 @@ export class AddonModLessonIndexLinkHandlerService extends CoreContentLinksModul
3838
}
3939

4040
/**
41-
* Get the list of actions for a link (url).
42-
*
43-
* @param siteIds List of sites the URL belongs to.
44-
* @param url The URL to treat.
45-
* @param params The params of the URL. E.g. 'mysite.com?id=1' -> {id: 1}
46-
* @param courseId Course ID related to the URL. Optional but recommended.
47-
* @returns List of (or promise resolved with list of) actions.
41+
* @inheritdoc
4842
*/
4943
getActions(
5044
siteIds: string[],
@@ -100,7 +94,6 @@ export class AddonModLessonIndexLinkHandlerService extends CoreContentLinksModul
10094

10195
await CoreCourseHelper.navigateToModule(moduleId, {
10296
courseId: module.course,
103-
sectionId: module.section,
10497
siteId,
10598
});
10699
} catch {

src/addons/mod/lesson/services/handlers/report-link.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ export class AddonModLessonReportLinkHandlerService extends CoreContentLinksHand
142142
{ siteId, readingStrategy: CoreSitesReadingStrategy.PREFER_CACHE },
143143
);
144144
const params = {
145-
retake: retake || 0,
145+
retake: retake ?? 0,
146146
};
147147

148148
CoreNavigator.navigateToSitePath(

src/addons/mod/lesson/services/lesson-helper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import { Injectable } from '@angular/core';
1616
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
1717

18-
import { CoreDomUtils } from '@services/utils/dom';
18+
import { CoreDom } from '@singletons/dom';
1919
import { CoreFormFields } from '@singletons/form';
2020
import { CoreText } from '@singletons/text';
2121
import { CoreTime } from '@singletons/time';
@@ -598,7 +598,7 @@ export class AddonModLessonHelperProvider {
598598
const element = convertTextToHTMLElement(html);
599599

600600
// Remove the question text.
601-
CoreDomUtils.removeElement(element, '.generalbox:not(.feedback):not(.correctanswer)');
601+
CoreDom.removeElement(element, '.generalbox:not(.feedback):not(.correctanswer)');
602602

603603
return element.innerHTML.trim();
604604
}

src/addons/mod/page/services/page-helper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { CoreUrl } from '@singletons/url';
1818
import { CoreSites } from '@services/sites';
1919
import { CoreFilepool } from '@services/filepool';
2020
import { CoreWS } from '@services/ws';
21-
import { CoreDomUtils } from '@services/utils/dom';
21+
import { CoreDom } from '@singletons/dom';
2222
import { makeSingleton } from '@singletons';
2323
import { CoreCourseModuleContentFile } from '@features/course/services/course';
2424
import { ADDON_MOD_PAGE_COMPONENT_LEGACY } from '../constants';
@@ -74,7 +74,7 @@ export class AddonModPageHelperProvider {
7474

7575
// Now that we have the content, we update the SRC to point back to the external resource.
7676
// That will be caught by core-format-text.
77-
return CoreDomUtils.restoreSourcesInHtml(content, paths);
77+
return CoreDom.restoreSourcesInHtml(content, paths);
7878
}
7979

8080
/**

src/addons/mod/quiz/components/attempt-info/attempt-info.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { AddonModQuiz, AddonModQuizWSAdditionalData } from '../../services/quiz'
1818
import { ADDON_MOD_QUIZ_COMPONENT_LEGACY, AddonModQuizAttemptStates } from '../../constants';
1919
import { CoreTime } from '@singletons/time';
2020
import { Translate } from '@singletons';
21-
import { CoreDomUtils } from '@services/utils/dom';
21+
import { CoreDom } from '@singletons/dom';
2222
import { isSafeNumber } from '@/core/utils/types';
2323
import { AddonModQuizAttemptStateComponent } from '../attempt-state/attempt-state';
2424
import { CoreSharedModule } from '@/core/shared.module';
@@ -56,7 +56,7 @@ export class AddonModQuizAttemptInfoComponent implements OnChanges {
5656
if (changes.additionalData) {
5757
this.additionalData?.forEach((data) => {
5858
// Remove help links from additional data.
59-
data.content = CoreDomUtils.removeElementFromHtml(data.content, '.helptooltip');
59+
data.content = CoreDom.removeElementFromHtml(data.content, '.helptooltip');
6060
});
6161
}
6262

src/addons/mod/quiz/services/quiz-helper.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { CoreError } from '@classes/errors/error';
1919
import { CoreCourse } from '@features/course/services/course';
2020
import { CoreNavigator } from '@services/navigator';
2121
import { CoreSites, CoreSitesReadingStrategy } from '@services/sites';
22-
import { CoreDomUtils } from '@services/utils/dom';
22+
import { CoreDom } from '@singletons/dom';
2323
import { CoreWSError } from '@classes/errors/wserror';
2424
import { makeSingleton, Translate } from '@singletons';
2525
import { AddonModQuizAccessRuleDelegate } from './access-rules-delegate';
@@ -33,6 +33,7 @@ import {
3333
import { AddonModQuizOffline } from './quiz-offline';
3434
import {
3535
ADDON_MOD_QUIZ_IMMEDIATELY_AFTER_PERIOD,
36+
ADDON_MOD_QUIZ_MODNAME,
3637
ADDON_MOD_QUIZ_PAGE_NAME,
3738
AddonModQuizAttemptStates,
3839
AddonModQuizDisplayOptionsAttemptStates,
@@ -311,7 +312,7 @@ export class AddonModQuizHelperProvider {
311312
getQuestionMarkFromHtml(html: string): string | undefined {
312313
const element = convertTextToHTMLElement(html);
313314

314-
return CoreDomUtils.getContentsOfElement(element, '.grade');
315+
return CoreDom.getContentsOfElement(element, '.grade');
315316
}
316317

317318
/**
@@ -352,7 +353,7 @@ export class AddonModQuizHelperProvider {
352353

353354
const module = await CoreCourse.getModuleBasicInfoByInstance(
354355
quizId,
355-
'quiz',
356+
ADDON_MOD_QUIZ_MODNAME,
356357
{ siteId, readingStrategy: CoreSitesReadingStrategy.PREFER_CACHE },
357358
);
358359

0 commit comments

Comments
 (0)