diff --git a/src/addons/mod/chat/tests/behat/basic_usage.feature b/src/addons/mod/chat/tests/behat/basic_usage.feature index e2aa9a8a542..a9ead388073 100755 --- a/src/addons/mod/chat/tests/behat/basic_usage.feature +++ b/src/addons/mod/chat/tests/behat/basic_usage.feature @@ -15,6 +15,7 @@ Feature: Test basic usage of chat in app | user | course | role | | student1 | C1 | student | | student2 | C1 | student | + And I enable "chat" "mod" plugin And the following "activities" exist: | activity | name | intro | course | idnumber | groupmode | | chat | Test chat name | Test chat | C1 | chat | 0 | diff --git a/src/addons/mod/chat/tests/behat/navigation.feature b/src/addons/mod/chat/tests/behat/navigation.feature index 02af0d793ac..aa41a3637c4 100644 --- a/src/addons/mod/chat/tests/behat/navigation.feature +++ b/src/addons/mod/chat/tests/behat/navigation.feature @@ -13,6 +13,7 @@ Feature: Test chat navigation | user | course | role | | student1 | C1 | student | | student2 | C1 | student | + And I enable "chat" "mod" plugin And the following "activities" exist: | activity | name | intro | course | idnumber | groupmode | | chat | Test chat name | Test chat | C1 | chat | 0 | diff --git a/src/addons/mod/survey/tests/behat/basic_usage.feature b/src/addons/mod/survey/tests/behat/basic_usage.feature index fa7950a8858..a89f8a23939 100755 --- a/src/addons/mod/survey/tests/behat/basic_usage.feature +++ b/src/addons/mod/survey/tests/behat/basic_usage.feature @@ -16,6 +16,7 @@ Feature: Test basic usage of survey activity in app | user | course | role | | student1 | C1 | student | | teacher1 | C1 | editingteacher | + And I enable "survey" "mod" plugin And the following "activities" exist: | activity | name | intro | course | idnumber | groupmode | | survey | Test survey name | Test survey | C1 | survey | 0 | diff --git a/src/addons/mod/workshop/assessment/accumulative/services/handler-lazy.ts b/src/addons/mod/workshop/assessment/accumulative/services/handler-lazy.ts index c9f8bcd8e1b..fc3f025b1c3 100644 --- a/src/addons/mod/workshop/assessment/accumulative/services/handler-lazy.ts +++ b/src/addons/mod/workshop/assessment/accumulative/services/handler-lazy.ts @@ -35,13 +35,6 @@ export class AddonModWorkshopAssessmentStrategyAccumulativeHandlerLazyService extends AddonModWorkshopAssessmentStrategyAccumulativeHandlerService implements AddonWorkshopAssessmentStrategyHandler { - /** - * @inheritdoc - */ - async isEnabled(): Promise { - return true; - } - /** * @inheritdoc */ diff --git a/src/addons/mod/workshop/assessment/accumulative/services/handler.ts b/src/addons/mod/workshop/assessment/accumulative/services/handler.ts index 9b3e23c0707..fd1ab1fba69 100644 --- a/src/addons/mod/workshop/assessment/accumulative/services/handler.ts +++ b/src/addons/mod/workshop/assessment/accumulative/services/handler.ts @@ -20,11 +20,19 @@ import { } from '@addons/mod/workshop/assessment/constants'; import type { AddonModWorkshopAssessmentStrategyAccumulativeHandlerLazyService } from './handler-lazy'; -export class AddonModWorkshopAssessmentStrategyAccumulativeHandlerService { +export class AddonModWorkshopAssessmentStrategyAccumulativeHandlerService + implements Partial { name = ADDON_MOD_WORKSHOP_ASSESSMENT_STRATEGY_ACCUMULATIVE_NAME; strategyName = ADDON_MOD_WORKSHOP_ASSESSMENT_STRATEGY_ACCUMULATIVE_STRATEGY_NAME; + /** + * @inheritdoc + */ + async isEnabled(): Promise { + return true; + } + } /** @@ -44,7 +52,6 @@ export function getAssessmentStrategyHandlerInstance(): AddonWorkshopAssessmentS lazyHandler.setEagerInstance(new AddonModWorkshopAssessmentStrategyAccumulativeHandlerService()); lazyHandler.setLazyInstanceMethods([ - 'isEnabled', 'getComponent', 'getOriginalValues', 'hasDataChanged', diff --git a/src/addons/mod/workshop/assessment/comments/services/handler-lazy.ts b/src/addons/mod/workshop/assessment/comments/services/handler-lazy.ts index 702c83393d9..3a889063dda 100644 --- a/src/addons/mod/workshop/assessment/comments/services/handler-lazy.ts +++ b/src/addons/mod/workshop/assessment/comments/services/handler-lazy.ts @@ -34,13 +34,6 @@ export class AddonModWorkshopAssessmentStrategyCommentsHandlerLazyService extends AddonModWorkshopAssessmentStrategyCommentsHandlerService implements AddonWorkshopAssessmentStrategyHandler { - /** - * @inheritdoc - */ - async isEnabled(): Promise { - return true; - } - /** * @inheritdoc */ diff --git a/src/addons/mod/workshop/assessment/comments/services/handler.ts b/src/addons/mod/workshop/assessment/comments/services/handler.ts index 9cceb5ef4b6..d30698cd2fb 100644 --- a/src/addons/mod/workshop/assessment/comments/services/handler.ts +++ b/src/addons/mod/workshop/assessment/comments/services/handler.ts @@ -20,11 +20,19 @@ import { } from '@addons/mod/workshop/assessment/constants'; import type { AddonModWorkshopAssessmentStrategyCommentsHandlerLazyService } from './handler-lazy'; -export class AddonModWorkshopAssessmentStrategyCommentsHandlerService { +export class AddonModWorkshopAssessmentStrategyCommentsHandlerService + implements Partial { name = ADDON_MOD_WORKSHOP_ASSESSMENT_STRATEGY_COMMENTS_NAME; strategyName = ADDON_MOD_WORKSHOP_ASSESSMENT_STRATEGY_COMMENTS_STRATEGY_NAME; + /** + * @inheritdoc + */ + async isEnabled(): Promise { + return true; + } + } /** @@ -44,7 +52,6 @@ export function getAssessmentStrategyHandlerInstance(): AddonWorkshopAssessmentS lazyHandler.setEagerInstance(new AddonModWorkshopAssessmentStrategyCommentsHandlerService()); lazyHandler.setLazyInstanceMethods([ - 'isEnabled', 'getComponent', 'getOriginalValues', 'hasDataChanged', diff --git a/src/addons/mod/workshop/assessment/numerrors/services/handler-lazy.ts b/src/addons/mod/workshop/assessment/numerrors/services/handler-lazy.ts index 6ec33f06542..6d925c167a2 100644 --- a/src/addons/mod/workshop/assessment/numerrors/services/handler-lazy.ts +++ b/src/addons/mod/workshop/assessment/numerrors/services/handler-lazy.ts @@ -34,13 +34,6 @@ export class AddonModWorkshopAssessmentStrategyNumErrorsHandlerLazyService extends AddonModWorkshopAssessmentStrategyNumErrorsHandlerService implements AddonWorkshopAssessmentStrategyHandler { - /** - * @inheritdoc - */ - async isEnabled(): Promise { - return true; - } - /** * @inheritdoc */ diff --git a/src/addons/mod/workshop/assessment/numerrors/services/handler.ts b/src/addons/mod/workshop/assessment/numerrors/services/handler.ts index 74f40eb58db..523cd38b95e 100644 --- a/src/addons/mod/workshop/assessment/numerrors/services/handler.ts +++ b/src/addons/mod/workshop/assessment/numerrors/services/handler.ts @@ -20,11 +20,19 @@ import { } from '@addons/mod/workshop/assessment/constants'; import type { AddonModWorkshopAssessmentStrategyNumErrorsHandlerLazyService } from './handler-lazy'; -export class AddonModWorkshopAssessmentStrategyNumErrorsHandlerService { +export class AddonModWorkshopAssessmentStrategyNumErrorsHandlerService + implements Partial { name = ADDON_MOD_WORKSHOP_ASSESSMENT_STRATEGY_NUMERRORS_NAME; strategyName = ADDON_MOD_WORKSHOP_ASSESSMENT_STRATEGY_NUMERRORS_STRATEGY_NAME; + /** + * @inheritdoc + */ + async isEnabled(): Promise { + return true; + } + } /** @@ -44,7 +52,6 @@ export function getAssessmentStrategyHandlerInstance(): AddonWorkshopAssessmentS lazyHandler.setEagerInstance(new AddonModWorkshopAssessmentStrategyNumErrorsHandlerService()); lazyHandler.setLazyInstanceMethods([ - 'isEnabled', 'getComponent', 'getOriginalValues', 'hasDataChanged', diff --git a/src/addons/mod/workshop/assessment/rubric/services/handler-lazy.ts b/src/addons/mod/workshop/assessment/rubric/services/handler-lazy.ts index c001975f1da..0067006ccde 100644 --- a/src/addons/mod/workshop/assessment/rubric/services/handler-lazy.ts +++ b/src/addons/mod/workshop/assessment/rubric/services/handler-lazy.ts @@ -34,13 +34,6 @@ export class AddonModWorkshopAssessmentStrategyRubricHandlerLazyService extends AddonModWorkshopAssessmentStrategyRubricHandlerService implements AddonWorkshopAssessmentStrategyHandler { - /** - * @inheritdoc - */ - async isEnabled(): Promise { - return true; - } - /** * @inheritdoc */ diff --git a/src/addons/mod/workshop/assessment/rubric/services/handler.ts b/src/addons/mod/workshop/assessment/rubric/services/handler.ts index d61e32fba98..9b06d28e595 100644 --- a/src/addons/mod/workshop/assessment/rubric/services/handler.ts +++ b/src/addons/mod/workshop/assessment/rubric/services/handler.ts @@ -20,11 +20,19 @@ import { } from '@addons/mod/workshop/assessment/constants'; import type { AddonModWorkshopAssessmentStrategyRubricHandlerLazyService } from './handler-lazy'; -export class AddonModWorkshopAssessmentStrategyRubricHandlerService { +export class AddonModWorkshopAssessmentStrategyRubricHandlerService + implements Partial { name = ADDON_MOD_WORKSHOP_ASSESSMENT_STRATEGY_RUBRIC_NAME; strategyName = ADDON_MOD_WORKSHOP_ASSESSMENT_STRATEGY_RUBRIC_STRATEGY_NAME; + /** + * @inheritdoc + */ + async isEnabled(): Promise { + return true; + } + } /** @@ -44,7 +52,6 @@ export function getAssessmentStrategyHandlerInstance(): AddonWorkshopAssessmentS lazyHandler.setEagerInstance(new AddonModWorkshopAssessmentStrategyRubricHandlerService()); lazyHandler.setLazyInstanceMethods([ - 'isEnabled', 'getComponent', 'getOriginalValues', 'hasDataChanged', diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index b75eaba2321..9409e6768f8 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -14,7 +14,6 @@ import { InjectionToken, Injector, ModuleWithProviders, NgModule, Type } from '@angular/core'; import { - PreloadAllModules, RouterModule, Route, Routes, @@ -224,7 +223,7 @@ export const APP_ROUTES = new InjectionToken('APP_ROUTES'); @NgModule({ imports: [ - RouterModule.forRoot([], { preloadingStrategy: PreloadAllModules }), + RouterModule.forRoot([]), ], providers: [ { provide: ROUTES, multi: true, useFactory: buildAppRoutes, deps: [Injector] }, diff --git a/src/core/features/course/tests/behat/basic_usage.feature b/src/core/features/course/tests/behat/basic_usage.feature index 7c9b6dc4d97..690c5b869ad 100755 --- a/src/core/features/course/tests/behat/basic_usage.feature +++ b/src/core/features/course/tests/behat/basic_usage.feature @@ -17,6 +17,8 @@ Feature: Test basic usage of one course in app | user | course | role | | teacher1 | C1 | editingteacher | | student1 | C1 | student | + And I enable "chat" "mod" plugin + And I enable "survey" "mod" plugin And the following "activities" exist: | activity | name | intro | course | idnumber | option | section | | choice | Choice course 1 | Test choice description | C1 | choice1 | Option 1, Option 2, Option 3 | 1 | @@ -345,7 +347,7 @@ Feature: Test basic usage of one course in app Scenario: Navigation between sections using the bottom arrows When I entered the course "Course 1" as "student1" in the app Then the header should be "Course 1" in the app - And I should find "Test forum name" in the app + And I should find "Test forum name" in the app And I should find "Test wiki name" in the app And I should find "Choice course 1" in the app And I should find "assignment" in the app diff --git a/src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_46.png b/src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_48.png similarity index 100% rename from src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_46.png rename to src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_48.png diff --git a/src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_50.png b/src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_52.png similarity index 100% rename from src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_50.png rename to src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_52.png diff --git a/src/core/features/mainmenu/mainmenu-tab-routing.module.ts b/src/core/features/mainmenu/mainmenu-tab-routing.module.ts index 952582c395b..8ecc4d138f6 100644 --- a/src/core/features/mainmenu/mainmenu-tab-routing.module.ts +++ b/src/core/features/mainmenu/mainmenu-tab-routing.module.ts @@ -18,39 +18,6 @@ import { Route, Routes } from '@angular/router'; import { ModuleRoutesConfig, isEmptyRoute, resolveModuleRoutes } from '@/app/app-routing.module'; const MAIN_MENU_TAB_ROUTES = new InjectionToken('MAIN_MENU_TAB_ROUTES'); -const modulesPaths: Record> = {}; - -/** - * Get the name of the module the injector belongs to. - * - * @param injector Injector. - * @returns Injector module name. - */ -function getInjectorModule(injector: Injector): string | null { - if (!('source' in injector) || typeof injector.source !== 'string') { - return null; - } - - // Get module name from R3Injector source. - // See https://github.com/angular/angular/blob/16.2.0/packages/core/src/di/r3_injector.ts#L161C8 - return injector.source; -} - -/** - * Get module paths. - * - * @param injector Injector. - * @returns Module paths. - */ -function getModulePaths(injector: Injector): Set | null { - const module = getInjectorModule(injector); - - if (!module) { - return null; - } - - return modulesPaths[module] ??= new Set(); -} /** * Build module routes. @@ -61,23 +28,18 @@ function getModulePaths(injector: Injector): Set | null { */ export function buildTabMainRoutes(injector: Injector, mainRoute: Route): Routes { const path = mainRoute.path ?? ''; - const modulePaths = getModulePaths(injector); - const isRootRoute = modulePaths && !modulePaths.has(path); const routes = resolveModuleRoutes(injector, MAIN_MENU_TAB_ROUTES); mainRoute.path = path; - modulePaths?.add(path); - if (isRootRoute && !('redirectTo' in mainRoute)) { + if (!('redirectTo' in mainRoute)) { mainRoute.children = mainRoute.children || []; mainRoute.children = mainRoute.children.concat(routes.children); } else if (isEmptyRoute(mainRoute)) { return []; } - return isRootRoute - ? [mainRoute, ...routes.siblings] - : [mainRoute]; + return [mainRoute, ...routes.siblings]; } @NgModule()