From e8a1ff89fa17da96e0c607a53137fa2bd53f0d43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Mon, 15 Jul 2024 09:35:29 +0200 Subject: [PATCH] MOBILE-4632 siteplugins: Minor changes on declarations --- src/core/features/siteplugins/constants.ts | 4 ++ ...eplugins-helper.ts => siteplugins-init.ts} | 63 +++++++++---------- .../siteplugins/services/siteplugins.ts | 20 +++--- .../siteplugins/siteplugins.module.ts | 13 ++-- 4 files changed, 53 insertions(+), 47 deletions(-) rename src/core/features/siteplugins/services/{siteplugins-helper.ts => siteplugins-init.ts} (96%) diff --git a/src/core/features/siteplugins/constants.ts b/src/core/features/siteplugins/constants.ts index c971aa1e8..a215c83e0 100644 --- a/src/core/features/siteplugins/constants.ts +++ b/src/core/features/siteplugins/constants.ts @@ -13,3 +13,7 @@ // limitations under the License. export const CORE_SITE_PLUGINS_UPDATE_COURSE_CONTENT = 'siteplugins_update_course_content'; + +export const CORE_SITE_PLUGINS_COMPONENT = 'CoreSitePlugins'; + +export const CORE_SITE_PLUGINS_PATH = 'siteplugins'; diff --git a/src/core/features/siteplugins/services/siteplugins-helper.ts b/src/core/features/siteplugins/services/siteplugins-init.ts similarity index 96% rename from src/core/features/siteplugins/services/siteplugins-helper.ts rename to src/core/features/siteplugins/services/siteplugins-init.ts index 3417db1e3..fc4854919 100644 --- a/src/core/features/siteplugins/services/siteplugins-helper.ts +++ b/src/core/features/siteplugins/services/siteplugins-init.ts @@ -62,7 +62,6 @@ import { CoreSitePluginsContent, CoreSitePluginsPlugin, CoreSitePluginsHandlerData, - CoreSitePluginsProvider, CoreSitePluginsCourseOptionHandlerData, CoreSitePluginsMainMenuHandlerData, CoreSitePluginsCourseModuleHandlerData, @@ -89,8 +88,7 @@ import { CoreUrlUtils } from '@services/utils/url'; import { CorePath } from '@singletons/path'; import { CoreEnrolAction, CoreEnrolDelegate } from '@features/enrol/services/enrol-delegate'; import { CoreSitePluginsEnrolHandler } from '../classes/handlers/enrol-handler'; - -const HANDLER_DISABLED = 'core_site_plugins_helper_handler_disabled'; +import { CORE_SITE_PLUGINS_COMPONENT } from '../constants'; /** * Helper service to provide functionalities regarding site plugins. It basically has the features to load and register site @@ -102,7 +100,7 @@ const HANDLER_DISABLED = 'core_site_plugins_helper_handler_disabled'; * inside the host DOM element? */ @Injectable({ providedIn: 'root' }) -export class CoreSitePluginsHelperProvider { +export class CoreSitePluginsInitService { protected logger: CoreLogger; protected courseRestrictHandlers: Record = {}; + protected static readonly HANDLER_DISABLED = 'core_site_plugins_helper_handler_disabled'; + constructor() { - this.logger = CoreLogger.getInstance('CoreSitePluginsHelperProvider'); + this.logger = CoreLogger.getInstance('CoreSitePluginsInit'); } /** * Initialize. */ - initialize(): void { + init(): void { // Fetch the plugins on login. CoreEvents.on(CoreEvents.LOGIN, async (data) => { try { const plugins = await CoreUtils.ignoreErrors(CoreSitePlugins.getPlugins(data.siteId)); // Plugins fetched, check that site hasn't changed. - if (data.siteId != CoreSites.getCurrentSiteId() || !plugins?.length) { + if (data.siteId !== CoreSites.getCurrentSiteId() || !plugins?.length) { return; } @@ -145,7 +145,7 @@ export class CoreSitePluginsHelperProvider { // Re-load plugins restricted for courses when the list of user courses changes. CoreEvents.on(CoreCoursesProvider.EVENT_MY_COURSES_CHANGED, (data) => { - if (data && data.siteId && data.siteId == CoreSites.getCurrentSiteId() && data.added && data.added.length) { + if (data.siteId && data.siteId === CoreSites.getCurrentSiteId() && data.added.length) { this.reloadCourseRestrictHandlers(); } }); @@ -160,7 +160,7 @@ export class CoreSitePluginsHelperProvider { * @param siteId Site ID. If not provided, current site. * @returns Promise resolved with the CSS code. */ - async downloadStyles( + protected async downloadStyles( plugin: CoreSitePluginsPlugin, handlerName: string, handlerSchema: CoreSitePluginsHandlerData, @@ -184,7 +184,7 @@ export class CoreSitePluginsHelperProvider { // Remove the CSS files for this handler that aren't used anymore. Don't block the call for this. const files = await CoreUtils.ignoreErrors( - CoreFilepool.getFilesByComponent(site.getId(), CoreSitePluginsProvider.COMPONENT, componentId), + CoreFilepool.getFilesByComponent(site.getId(), CORE_SITE_PLUGINS_COMPONENT, componentId), ); files?.forEach((file) => { @@ -209,7 +209,7 @@ export class CoreSitePluginsHelperProvider { site.getId(), url, false, - CoreSitePluginsProvider.COMPONENT, + CORE_SITE_PLUGINS_COMPONENT, componentId, 0, undefined, @@ -270,7 +270,7 @@ export class CoreSitePluginsHelperProvider { // Create a "fake" instance to hold all the libraries. const instance = { // eslint-disable-next-line @typescript-eslint/naming-convention - HANDLER_DISABLED: HANDLER_DISABLED, + HANDLER_DISABLED: CoreSitePluginsInitService.HANDLER_DISABLED, }; await CoreCompile.loadLibraries(); @@ -285,7 +285,7 @@ export class CoreSitePluginsHelperProvider { // Now execute the javascript using this instance. result.jsResult = CoreCompile.executeJavascript(instance, result.javascript); - if (result.jsResult == HANDLER_DISABLED) { + if (result.jsResult === CoreSitePluginsInitService.HANDLER_DISABLED) { // The "disabled" field was added in 3.8, this is a workaround for previous versions. result.disabled = true; } @@ -311,10 +311,10 @@ export class CoreSitePluginsHelperProvider { * Given an addon name and the key of a string, return the full string key (prefixed). * * @param addon Name of the addon (plugin.addon). - * @param key The key of the string. + * @param key The key of the string. Defaults to pluginname. * @returns Full string key. */ - protected getPrefixedString(addon: string, key: string): string { + protected getPrefixedString(addon: string, key = 'pluginname'): string { return this.getPrefixForStrings(addon) + key; } @@ -323,7 +323,7 @@ export class CoreSitePluginsHelperProvider { * * @param plugin Data of the plugin. */ - loadLangStrings(plugin: CoreSitePluginsPlugin): void { + protected loadLangStrings(plugin: CoreSitePluginsPlugin): void { if (!plugin.parsedLang) { return; } @@ -339,9 +339,8 @@ export class CoreSitePluginsHelperProvider { * Load a site plugin. * * @param plugin Data of the plugin. - * @returns Promise resolved when loaded. */ - async loadSitePlugin(plugin: CoreSitePluginsPlugin): Promise { + protected async loadSitePlugin(plugin: CoreSitePluginsPlugin): Promise { this.logger.debug('Load site plugin:', plugin); if (!plugin.parsedHandlers && plugin.handlers) { @@ -378,9 +377,8 @@ export class CoreSitePluginsHelperProvider { * Load site plugins. * * @param plugins The plugins to load. - * @returns Promise resolved when loaded. */ - async loadSitePlugins(plugins: CoreSitePluginsPlugin[]): Promise { + protected async loadSitePlugins(plugins: CoreSitePluginsPlugin[]): Promise { this.courseRestrictHandlers = {}; await CoreUtils.allPromises(plugins.map(async (plugin) => { @@ -401,7 +399,7 @@ export class CoreSitePluginsHelperProvider { * @param version Styles version. * @param siteId Site ID. If not provided, current site. */ - loadStyles( + protected loadStyles( plugin: CoreSitePluginsPlugin, handlerName: string, fileUrl: string, @@ -436,7 +434,7 @@ export class CoreSitePluginsHelperProvider { // Styles have been loaded, now treat the CSS. CoreUtils.ignoreErrors( - CoreFilepool.treatCSSCode(siteId, fileUrl, cssCode, CoreSitePluginsProvider.COMPONENT, uniqueName, version), + CoreFilepool.treatCSSCode(siteId, fileUrl, cssCode, CORE_SITE_PLUGINS_COMPONENT, uniqueName, version), ); } @@ -446,9 +444,8 @@ export class CoreSitePluginsHelperProvider { * @param plugin Data of the plugin. * @param handlerName Name of the handler in the plugin. * @param handlerSchema Data about the handler. - * @returns Promise resolved when done. */ - async registerHandler( + protected async registerHandler( plugin: CoreSitePluginsPlugin, handlerName: string, handlerSchema: CoreSitePluginsHandlerData, @@ -700,7 +697,7 @@ export class CoreSitePluginsHelperProvider { const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName); const blockName = (handlerSchema.moodlecomponent || plugin.component).replace('block_', ''); - const titleString = handlerSchema.displaydata?.title ?? 'pluginname'; + const titleString = handlerSchema.displaydata?.title; const prefixedTitle = this.getPrefixedString(plugin.addon, titleString); CoreBlockDelegate.registerHandler( @@ -761,7 +758,7 @@ export class CoreSitePluginsHelperProvider { // Create and register the handler. const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName); - const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); + const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title); const handler = new CoreSitePluginsCourseOptionHandler( uniqueName, prefixedTitle, @@ -873,7 +870,7 @@ export class CoreSitePluginsHelperProvider { // Create and register the handler. const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName); - const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); + const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title); CoreMainMenuDelegate.registerHandler( new CoreSitePluginsMainMenuHandler(uniqueName, prefixedTitle, plugin, handlerSchema, initResult), @@ -908,7 +905,7 @@ export class CoreSitePluginsHelperProvider { // Create and register the handler. const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName); - const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); + const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title); const processorName = (handlerSchema.moodlecomponent || plugin.component).replace('message_', ''); AddonMessageOutputDelegate.registerHandler( @@ -1074,7 +1071,7 @@ export class CoreSitePluginsHelperProvider { // Create and register the handler. const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName); - const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); + const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title); CoreSettingsDelegate.registerHandler( new CoreSitePluginsSettingsHandler(uniqueName, prefixedTitle, plugin, handlerSchema, initResult), @@ -1109,7 +1106,7 @@ export class CoreSitePluginsHelperProvider { // Create and register the handler. const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName); - const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); + const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title); const handler = new CoreSitePluginsUserProfileHandler(uniqueName, prefixedTitle, plugin, handlerSchema, initResult); CoreUserDelegate.registerHandler(handler); @@ -1182,8 +1179,6 @@ export class CoreSitePluginsHelperProvider { /** * Reload the handlers that are restricted to certain courses. - * - * @returns Promise resolved when done. */ protected async reloadCourseRestrictHandlers(): Promise { if (!Object.keys(this.courseRestrictHandlers).length) { @@ -1240,7 +1235,7 @@ export class CoreSitePluginsHelperProvider { // Create and register the handler. const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName); - const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title || 'pluginname'); + const prefixedTitle = this.getPrefixedString(plugin.addon, handlerSchema.displaydata.title); CoreMainMenuHomeDelegate.registerHandler( new CoreSitePluginsMainMenuHomeHandler(uniqueName, prefixedTitle, plugin, handlerSchema, initResult), @@ -1251,4 +1246,4 @@ export class CoreSitePluginsHelperProvider { } -export const CoreSitePluginsHelper = makeSingleton(CoreSitePluginsHelperProvider); +export const CoreSitePluginsInit = makeSingleton(CoreSitePluginsInitService); diff --git a/src/core/features/siteplugins/services/siteplugins.ts b/src/core/features/siteplugins/services/siteplugins.ts index 014e0faa8..30deff990 100644 --- a/src/core/features/siteplugins/services/siteplugins.ts +++ b/src/core/features/siteplugins/services/siteplugins.ts @@ -34,9 +34,7 @@ import { CorePlatform } from '@services/platform'; import { CoreEnrolAction, CoreEnrolInfoIcon } from '@features/enrol/services/enrol-delegate'; import { CoreSiteWSPreSets } from '@classes/sites/authenticated-site'; import { CoreUserProfileHandlerType } from '@features/user/services/user-delegate'; -import { CORE_SITE_PLUGINS_UPDATE_COURSE_CONTENT } from '../constants'; - -const ROOT_CACHE_KEY = 'CoreSitePlugins:'; +import { CORE_SITE_PLUGINS_COMPONENT, CORE_SITE_PLUGINS_UPDATE_COURSE_CONTENT } from '../constants'; /** * Service to provide functionalities regarding site plugins. @@ -44,7 +42,14 @@ const ROOT_CACHE_KEY = 'CoreSitePlugins:'; @Injectable({ providedIn: 'root' }) export class CoreSitePluginsProvider { - static readonly COMPONENT = 'CoreSitePlugins'; + protected static readonly ROOT_CACHE_KEY = 'CoreSitePlugins:'; + /** + * @deprecated since 4.5.0. Use CORE_SITE_PLUGINS_COMPONENT instead. + */ + static readonly COMPONENT = CORE_SITE_PLUGINS_COMPONENT; + /** + * @deprecated since 4.5.0. Use CORE_SITE_PLUGINS_UPDATE_COURSE_CONTENT instead. + */ static readonly UPDATE_COURSE_CONTENT = CORE_SITE_PLUGINS_UPDATE_COURSE_CONTENT; protected logger: CoreLogger; @@ -183,7 +188,7 @@ export class CoreSitePluginsProvider { * @returns Cache key. */ protected getCallWSCommonCacheKey(method: string): string { - return ROOT_CACHE_KEY + 'ws:' + method; + return CoreSitePluginsProvider.ROOT_CACHE_KEY + 'ws:' + method; } /** @@ -250,7 +255,8 @@ export class CoreSitePluginsProvider { * @returns Cache key. */ protected getContentCacheKey(component: string, method: string, args: Record): string { - return ROOT_CACHE_KEY + 'content:' + component + ':' + method + ':' + CoreUtils.sortAndStringify(args); + return CoreSitePluginsProvider.ROOT_CACHE_KEY + 'content:' + component + ':' + method + + ':' + CoreUtils.sortAndStringify(args); } /** @@ -322,7 +328,7 @@ export class CoreSitePluginsProvider { * @returns Cache key. */ protected getPluginsCacheKey(): string { - return ROOT_CACHE_KEY + 'plugins'; + return CoreSitePluginsProvider.ROOT_CACHE_KEY + 'plugins'; } /** diff --git a/src/core/features/siteplugins/siteplugins.module.ts b/src/core/features/siteplugins/siteplugins.module.ts index 8a58ea4bb..187e36337 100644 --- a/src/core/features/siteplugins/siteplugins.module.ts +++ b/src/core/features/siteplugins/siteplugins.module.ts @@ -20,12 +20,13 @@ import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-ro import { CoreMainMenuHomeRoutingModule } from '@features/mainmenu/mainmenu-home-routing.module'; import { CoreSitePreferencesRoutingModule } from '@features/settings/settings-site-routing.module'; import { CoreSitePluginsComponentsModule } from './components/components.module'; -import { CoreSitePluginsHelper } from './services/siteplugins-helper'; +import { CoreSitePluginsInit } from './services/siteplugins-init'; import { CoreSharedModule } from '@/core/shared.module'; import { CoreSitePluginsPluginPage } from '@features/siteplugins/pages/plugin/plugin'; import { canLeaveGuard } from '@guards/can-leave'; import { CoreSitePluginsCourseOptionPage } from '@features/siteplugins/pages/course-option/course-option'; import { CoreSitePluginsModuleIndexPage } from '@features/siteplugins/pages/module-index/module-index'; +import { CORE_SITE_PLUGINS_PATH } from './constants'; /** * Get site plugins exported objects. @@ -65,7 +66,7 @@ export async function getSitePluginsExportedObjects(): Promise { - CoreSitePluginsHelper.initialize(); + CoreSitePluginsInit.init(); }, }, ],