1 (function () {//execute in anonymous namespace/closure: 2 3 /** @memberOf mmir.require */ 4 var mmirf_config = { 5 6 /** @memberOf mmir.require.config */ 7 baseUrl: './mmirf' 8 9 //TODO this should be defined/"defineable" somewhere else (outside the framework-scope) 10 , config: { 11 12 /** @memberOf mmir.require.config.moduleConfig */ 13 'inputManager': { 14 scxmlDoc: 'config/statedef/inputDescriptionSCXML.xml' 15 // simple | mode 16 , mode: 'extended' 17 //EXAMPLE: set module-specific log-level to 'info' 18 // , logLevel: 'info' 19 } 20 21 , 'dialogManager': { 22 scxmlDoc: 'config/statedef/dialogDescriptionSCXML.xml' 23 // simple | mode 24 , mode: 'extended' 25 //EXAMPLE: set module-specific log-level to 'verbose' 26 // , logLevel: 'verbose' 27 } 28 29 //EXAMPLE: set module-specific log-level to 'warn' 30 // log-levels: 'verbose' | 'debug' | 'info' | 'warn' | 'error' | 'critical' | 'disabled' 31 // or number: 0 1 2 3 4 5 6 32 // , 'view': { logLevel: 'warn' } 33 34 } 35 36 , paths : { 37 /** @memberOf mmir.require.config.paths */ 38 // core 39 'core': 'core' 40 , 'main': 'main' 41 42 // lib 43 , 'jquery': 'vendor/libs/jquery-2.1.3' 44 , 'scion': 'vendor/libs/scion-amd' 45 46 // globals and AMDs 47 , 'constants': 'tools/constants' 48 , 'commonUtils': 'tools/commonUtils' 49 , 'stringExtension': 'tools/extensions/StringExtensions' 50 , 'dictionary': 'tools/dictionary' 51 , 'paramsParseFunc': 'tools/paramsParseFunc' 52 , 'env': 'tools/envDetect' 53 , 'envInit': 'tools/envInit' 54 55 // dialog/input manager 56 , 'inputManager': 'manager/dialog/inputManager' 57 , 'dialogManager': 'manager/dialog/dialogManager' 58 , 'engineConfig': 'manager/dialog/engineConfig' 59 60 , 'scionEngine': 'manager/dialog/scion/scionEngine' 61 , 'scionUtil': 'manager/dialog/scion/scionUtil' 62 63 // controllers/models 64 , 'controllerManager': 'manager/controllerManager' 65 , 'controller': 'mvc/controllers/controller' 66 , 'helper': 'mvc/controllers/helper' 67 , 'modelManager': 'manager/modelManager' 68 69 // ##################################################################### 70 // ########### PRESENTATION LAYER (TODO: make changeable) ############## 71 // ##################################################################### 72 73 , 'presentationManager': 'manager/presentationManager' 74 75 //default view-engine (this ID is used in core.viewEngine) 76 , 'jqmViewEngine': 'env/view/jqmViewEngine' 77 78 //dependencies for the jqmViewEngine (NOTE these may not be loaded, if jqmViewEngine is not loaded) 79 , 'jqm' : 'vendor/libs/jquery.mobile-1.4.3' 80 , 'jqmSimpleModal': 'vendor/libs/jquery.simplemodal-1.4.4' 81 82 , 'waitDialog': 'tools/stdlne-wait-dlg' 83 84 // @chsc03 required by parseUtils and all its dependencies declared in presentationManager 85 , 'antlr3' : 'vendor/libs/antlr3-all' 86 87 , 'configurationManager': 'manager/settings/configurationManager' 88 89 // @chsc03 required by contentElement, renderUtils, declared in presentationManager [@russa not really...] 90 , 'languageManager': 'manager/settings/languageManager' 91 92 , 'mediaManager': 'manager/mediaManager' 93 , 'notificationManager': 'manager/notificationManager' 94 95 96 , 'viewConstants': 'mvc/views/viewConstants' 97 // @chsc03 depends on parseUtils, renderUtils, yield, required in presentationManager 98 , 'layout': 'mvc/views/layout' 99 // @chsc03 depends on parseUtils, renderUtils, contentElement, required in presentationManager 100 , 'view': 'mvc/views/view' 101 // @chsc03 depends on parseUtils, renderUtils, contentElement, required in presentationManager 102 , 'partial': 'mvc/views/partial' 103 , 'contentElement': 'mvc/views/contentElement' 104 , 'yield': 'mvc/views/yield' 105 106 // @chsc03 renderUtils required by presentationManager and depends on parserModule 107 , 'renderUtils': 'mvc/parser/templateRenderUtils' 108 , 'parserModule': 'mvc/parser/parserModule' 109 110 , 'storageUtils': 'mvc/parser/storageUtils' 111 112 // @chsc03 parseUtils depends on the following paths 113 , 'parseUtils': 'mvc/parser/templateParseUtils' 114 , 'ES3Lexer': 'gen/parser/ES3Lexer' 115 , 'ES3Parser': 'gen/parser/ES3Parser' 116 , 'scriptLexer': 'gen/parser/MmirScriptLexer' 117 , 'scriptParser': 'gen/parser/MmirScriptParser' 118 , 'contentLexer': 'gen/parser/MmirScriptContentLexer' 119 , 'contentParser': 'gen/parser/MmirScriptContentParser' 120 , 'templateLexer': 'gen/parser/MmirTemplateLexer' 121 , 'templateParser': 'gen/parser/MmirTemplateParser' 122 123 // @chsc03 templateProcessor depends on parsingResult 124 , 'templateProcessor': 'mvc/parser/templateProcessor' 125 , 'parsingResult': 'mvc/parser/parsingResult' 126 127 //grammar related 128 , 'grammarConverter': 'semantic/grammarConverter' 129 , 'semanticInterpreter': 'semantic/semanticInterpreter' 130 , 'asyncGrammar': 'semantic/asyncGrammar' 131 , 'jscc': 'vendor/libs/jscc-amd' 132 , 'jison': 'vendor/libs/jison' 133 , 'pegjs': 'vendor/libs/peg-0.8.0' 134 , 'asyncGen': 'env/grammar/asyncGenerator' 135 , 'jsccGen': 'env/grammar/jsccGenerator' 136 , 'jsccAsyncGen': 'env/grammar/jsccAsyncGenerator' 137 , 'jisonGen': 'env/grammar/jisonGenerator' 138 , 'jisonAsyncGen': 'env/grammar/jisonAsyncGenerator' 139 , 'pegjsGen': 'env/grammar/pegjsGenerator' 140 , 'pegjsAsyncGen': 'env/grammar/pegjsAsyncGenerator' 141 142 //MD5 checksum computation: for checking pre-compiled resources, e.g. 143 // grammars (JSON->JS), and templates (eHTML->JS) 144 , 'md5' : 'vendor/libs/md5' 145 , 'checksumUtils' : 'tools/checksumUtils' 146 147 //utility function for loading LINK tags (i.e. CSS files) into the current document 148 , 'loadCss' : 'tools/loadCss' 149 150 , 'commonUtilsCompatibility' : 'tools/extensions/CommonUtilsCompatibility' 151 , 'languageManagerCompatibility' : 'tools/extensions/LanguageManagerCompatibility' 152 153 },//END: paths : {... 154 155 shim : { 156 157 /** @memberOf mmir.require.config.shim */ 158 'antlr3': {exports : 'org'} 159 160 , 'md5': {exports : 'CryptoJS'} 161 162 , 'pegjs': {exports: 'PEG'} 163 164 , 'ES3Lexer': {deps: ['antlr3'], exports: 'ES3Lexer'} 165 , 'ES3Parser': {deps: ['antlr3'], exports: 'ES3Parser'} 166 , 'scriptLexer': {deps: ['antlr3'], exports: 'MmirScriptLexer'} 167 , 'scriptParser': {deps: ['antlr3'], exports: 'MmirScriptParser'} 168 , 'contentLexer': {deps: ['antlr3'], exports: 'MmirScriptContentLexer'} 169 , 'contentParser': {deps: ['antlr3'], exports: 'MmirScriptContentParser'} 170 , 'templateLexer': {deps: ['antlr3'], exports: 'MmirTemplateLexer'} 171 , 'templateParser': {deps: ['antlr3'], exports: 'MmirTemplateParser'} 172 173 //dependencies for jqmViewEngine (may not be loaded if jqmViewEngine is not loaded) 174 , 'jqm': ['jquery'] 175 , 'jqmSimpleModal': ['jqm'] 176 } 177 178 };//END: require.config({... 179 180 181 var reqInstance = requirejs.config(mmirf_config); 182 183 reqInstance(['core'], function(core){ 184 185 //attach the local-require instance: 186 core.require = reqInstance; 187 188 //get the "entry-point", i.e. module-name/-id that will be loaded (default: "main") 189 var startModule = core.startModule; 190 191 //setup the logger implementation: 192 // one of ['logger' | 'loggerDisabled'] 193 var logConfig = {paths:{'logger': 'tools/logger'}}; 194 if(core.debug === false){ 195 //this will load a "disabled" logger implementation with no-op functions etc. 196 logConfig.paths.logger += 'Disabled'; 197 } 198 //if the "functional" logger is set, configure it: 199 else{ 200 201 //retrieve/set the default log-level: 202 if(typeof core.logLevel !== 'undefined'){ 203 logConfig.config = {'logger': {logLevel: core.logLevel}}; 204 } 205 206 //set up the stacktrace for log messages (or not) 207 var isEnableTrace = true; 208 if(typeof core.logTrace !== 'undefined'){ 209 isEnableTrace = core.logTrace; 210 } 211 212 //normalize config object 213 if(!logConfig.config){ 214 logConfig.config = {}; 215 } 216 if(!logConfig.config['logger']){ 217 logConfig.config['logger'] = {}; 218 } 219 220 if(isEnableTrace === true || (isEnableTrace && isEnableTrace.trace === true)){ 221 //add module ID for stacktrace library 222 logConfig.paths['stacktrace'] = 'vendor/libs/stacktrace-v0.6.4'; 223 logConfig.config['logger'].trace = isEnableTrace; 224 } 225 else { 226 //define dummy module for stacktrace library (will not be used!) 227 define('stacktrace', function(){ return function(){}; }); 228 logConfig.config['logger'].trace = false; 229 } 230 231 } 232 //"append" the logger-config 233 core.config(logConfig); 234 235 236 //apply all configs / modifications that were made on the core-module 237 core.applyConfig(mmirf_config); 238 239 240 //finally: trigger framework loading 241 core.require(['logger',startModule]); 242 }); 243 244 }());//END: (function(){... 245