fix composer bug
[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 desc_id = getUrlParameter('id');
47 var desc_type = getUrlParameter('type');
48 if (desc_type === 'nsd') {
49 var element_type = 'cp';
50 var data_form = new FormData();
51
52 var vnfd_node = (link.source.info.type === 'vnf') ? link.source : link.target;
53 var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
54 bootbox.prompt("Please insert the vnfd-connection-point-ref:", function(result){
55 if (result){
56 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
57 data_form.append('vnfd-connection-point-ref', result);
58 data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
59 data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
60 data_form.append('vld_id', vld_node.info.osm['id']);
61
62 $.ajax({
63 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
64 type: 'POST',
65 data: data_form,
66 cache: false,
67 contentType: false,
68 processData: false,
69 success: success,
70 error: error
71 });
72 }
73
74 });
75
76
77 }
78 else if (desc_type === 'vnfd') {
79 if (['vdu', 'cp'].indexOf(link.source.info.type) > -1 && ['vdu', 'cp'].indexOf(link.target.info.type) > -1) {
80 var vdu_node = (link.source.info.type === 'vdu') ? link.source : link.target;
81 var cp_node = (link.source.info.type === 'cp') ? link.source : link.target;
82
83 var data_form = new FormData();
84 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
85 data_form.append('vdu_id', vdu_node.info.osm.id);
86 data_form.append('external-connection-point-ref', cp_node.info.osm.name);
87 data_form.append('name', "eth_" + generateUID());
88 $.ajax({
89 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/interface',
90 type: 'POST',
91 data: data_form,
92 cache: false,
93 contentType: false,
94 processData: false,
95 success: success,
96 error: error
97 });
98 }
99 else if (['vdu', 'vnf_vl'].indexOf(link.source.info.type) > -1 && ['vdu', 'vnf_vl'].indexOf(link.target.info.type) > -1) {
100
101 var vdu_node = (link.source.info.type === 'vdu') ? link.source : link.target;
102 var vld_node = (link.source.info.type === 'vnf_vl') ? link.source : link.target;
103
104 var data_form = new FormData();
105 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
106 data_form.append('vdu_id', vdu_node.info.osm.id);
107 data_form.append('vld_id', vld_node.info.osm.id);
108 data_form.append('id', "intcp_" + generateUID());
109
110 $.ajax({
111 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/int_cp',
112 type: 'POST',
113 data: data_form,
114 cache: false,
115 contentType: false,
116 processData: false,
117 success: success,
118 error: error
119 });
120 }
121
122 }
123
124
125 };
126
127 OsmController.prototype.removeNode = function (graph_editor, node, success, error) {
128 log('removeNode');
129 var desc_id = getUrlParameter('id');
130 var desc_type = getUrlParameter('type');
131 var element_type = node['info']['type'];
132 var data_form = new FormData();
133 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
134 for (var key in node.info.osm) {
135 data_form.append(key, node.info.osm[key]);
136 }
137
138 $.ajax({
139 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/removeElement/' + element_type,
140 type: 'POST',
141 data: data_form,
142 cache: false,
143 contentType: false,
144 processData: false,
145 success: success,
146 error: error
147 });
148
149 };
150
151 OsmController.prototype.updateNode = function (graph_editor, node, args, success, error) {
152 log('updateNode');
153 var desc_id = getUrlParameter('id');
154 var desc_type = getUrlParameter('type');
155 var element_type = node['info']['type'];
156 console.log(args)
157 var data_form = new FormData();
158 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
159 data_form.append('old', JSON.stringify(node.info.osm));
160 data_form.append('update', JSON.stringify(args));
161 /*for (var key in node.info.osm) {
162 data_form.append(key, node.info.osm[key]);
163 }
164 */
165
166 $.ajax({
167 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/updateElement/' + element_type,
168 type: 'POST',
169 data: data_form,
170 cache: false,
171 contentType: false,
172 processData: false,
173 success: success,
174 error: error
175 });
176
177 };
178
179 OsmController.prototype.updateGraphParams = function (args, success, error) {
180 var desc_id = getUrlParameter('id');
181 var desc_type = getUrlParameter('type');
182 var data_form = new FormData();
183 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
184 data_form.append('update', JSON.stringify(args));
185 $.ajax({
186 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/updateElement/graph_params',
187 type: 'POST',
188 data: data_form,
189 cache: false,
190 contentType: false,
191 processData: false,
192 success: success,
193 error: error
194 });
195 };
196
197 OsmController.prototype.removeLink = function (graph_editor, link, success, error) {
198 log('removeLink');
199 var data_to_send = {
200 'desc_id': link.desc_id,
201 'source': link.source.id,
202 'source_type': link.source.info.type,
203 'target': link.target.id,
204 'target_type': link.target.info.type,
205 'view': link.view,
206 'group': link.group
207 };
208
209 var desc_id = getUrlParameter('id');
210 var desc_type = getUrlParameter('type');
211
212 if (desc_type === 'nsd') {
213 var element_type = 'ns_cp';
214 var data_form = new FormData();
215 var ns_cp = (link.source.info.type === 'ns_cp') ? link.source : link.target;
216 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
217 data_form.append('member-vnf-index-ref', ns_cp.info.osm['member-vnf-index-ref']);
218 data_form.append('vnfd-id-ref', ns_cp.info.osm['vnfd-id-ref']);
219 data_form.append('vld_id', ns_cp.info.osm['vld_id']);
220
221 $.ajax({
222 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/removeElement/' + element_type,
223 type: 'POST',
224 data: data_form,
225 cache: false,
226 contentType: false,
227 processData: false,
228 success: success,
229 error: error
230 });
231 }
232 };
233
234 /**
235 * Log utility
236 */
237 function log(text) {
238 if (DEBUG)
239 console.log("::OsmController::", text);
240 }
241
242 return OsmController;
243 }(this));
244
245 if (typeof module === 'object') {
246 module.exports = TCD3.OsmController;
247 }