"angular-cookies": "~1.4.0",
"angular-sanitize": "~1.4.0",
"angular-ui-date": "latest",
- "requirejs": "2.1.14",
+ "requirejs": "~2.1.14",
"font-awesome": "~4.0.3",
"bootstrap": "~3.0.2",
"angular-ui-router": "~0.2.10",
"bootstrap": "~3.0.2",
"angular-bootstrap": "~0.13.0",
"ng-grid": "~2.0.7",
- "angularAMD": "~0.1.1",
"requirejs-domready": "~2.0.1",
"ocLazyLoad": "0.3.0",
"angular-css-injector": "~1.0.3",
'vendor/bootstrap/js/dropdown.js',\r
'vendor/angular/angular.js',\r
'vendor/requirejs/requirejs.js',\r
- 'vendor/angularAMD/angularAMD.js',\r
- 'vendor/angularAMD/ngload.js',\r
- 'vendor/requirejs-domready/domReady.js',\r
'vendor/ocLazyLoad/dist/ocLazyLoad.js',\r
'vendor/angular-css-injector/angular-css-injector.js',\r
'vendor/angular-route/angular-route.js',\r
name: "main",
exclude: [
"angular",
- "angularAMD",
- "ngload",
"ui-bootstrap",
- "domReady",
"Restangular",
"underscore",
"angular-ui-router",
private static final long serialVersionUID = 1L;
private static Logger logger = LoggerFactory.getLogger(DluxLoaderIndexServlet.class);
+ private String DEFINEJS_PROPERTY = "defineJS";
+
private String REQUIREJS_PROPERTY = "requireJS";
private String ANGULARJS_PROPERTY = "angularJS";
- private final String REQUIREJS_START = "var module = [";
+ private final String DEFINEJS_START = "var module = [";
+
+ private final String REQUIREJS_START = "var deps = [";
private final String ANGULARJS_START = "var e = [";
}
private String getModulesString() {
+ StringBuilder defineJsBuilder = new StringBuilder();
StringBuilder requireJsBuilder = new StringBuilder();
StringBuilder angularBuilder = new StringBuilder();
+ defineJsBuilder.append(DEFINEJS_START).append(prop.getProperty(DEFINEJS_PROPERTY));
requireJsBuilder.append(REQUIREJS_START).append(prop.getProperty(REQUIREJS_PROPERTY));
angularBuilder.append(ANGULARJS_START).append(prop.getProperty(ANGULARJS_PROPERTY));
for (Module module: loader.getModules()){
requireJsBuilder.append(COMMA_QUOTE).append(module.getRequireJs()).append(QUOTE);
angularBuilder.append(COMMA_QUOTE).append(module.getAngularJs()).append(QUOTE);
}
+ defineJsBuilder.append(end).append(NEWLINE);
requireJsBuilder.append(end).append(NEWLINE);
angularBuilder.append(end);
- return requireJsBuilder.toString() + angularBuilder.toString();
+ return defineJsBuilder.toString() + requireJsBuilder.toString() + angularBuilder.toString();
}
private String getCSSString() {
-requireJS='angularAMD','ocLazyLoad','angular-ui-router','angular-translate','angular-sanitize','angular-translate-loader-static-files','angular-translate-loader-partial','common/config/env.module','angular-css-injector'
-angularJS='oc.lazyLoad', 'ui.router', 'pascalprecht.translate', 'ngSanitize', 'angular.css.injector'
+defineJS= 'angular','ocLazyLoad','angular-ui-router','angular-translate', 'angular-sanitize', 'angular-translate-loader-static-files', 'angular-translate-loader-partial', 'angular-css-injector'
+requireJS='common/config/env.module'
+angularJS='oc.lazyLoad', 'ui.router', 'pascalprecht.translate', 'ngSanitize', 'angular.css.injector', 'app'
javascriptReplaceString=global variables
cssReplaceString=application CSS
\ No newline at end of file
DluxLoaderIndexServlet indexServlet = new DluxLoaderIndexServlet(dluxLoader);
Properties properties = indexServlet.getProp();
+ String defineJS = properties.getProperty("defineJS");
+ Assert.assertNotNull(defineJS);
+ Assert.assertTrue(defineJS.contains("'angular',"));
String requireJS = properties.getProperty("requireJS");
Assert.assertNotNull(requireJS);
- Assert.assertTrue(requireJS.contains("'angularAMD',"));
+ Assert.assertTrue(requireJS.contains("common/config/env.module"));
String angularJS = properties.getProperty("angularJS");
Assert.assertNotNull(angularJS);
Assert.assertTrue(angularJS.contains("'ui.router',"));
//karaf based dlux deployment
/*
var module = [
- 'angularAMD',
- 'app/core/core.module',
+ 'angular',
'angular-translate',
'angular-sanitize',
'angular-translate-loader-static-files',
'angular-ui-router',
'ocLazyLoad',
'angular-css-injector',
+];
+
+var deps = [
+ 'app/core/core.module',
'app/node/nodes.module',
'app/topology/topology.module',
'common/login/login.module',
'common/navigation/navigation.module',
'common/topbar/topbar.module',
'common/layout/layout.module',
- 'common/config/env.module']; //needed module
+ 'common/config/env.module'
+];
// The name of all angularjs module
var e = [
'pascalprecht.translate',
'ngSanitize',
'angular.css.injector',
+ 'app',
'app.nodes',
'app.topology',
'app.common.login',
*/
-define(module, function(ng) {
+define(module, function(angular) {
'use strict';
+ var preboot = [],
+ register = {},
+ dlux_angular = {},
+ orig_angular = angular,
+ app = angular.module('app', []);
- var app = angular.module('app', e);
+ angular.extend(dlux_angular, orig_angular);
+ dlux_angular.module = function(name, deps) {
+ var module = orig_angular.module(name, deps);
+ preboot.push(module);
+ return module;
+ };
+
+ window.angular = dlux_angular; // backward compatibility
// The overal config he is done here.
- app.config(function ($stateProvider, $urlRouterProvider, $ocLazyLoadProvider, $translateProvider, $translatePartialLoaderProvider, cssInjectorProvider) {
+ app.config(function ($urlRouterProvider, $ocLazyLoadProvider, $translateProvider, $translatePartialLoaderProvider, $controllerProvider, $compileProvider, $provide, cssInjectorProvider) {
$urlRouterProvider.otherwise("/topology"); // set the default route
$translatePartialLoaderProvider.addPart('../assets/data/locale');
$translateProvider.preferredLanguage('en_US');
-
$translateProvider.useSanitizeValueStrategy('escape');
- });
- ng.bootstrap(app);
+ // the only way to add a dynamic module
+ register = {
+ controller : $controllerProvider.register,
+ directive : $compileProvider.directive,
+ factory : $provide.factory,
+ service : $provide.service
+ };
+
+ app.register = {};
+ angular.extend(app.register, register);
+ });
- console.log('bootstrap done (: ');
+ /* --- define vs require war ---
+ * From my understanding, we use require when
+ * we want to load a dependency and run it. Define
+ * is only to define the dependency for a module.
+ */
+ require(deps, function() {
+ angular.element(document).ready(function() {
+ angular.bootstrap(document, e).invoke(function() {
+ preboot.forEach(function(m) {
+ angular.extend(m, register);
+ });
+ console.log('bootstrap done (: ');
+ });
+ });
+ });
return app;
});
baseUrl : 'src',
paths : {
'angular' : '../vendor/angular/angular',
- 'angularAMD' : '../vendor/angularAMD/angularAMD',
- 'ngload' : '../vendor/angularAMD/ngload',
'ui-bootstrap' : '../vendor/angular-bootstrap/ui-bootstrap-tpls.min',
- 'domReady' : '../vendor/requirejs-domready/domReady',
'Restangular' : '../vendor/restangular/dist/restangular.min',
'underscore' : '../vendor/underscore/underscore',
'angular-ui-router' : '../vendor/angular-ui-router/release/angular-ui-router',
'sigma-forceAtlas2' : '../vendor/sigma/plugins/sigma.layout.forceAtlas2.min',
'sigma-dragNodes' : '../vendor/sigma/plugins/sigma.plugins.dragNodes.min',
'sigma-customShapes' : '../vendor/sigma/plugins/sigma.renderers.customShapes.min',
- 'graphRenderer' : '../assets/js/graphRenderer',
'ngSlider' : '../vendor/ng-slider/dist/ng-slider.min',
'ZeroClipboard' : '../vendor/zeroclipboard/dist/ZeroClipboard',
'ngClip' : '../vendor/ng-clip/src/ngClip',
'angular-translate-loader-partial' : '../vendor/angular-translate-loader-partial/angular-translate-loader-partial',
},
-
+ map: {
+ '*': {
+ 'angularAMD': 'angular'
+ }
+ },
shim : {
- 'angularAMD' : ['angular'],
'ocLazyLoad' : ['angular'],
'Restangular' : ['angular', 'underscore'],
'ui-bootstrap' : ['angular'],
'angular-translate': ['angular'],
'angular-sanitize': ['angular'],
'angular-translate-loader-static-files' : ['angular-translate'],
- 'ngload' : ['angularAMD'],
- 'pixi' : {
- exports: 'PIXI'
- },
'vis' : {
exports: 'vis'
},
- 'graphRenderer' : ['pixi'],
'jquery' : {
exports : '$'
},
paths : {
'angular' : '../vendor/angular/angular',
'angular-mocks' : '../vendor/angular-mocks/angular-mocks',
- 'angularAMD' : '../vendor/angularAMD/angularAMD',
- 'ngload' : '../vendor/angularAMD/ngload',
'ui-bootstrap' : '../vendor/angular-bootstrap/ui-bootstrap-tpls.min',
- 'domReady' : '../vendor/requirejs-domready/domReady',
'Restangular' : '../vendor/restangular/dist/restangular.min',
'underscore' : '../vendor/underscore/underscore',
'angular-ui-router' : '../vendor/angular-ui-router/release/angular-ui-router',
'jquery' : '../vendor/jquery/jquery',
'jquery-ui' : '../vendor/jquery-ui/jquery-ui.min',
'footable' : '../vendor/footable/dist/footable.min',
- 'pixi': '../vendor/pixi/bin/pixi',
'd3' : '../vendor/d3/d3.min',
'vis' : '../vendor/vis/dist/vis.min',
'ocLazyLoad' : '../vendor/ocLazyLoad/dist/ocLazyLoad',
'sigma-forceAtlas2' : '../vendor/sigma/plugins/sigma.layout.forceAtlas2.min',
'sigma-dragNodes' : '../vendor/sigma/plugins/sigma.plugins.dragNodes.min',
'sigma-customShapes' : '../vendor/sigma/plugins/sigma.renderers.customShapes.min',
- 'graphRenderer' : '../assets/js/graphRenderer',
'ngSlider' : '../vendor/ng-slider/dist/ng-slider.min'
},
-
+ map:{
+ '*': {
+ 'angularAMD': 'angular'
+ }
+ },
shim : {
'angular' : ['jquery'],
'angular-mocks' : ['angular'],
- 'angularAMD' : ['angular'],
'ocLazyLoad' : ['angular'],
'Restangular' : ['angular', 'underscore'],
'ui-bootstrap' : ['angular'],
'angular-cookies' : ['angular'],
'angular-translate': ['angular'],
'angular-translate-loader-static-files' : ['angular-translate'],
- 'ngload' : ['angularAMD'],
- 'pixi' : {
- exports: 'PIXI'
- },
'vis' : {
exports: 'vis'
},
- 'graphRenderer' : ['pixi'],
'jquery' : {
exports : '$'
},