[wip] composer nsd
[osm/LW-UI.git] / static / src / descriptorhandler / controller.js
1 if (typeof TCD3 === 'undefined') {
2 var TCD3 = {};
3 }
4
5 TCD3.OsmController = (function (global) {
6 'use strict';
7
8 var DEBUG = true;
9
10 OsmController.prototype.constructor = OsmController;
11
12 /**
13 * Constructor
14 */
15 function OsmController() {
16
17
18 }
19
20
21 OsmController.prototype.addNode = function (graph_editor, node, success, error) {
22 log('addNode');
23 var element_type = node.info.type;
24 var desc_id = node.info.desc_id;
25 var desc_type = node.info.desc_type;
26 var data_form = new FormData();
27 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
28 for (var key in node) {
29 data_form.append(key, node[key]);
30 }
31 $.ajax({
32 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
33 type: 'POST',
34 data: data_form,
35 cache: false,
36 contentType: false,
37 processData: false,
38 success: success,
39 error: error
40 });
41 };
42
43 OsmController.prototype.addLink = function (graph_editor, link, success, error) {
44 log('addLink');
45
46 var data_to_send = {
47 'desc_id': link.desc_id,
48 'source': link.source.id,
49 'source_type': link.source.info.type,
50 'target': link.target.id,
51 'target_type': link.target.info.type,
52 'view': link.view,
53 'group': link.group
54 };
55
56 var desc_id = getUrlParameter('id');
57 var desc_type = getUrlParameter('type');
58 if (desc_type === 'nsd') {
59 var element_type = 'cp';
60 var data_form = new FormData();
61
62 var vnfd_node = (link.source.info.type === 'vnf') ? link.source : link.target;
63 var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
64
65 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
66 data_form.append('vnfd-connection-point-ref', 'cp_temp');
67 data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
68 data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
69 data_form.append('vld_id', vld_node.info.osm['id']);
70
71 $.ajax({
72 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
73 type: 'POST',
74 data: data_form,
75 cache: false,
76 contentType: false,
77 processData: false,
78 success: success,
79 error: error
80 });
81 }
82
83 };
84
85 OsmController.prototype.removeNode = function (graph_editor, node, success, error) {
86 log('removeNode');
87 var desc_id = getUrlParameter('id');
88 var desc_type = getUrlParameter('type');
89 var element_type = node['info']['type'];
90 var data_form = new FormData();
91 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
92 for (var key in node.info.osm) {
93 data_form.append(key, node.info.osm[key]);
94 }
95
96 $.ajax({
97 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/removeElement/' + element_type,
98 type: 'POST',
99 data: data_form,
100 cache: false,
101 contentType: false,
102 processData: false,
103 success: success,
104 error: error
105 });
106
107 };
108
109 OsmController.prototype.updateNode = function (graph_editor, node, args, success, error) {
110 log('updateNode');
111 var desc_id = getUrlParameter('id');
112 var desc_type = getUrlParameter('type');
113 var element_type = node['info']['type'];
114 console.log(args)
115 var data_form = new FormData();
116 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
117 data_form.append('old', JSON.stringify( node.info.osm));
118 data_form.append('update', JSON.stringify(args));
119 /*for (var key in node.info.osm) {
120 data_form.append(key, node.info.osm[key]);
121 }
122 */
123
124 $.ajax({
125 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/updateElement/' + element_type,
126 type: 'POST',
127 data: data_form,
128 cache: false,
129 contentType: false,
130 processData: false,
131 success: success,
132 error: error
133 });
134
135 };
136
137 OsmController.prototype.updateGraphParams = function(args, success, error){
138 var desc_id = getUrlParameter('id');
139 var desc_type = getUrlParameter('type');
140 var data_form = new FormData();
141 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
142 data_form.append('update', JSON.stringify(args));
143 $.ajax({
144 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/updateElement/graph_params',
145 type: 'POST',
146 data: data_form,
147 cache: false,
148 contentType: false,
149 processData: false,
150 success: success,
151 error: error
152 });
153 };
154
155 OsmController.prototype.removeLink = function (graph_editor, link, success, error) {
156 log('removeLink');
157 var data_to_send = {
158 'desc_id': link.desc_id,
159 'source': link.source.id,
160 'source_type': link.source.info.type,
161 'target': link.target.id,
162 'target_type': link.target.info.type,
163 'view': link.view,
164 'group': link.group
165 };
166
167 var desc_id = getUrlParameter('id');
168 var desc_type = getUrlParameter('type');
169
170 if (desc_type === 'nsd') {
171 var element_type = 'cp';
172 var data_form = new FormData();
173
174 var vnfd_node = (link.source.info.type === 'vnf') ? link.source : link.target;
175 var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
176
177 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
178 data_form.append('vnfd-connection-point-ref', 'cp_temp');
179 data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
180 data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
181 data_form.append('vld_id', vld_node.info.osm['id']);
182
183 $.ajax({
184 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/removeElement/' + element_type,
185 type: 'POST',
186 data: data_form,
187 cache: false,
188 contentType: false,
189 processData: false,
190 success: success,
191 error: error
192 });
193 }
194 };
195
196 /**
197 * Log utility
198 */
199 function log(text) {
200 if (DEBUG)
201 console.log("::OsmController::", text);
202 }
203
204 return OsmController;
205 }(this));
206
207 if (typeof module === 'object') {
208 module.exports = TCD3.OsmController;
209 }