1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /* Module that loads a user's custom module that was specified within the Publishing Template. */
- define(["options", "util", "require"], function (options, util, require) {
- /**
- * @type {string}
- *
- * The ID of the Publishing Template base directory as it is specified in the configuration
- * object passed to the RequireJS library used to load the JS modules.
- */
- var TEMPLATE_BASE_DIR_ID = "template-base-dir";
- /**
- * @type {string}
- *
- * Specifies if the custom JavaScript module specified in the Publishing Template
- * should be loaded or not.
- */
- var isTemplateJsModuleLoadingEnabled = options.getBoolean('webhelp.enable.template.js.module.loading');
- /**
- * @type {string}
- *
- * The path of the template's main JS module relative to the base directory of the Publishing Template.
- */
- var templateMainJsModuleRelPath = options.get('webhelp.js.module.rel.path');
- if (isTemplateJsModuleLoadingEnabled && templateMainJsModuleRelPath) {
- var templateMainJsID = getTemplateMainJsID(templateMainJsModuleRelPath);
- try {
- require(
- [templateMainJsID],
- function() {
- util.debug("Finished loading custom script:", templateMainJsModuleRelPath);
- },
- // Error callback
- function(err) {
- console.error("Cannot load script:", templateMainJsModuleRelPath, err);
- }
- );
- } catch(err) {
- console.error("Cannot load script:", templateMainJsModuleRelPath, err);
- }
- }
- /**
- * Computes the ID of the template's main JS module.
- *
- * @param templateMainJsModuleRelPath The path of the template's main JS module
- * relative to the base directory of the Publishing Template.
- */
- function getTemplateMainJsID(templateMainJsModuleRelPath) {
- // Remove .js extension
- var ext = ".js";
- var templateMainJsRelPathNoExt;
- if (templateMainJsModuleRelPath.endsWith(ext)) {
- templateMainJsRelPathNoExt = templateMainJsModuleRelPath.substring(0, templateMainJsModuleRelPath.length - ext.length);
- } else {
- templateMainJsRelPathNoExt = templateMainJsModuleRelPath;
- }
- return TEMPLATE_BASE_DIR_ID + "/" + templateMainJsRelPathNoExt;
- }
- });
|