Merge "Use ${project.version} for internal dependencies"
[ovsdb.git] / ovsdb-ui / module / src / main / resources / ovsdb / ovsdb.module.js
1 /*\r
2  * Copyright (c) 2015 Inocybe Technologies and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 define(['angularAMD', 'app/routingConfig', 'Restangular', 'angular-translate', 'angular-translate-loader-static-files', 'app/core/core.services', 'common/config/env.module'], function(ng) {\r
10   'use strict';\r
11 \r
12   var ovsdb = angular.module('app.ovsdb', ['app.core', 'pascalprecht.translate', 'ui.router.state', 'restangular', 'config']);\r
13   ovsdb.register = ovsdb; // for unit test\r
14 \r
15   // Filter to access neutron opendaylight.\r
16   // This factory need to be to avoid circular dependencies.\r
17   ovsdb.factory('NeutronInterceptor', ['$q', '$window', 'Base64', function($q, $window, Base64) {\r
18     return {\r
19       request : function(config) {\r
20           // Use AAA basic authentication\r
21         if (config.url.indexOf('controller/nb/v2') != -1) {\r
22           config.headers = config.headers || {};\r
23           if ($window.sessionStorage.odlUser && $window.sessionStorage.odlPass) {\r
24             var encoded = Base64.encode('admin' + ':' + 'admin');\r
25             config.headers.Authorization = 'Basic ' + encoded;\r
26           }\r
27         }\r
28         return config;\r
29       },\r
30       response : function(response) {\r
31         return response || $q.when(response);\r
32       }\r
33     };\r
34   }]);\r
35 \r
36   ovsdb.config(function($stateProvider, $compileProvider, $controllerProvider, $provide, $httpProvider, NavHelperProvider) {\r
37     ovsdb.register = {\r
38       controller : $controllerProvider.register,\r
39       directive : $compileProvider.directive,\r
40       factory : $provide.factory,\r
41       service : $provide.service,\r
42       constant: $provide.constant\r
43 \r
44     };\r
45 \r
46     NavHelperProvider.addControllerUrl('src/app/ovsdb/ovsdb.controller.js');\r
47     NavHelperProvider.addToMenu('Ovsdb', {\r
48      "link" : "#/ovsdb/index",\r
49      "active" : "main.ovsdb.*",\r
50      "title" : "Network Virtualization",\r
51      "icon" : "icon-sitemap",\r
52      "page" : {\r
53         "title" : "NetWork Virtualization",\r
54         "description" : "OVSDB"\r
55      }\r
56     });\r
57 \r
58     var access = routingConfig.accessLevels;\r
59     $stateProvider.state('main.ovsdb', {\r
60       url: 'ovsdb',\r
61       abstract: true,\r
62       views : {\r
63         'content' : {\r
64           templateUrl: 'src/app/ovsdb/views/root.tpl.html',\r
65           controller: 'RootOvsdbCtrl'\r
66         }\r
67       }\r
68     });\r
69 \r
70     $stateProvider.state('main.ovsdb.index', {\r
71       url: '/index',\r
72       access: access.admin,\r
73       views: {\r
74         '': {\r
75           templateUrl: 'src/app/ovsdb/views/index.tpl.html',\r
76           controller: 'OvsdbCtrl'\r
77         }\r
78       }\r
79     });\r
80 \r
81     $httpProvider.interceptors.push('NeutronInterceptor');\r
82   });\r
83 \r
84   return ovsdb;\r
85 });\r