From 550e2f03ad0b60b3c9db3d68dbf014dcb740a2ff Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Tue, 17 Jan 2017 15:37:25 +0530 Subject: Initial Commit --- src/moduleLoader.js | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/moduleLoader.js (limited to 'src/moduleLoader.js') diff --git a/src/moduleLoader.js b/src/moduleLoader.js new file mode 100644 index 0000000..7fac5fe --- /dev/null +++ b/src/moduleLoader.js @@ -0,0 +1,67 @@ +define(['nunjucks', 'config', 'jqueryui'], function(nunjucks, CONFIG) { + + var MODULE_LOADER = { + load: function(moduleName, title) { + + var module = CONFIG.module[moduleName]; + + + if (CONFIG.module[moduleName]["template"]) { + require(['text!' + CONFIG.module[moduleName]["template"]], function(template) { + var compiledTemplate = nunjucks.renderString(template, { title: title }); + + if (module.childView) { + if (!$(module.childView.mainView).length) { + $(CONFIG.renderArea).html(''); + require(['text!' + module.childView.template], function(childTemplate) { + var compiledChildTemplate = nunjucks.renderString(childTemplate, { title: title }); + $(compiledChildTemplate).appendTo(CONFIG.renderArea); + $(compiledTemplate).appendTo(CONFIG.renderArea); + }); + + } else { + $(CONFIG.renderArea).children(":not(" + module.childView.mainView + ")").remove(); + $(compiledTemplate).appendTo(CONFIG.renderArea); + } + + } else { + $(CONFIG.renderArea).html(''); + $(compiledTemplate).appendTo(CONFIG.renderArea); + } + + + if (module.scripts.length > 0) { + if (module.main) { + require.undef(module.main); + require([module.main], function(module_obj) { + console.log(module_obj) + module_obj.init(); + }) + } + require(module.scripts); + } + + if (CONFIG.common && !module.rejectcommon) { + require.undef(CONFIG.common[0]); + require(CONFIG.common, function(common) { + common.init(); + }); + } + + }); + + } + + if (title) { + setTimeout(function(){ + document.title = CONFIG.appName + " - " + title; + }) + + } + + } + } + + return MODULE_LOADER; + +}); -- cgit v1.2.3