a7592e32e346e92c78b551b1faba24e14b9ebb94
[dlux.git] / modules / flow-resources / src / main / resources / flow / flows.module.js
1 define(['angularAMD', 'Restangular', 'app/routingConfig', 'common/general/finishRender.module', 'app/core/core.services',
2     'common/general/common.general.services', 'common/config/env.module'], function (ng) {
3   var flows = angular.module('app.flows', ['ui.router.state', 'app.core', 'restangular', 'app.common.finishRender','app.common.general', 'config']);
4
5   flows.config(function($controllerProvider, $compileProvider, $provide, $stateProvider, $translateProvider, NavHelperProvider) {
6     flows.register = {
7       controller : $controllerProvider.register,
8       directive : $compileProvider.directive,
9       service : $provide.service,
10       factory : $provide.factory
11     };
12
13     $translateProvider.useStaticFilesLoader({
14       prefix: 'assets/data/locale-',
15       suffix: '.json'
16     });
17
18     var access = routingConfig.accessLevels;
19     $stateProvider.state('main.flow', {
20
21       url: 'flow',
22       views : {
23         'content' : {
24           templateUrl: 'src/app/flow/root.tpl.html',
25           controller: 'rootFlowCtrl'
26         }
27       },
28       abstract: true
29     });
30
31     NavHelperProvider.addControllerUrl('app/flow/flows.controller');
32     NavHelperProvider.addToMenu('flow', {
33       "link": "#/flow/index",
34       "active": "flow",
35       "title": "FLOWS",
36       "icon": "icon-level-down",
37       "page": {
38         "title": "FLOWS",
39         "description": "FLOWS"
40       }
41     });
42
43     // List all flow - independant of node.
44     $stateProvider.state('main.flow.index', {
45       url: '/index',
46       access: access.public,
47       views: {
48         '': {
49           templateUrl: 'src/app/flow/index.tpl.html',
50           controller: 'ListAllFlowCtrl'
51         }
52       }
53     });
54
55     $stateProvider.state('main.flow.create', {
56       url: '/create',
57       access: access.public,
58       views: {
59         '': {
60           templateUrl: 'src/app/flow/create.tpl.html',
61           controller: 'FlowCreateCtrl'
62         },
63         'composer@flow.create': {
64           templateUrl: 'src/app/flow/composer.tpl.html',
65           controller: 'FlowCompositionCtrl'
66         },
67         'composer@flow.edit': {
68           templateUrl: 'src/app/flow/composer.tpl.html',
69           controller: 'FlowCompositionCtrl'
70         },
71       }
72     });
73
74     // List the flow on a node
75     $stateProvider.state('main.flow.node', {
76       url: '/{nodeType}/{nodeId}',
77       access: access.public,
78       views: {
79         '': {
80           templateUrl: 'flow/node.tpl.html',
81           controller: 'ListNodeFlowCtrl'
82         }
83       }
84     });
85
86     // Show details
87     $stateProvider.state('main.flow.detail', {
88       url: '/:nodeType/:nodeId/:flowName/detail',
89       access: access.public,
90       views: {
91         '': {
92           templateUrl: 'src/app/flow/detail.tpl.html',
93           controller:'ShowDetailCtrl'
94         }
95       }
96     });
97
98     // Edit state which uses the '' view in flow.detail
99     $stateProvider.state('main.flow.edit', {
100       url: '/:nodeType/:nodeId/:flowName/edit',
101       access: access.public,
102       views: {
103         '': {
104           templateUrl: 'src/app/flow/edit.tpl.html',
105           controller: 'EditStateCtrl'
106         }
107       }
108     });
109   });
110
111   return flows;
112 });