Merge pull request #2902 from dpalou/MOBILE-3688
MOBILE-3688 siteplugins: Auto create mod index&list link handlersmain
commit
505063710c
|
@ -125,9 +125,7 @@ export class CoreSitePluginsModuleHandler extends CoreSitePluginsBaseHandler imp
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if the plugin specifies if FEATURE_NO_VIEW_LINK is supported.
|
// Check if the plugin specifies if FEATURE_NO_VIEW_LINK is supported.
|
||||||
const noViewLink = <boolean | undefined> (this.supportsFeature ?
|
const noViewLink = this.supportsNoViewLink();
|
||||||
this.supportsFeature(CoreConstants.FEATURE_NO_VIEW_LINK) :
|
|
||||||
this.supportedFeatures?.[CoreConstants.FEATURE_NO_VIEW_LINK]);
|
|
||||||
|
|
||||||
if (noViewLink !== undefined) {
|
if (noViewLink !== undefined) {
|
||||||
return noViewLink;
|
return noViewLink;
|
||||||
|
@ -137,6 +135,17 @@ export class CoreSitePluginsModuleHandler extends CoreSitePluginsBaseHandler imp
|
||||||
return 'noviewlink' in module && !!module.noviewlink;
|
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.
|
* 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 { CoreSitePluginsMainMenuHomeHandler } from '../classes/handlers/main-menu-home-handler';
|
||||||
import { AddonWorkshopAssessmentStrategyDelegate } from '@addons/mod/workshop/services/assessment-strategy-delegate';
|
import { AddonWorkshopAssessmentStrategyDelegate } from '@addons/mod/workshop/services/assessment-strategy-delegate';
|
||||||
import { CoreSitePluginsWorkshopAssessmentStrategyHandler } from '../classes/handlers/workshop-assessment-strategy-handler';
|
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';
|
const HANDLER_DISABLED = 'core_site_plugins_helper_handler_disabled';
|
||||||
|
|
||||||
|
@ -886,9 +889,8 @@ export class CoreSitePluginsHelperProvider {
|
||||||
const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName);
|
const uniqueName = CoreSitePlugins.getHandlerUniqueName(plugin, handlerName);
|
||||||
const modName = (handlerSchema.moodlecomponent || plugin.component).replace('mod_', '');
|
const modName = (handlerSchema.moodlecomponent || plugin.component).replace('mod_', '');
|
||||||
|
|
||||||
CoreCourseModuleDelegate.registerHandler(
|
const moduleHandler = new CoreSitePluginsModuleHandler(uniqueName, modName, plugin, handlerSchema, initResult);
|
||||||
new CoreSitePluginsModuleHandler(uniqueName, modName, plugin, handlerSchema, initResult),
|
CoreCourseModuleDelegate.registerHandler(moduleHandler);
|
||||||
);
|
|
||||||
|
|
||||||
if (handlerSchema.offlinefunctions && Object.keys(handlerSchema.offlinefunctions).length) {
|
if (handlerSchema.offlinefunctions && Object.keys(handlerSchema.offlinefunctions).length) {
|
||||||
// Register the prefetch handler.
|
// 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;
|
return uniqueName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -846,6 +846,7 @@ export type CoreSitePluginsCourseModuleHandlerData = CoreSitePluginsHandlerCommo
|
||||||
ptrenabled?: boolean;
|
ptrenabled?: boolean;
|
||||||
supportedfeatures?: Record<string, unknown>;
|
supportedfeatures?: Record<string, unknown>;
|
||||||
manualcompletionalwaysshown?: boolean;
|
manualcompletionalwaysshown?: boolean;
|
||||||
|
nolinkhandlers?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue