forked from EVOgeek/Vmeda.Online
		
	Merge pull request #2902 from dpalou/MOBILE-3688
MOBILE-3688 siteplugins: Auto create mod index&list link handlers
This commit is contained in:
		
						commit
						505063710c
					
				| @ -125,9 +125,7 @@ export class CoreSitePluginsModuleHandler extends CoreSitePluginsBaseHandler imp | ||||
|         } | ||||
| 
 | ||||
|         // Check if the plugin specifies if FEATURE_NO_VIEW_LINK is supported.
 | ||||
|         const noViewLink = <boolean | undefined> (this.supportsFeature ? | ||||
|             this.supportsFeature(CoreConstants.FEATURE_NO_VIEW_LINK) : | ||||
|             this.supportedFeatures?.[CoreConstants.FEATURE_NO_VIEW_LINK]); | ||||
|         const noViewLink = this.supportsNoViewLink(); | ||||
| 
 | ||||
|         if (noViewLink !== undefined) { | ||||
|             return noViewLink; | ||||
| @ -137,6 +135,17 @@ export class CoreSitePluginsModuleHandler extends CoreSitePluginsBaseHandler imp | ||||
|         return 'noviewlink' in module && !!module.noviewlink; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Check whether the module supports NO_VIEW_LINK. | ||||
|      * | ||||
|      * @return Bool if defined, undefined if not specified. | ||||
|      */ | ||||
|     supportsNoViewLink(): boolean | undefined { | ||||
|         return <boolean | undefined> (this.supportsFeature ? | ||||
|             this.supportsFeature(CoreConstants.FEATURE_NO_VIEW_LINK) : | ||||
|             this.supportedFeatures?.[CoreConstants.FEATURE_NO_VIEW_LINK]); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Load and use template for course page. | ||||
|      * | ||||
|  | ||||
| @ -81,6 +81,9 @@ import { CoreMainMenuHomeDelegate } from '@features/mainmenu/services/home-deleg | ||||
| import { CoreSitePluginsMainMenuHomeHandler } from '../classes/handlers/main-menu-home-handler'; | ||||
| import { AddonWorkshopAssessmentStrategyDelegate } from '@addons/mod/workshop/services/assessment-strategy-delegate'; | ||||
| import { CoreSitePluginsWorkshopAssessmentStrategyHandler } from '../classes/handlers/workshop-assessment-strategy-handler'; | ||||
| import { CoreContentLinksModuleIndexHandler } from '@features/contentlinks/classes/module-index-handler'; | ||||
| import { CoreContentLinksDelegate } from '@features/contentlinks/services/contentlinks-delegate'; | ||||
| import { CoreContentLinksModuleListHandler } from '@features/contentlinks/classes/module-list-handler'; | ||||
| 
 | ||||
| const HANDLER_DISABLED = 'core_site_plugins_helper_handler_disabled'; | ||||
| 
 | ||||
| @ -886,9 +889,8 @@ export class CoreSitePluginsHelperProvider { | ||||
|         const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName); | ||||
|         const modName = (handlerSchema.moodlecomponent || plugin.component).replace('mod_', ''); | ||||
| 
 | ||||
|         CoreCourseModuleDelegate.registerHandler( | ||||
|             new CoreSitePluginsModuleHandler(uniqueName, modName, plugin, handlerSchema, initResult), | ||||
|         ); | ||||
|         const moduleHandler = new CoreSitePluginsModuleHandler(uniqueName, modName, plugin, handlerSchema, initResult); | ||||
|         CoreCourseModuleDelegate.registerHandler(moduleHandler); | ||||
| 
 | ||||
|         if (handlerSchema.offlinefunctions && Object.keys(handlerSchema.offlinefunctions).length) { | ||||
|             // Register the prefetch handler.
 | ||||
| @ -897,6 +899,19 @@ export class CoreSitePluginsHelperProvider { | ||||
|             ); | ||||
|         } | ||||
| 
 | ||||
|         // Create default link handlers if needed.
 | ||||
|         if (!moduleHandler.supportsNoViewLink() && handlerSchema.method && !handlerSchema.nolinkhandlers) { | ||||
|             const indexLinkHandler = new CoreContentLinksModuleIndexHandler(uniqueName, modName); | ||||
|             indexLinkHandler.name = uniqueName + '_indexlink'; | ||||
|             indexLinkHandler.priority = -1; // Use -1 to give more priority to the plugins link handlers if any.
 | ||||
|             CoreContentLinksDelegate.registerHandler(indexLinkHandler); | ||||
| 
 | ||||
|             const listLinkHandler = new CoreContentLinksModuleListHandler(uniqueName, modName); | ||||
|             listLinkHandler.name = uniqueName + '_listlink'; | ||||
|             listLinkHandler.priority = -1; // Use -1 to give more priority to the plugins link handlers if any.
 | ||||
|             CoreContentLinksDelegate.registerHandler(listLinkHandler); | ||||
|         } | ||||
| 
 | ||||
|         return uniqueName; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -846,6 +846,7 @@ export type CoreSitePluginsCourseModuleHandlerData = CoreSitePluginsHandlerCommo | ||||
|     ptrenabled?: boolean; | ||||
|     supportedfeatures?: Record<string, unknown>; | ||||
|     manualcompletionalwaysshown?: boolean; | ||||
|     nolinkhandlers?: boolean; | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user