rebuild GUI structure(only changed modules' name)
[vnfsdk/refrepo.git] / resmgr / src / main / webapp / resmgr-sdn / js / brs.js
1 /* Copyright 2016-2017, Huawei Technologies Co., Ltd.
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *    http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 $('.siteDeleteImg').click(function () {
16     var data = $(this).parent().parent().parent().find('td:last').find('div:last').html();
17     alert(data);
18     var jsonObj = JSON.parse(data);
19     for (var i = 0; i < jsonObj.length; i++) {
20         var obj = jsonObj[i];
21         var rowData = [obj.tpName, obj.peName, obj.vlanId, obj.siteCidr, obj.ip];
22         $('#underlayTpDataTable').DataTable();
23         $('#underlayTpDataTable').dataTable().fnAddData(rowData);
24     }
25 });
26
27
28
29 function deleteSite(objectId) {
30     var requestUrl = "/openoapi/sdnobrs/v1/sites/" + objectId;
31     $
32         .ajax({
33             type: "DELETE",
34             url: requestUrl,
35             contentType: "application/json",
36             success: function (jsonobj) {
37                 $('#site').bootstrapTable('remove', {
38                     field: 'id',
39                     values: [objectId]
40                 });
41                 alert("Delete Site successfull !!!");
42             },
43             error: function (xhr, ajaxOptions, thrownError) {
44                 alert("Error on deleting site: " + xhr.responseText);
45             }
46         });
47 }
48 function deleteLink(objectId) {
49     var requestUrl = "/openoapi/sdnobrs/v1/topological-links/" + objectId;
50     $
51         .ajax({
52             type: "DELETE",
53             url: requestUrl,
54             contentType: "application/json",
55             success: function (jsonobj) {
56                 $('#link').bootstrapTable('remove', {
57                     field: 'id',
58                     values: [objectId]
59                 });
60                 alert("Delete Link successfull !!!");
61             },
62             error: function (xhr, ajaxOptions, thrownError) {
63                 alert("Error on deleting link : " + xhr.responseText);
64             }
65         });
66 }
67
68 function deleteNe(objectId) {
69     var requestUrl = "/openoapi/sdnobrs/v1/managed-elements/" + objectId;
70     $
71         .ajax({
72             type: "DELETE",
73             url: requestUrl,
74             contentType: "application/json",
75             success: function (jsonobj) {
76                 $('#ne').bootstrapTable('remove', {
77                     field: 'id',
78                     values: [objectId]
79                 });
80                 alert("Delete NE successfull !!!");
81             },
82             error: function (xhr, ajaxOptions, thrownError) {
83                 alert("Error on deleting ne : " + xhr.responseText);
84             }
85         });
86 }
87
88 function deletePort(objectId) {
89     var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points/" + objectId;
90     $
91         .ajax({
92             type: "DELETE",
93             url: requestUrl,
94             contentType: "application/json",
95             success: function (jsonobj) {
96                 $('#port').bootstrapTable('remove', {
97                     field: 'id',
98                     values: [objectId]
99                 });
100                 alert("Delete Port successfull !!!");
101             },
102             error: function (xhr, ajaxOptions, thrownError) {
103                 alert("Error on deleting port : " + xhr.responseText);
104             }
105         });
106 }
107 function loadSiteData() {
108     var requestUrl = "/openoapi/sdnobrs/v1/sites";
109     $
110         .ajax({
111             type: "GET",
112             url: requestUrl,
113             contentType: "application/json",
114             success: function (jsonobj) {
115                 $('#site').bootstrapTable({
116                     data: jsonobj.sites
117                 });
118             },
119             error: function (xhr, ajaxOptions, thrownError) {
120                 alert("Error on getting site data : " + xhr.responseText);
121             }
122         });
123 }
124 function loadLinkData() {
125     var requestUrl = "/openoapi/sdnobrs/v1/topological-links";
126     $
127         .ajax({
128             type: "GET",
129             url: requestUrl,
130             contentType: "application/json",
131             success: function (jsonobj) {
132                 $('#link').bootstrapTable({
133                     data: jsonobj.topologicalLinks
134                 });
135             },
136             error: function (xhr, ajaxOptions, thrownError) {
137                 alert("Error on getting link data : " + xhr.responseText);
138             }
139         });
140 }
141 function loadNeData() {
142
143     var requestUrl = "/openoapi/sdnobrs/v1/managed-elements";
144     $
145         .ajax({
146             type: "GET",
147             url: requestUrl,
148             contentType: "application/json",
149             success: function (jsonobj) {
150                         
151                 var nedata = jsonobj.managedElements;
152                                 var neMap = []; 
153                                 neMap = loadControllerData();
154                                 /*$.each(nedata,function(k,v){
155                                         nedata[k];
156                                 })*/;
157                         
158                 $('#ne').bootstrapTable({
159                     data: nedata
160                 });
161                 $('#ne').bootstrapTable('refresh');
162
163             },
164             error: function (xhr, ajaxOptions, thrownError) {
165                 alert("Error on getting ne data : " + xhr.responseText);
166             }
167         });
168 }
169 function loadPortData() {
170     var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points";
171     $
172         .ajax({
173             type: "GET",
174             url: requestUrl,
175             contentType: "application/json",
176             success: function (jsonobj) {
177                 $('#port').bootstrapTable({
178                     data: jsonobj.logicalTerminationPoints
179                 });
180             },
181             error: function (xhr, ajaxOptions, thrownError) {
182                 alert("Error on getting port data : " + xhr.responseText);
183             }
184         });
185 }
186 function loadControllerData() {
187     var neMap = [];
188     var requestUrl = "/openoapi/extsys/v1/sdncontrollers";
189     $.ajax({
190         type: "GET",
191                 async: false,
192         url: requestUrl,
193         contentType: "application/json",
194         success: function (jsonobj) {
195                 
196           neMap =  fillSelect(jsonobj);
197                   
198         },
199         error: function (xhr, ajaxOptions, thrownError) {
200             alert("Error on getting controller data : " + xhr.responseText);
201         }
202     });
203         return neMap;
204 }
205 function fillSelect(str){
206     var json;
207     if(typeof str === 'object'){
208         json = str;
209     }
210     else{
211         json = eval('(' + str + ')');
212     }
213     var seleObj = $('#controller')
214     seleObj.find("option").remove();
215         var neMap = [];
216     for(var i=0;i < json.length;i++){
217         seleObj.append('<option value="'+json[i].sdnControllerId+'">'+json[i].name+'</option>');
218                 neMap[json[i].sdnControllerId] = json[i].name;
219     }
220         return neMap;
221 }
222 $(function () {
223     $('.creat-btn').click(function () {
224         $('#vmAppDialog').addClass('in').css({'display': 'block'});
225
226     });
227     $('.close,.button-previous').click(function () {
228         $('#vmAppDialog').removeClass('in').css('display', 'none');
229     });
230     $('.detail-top ul li').click(function () {
231         $(this).addClass('current').siblings().removeClass('current');
232     });
233     $('.para').click(function () {
234         if ($('#serviceTemplateName').val() == '') {
235             alert('Please choose the service templet!');
236             $('#flavorTab').css('display', 'none');
237         } else {
238             $('#flavorTab').css('display', 'block');
239         }
240         $('#basicTab').css('display', 'block');
241     });
242     $('.basic').click(function () {
243         $('#flavorTab').css('display', 'none');
244     });
245
246     $('.table tbody tr').click(function () {
247         $(this).addClass('openoTable_row_selected').siblings().removeClass('openoTable_row_selected');
248     });
249     $('.table tr:odd').addClass('active');
250     $('#false').click(function () {
251         loadControllerData();
252         $('#vmAppDialog').addClass('in').css({'display': 'block'});
253     });
254     $('.close,.button-previous').click(function () {
255         $('#vmAppDialog').removeClass('in').css('display', 'none');
256     });
257     $('#filterTpLogicalType').click(function () {
258         $('#filterTpLogicalType_select_popupcontainer').toggleClass('openo-hide');
259         $('#filterTpLogicalType').toggleClass('openo-focus');
260         var oLeft = $('#open_base_tpL_td6').offset().left;
261         var oTop = $('#open_base_tpL_td6').offset().top;
262         var oHeight = $('#open_base_tpL_td6').height();
263         $('#filterTpLogicalType_select_popupcontainer').css({'left': oLeft, 'top': oTop + oHeight + 10});
264     });
265     $('div.openo-select-popup-container>div.openo-select-item>label').click(function () {
266         var Lvalue = $(this).html();
267         $('#filterTpLogicalType_select_input').attr('value', Lvalue);
268         $('#filterTpLogicalType_select_popupcontainer').addClass('openo-hide');
269         $('#filterTpLogicalType').removeClass('openo-focus');
270     });
271     $.fn.serializeObject = function () {
272         var o = {};
273         var a = this.serializeArray();
274         $.each(a, function () {
275             if (o[this.name] !== undefined) {
276                 if (!o[this.name].push) {
277                     o[this.name] = [o[this.name]];
278                 }
279                 o[this.name].push(this.value || '');
280             } else {
281                 o[this.name] = this.value || '';
282             }
283         });
284         return o;
285     };
286     $('#createSite').click(function () {
287         var formData = JSON.stringify($("#vmAppForm").serializeObject());
288         var jsonobj = JSON.parse(formData);
289         var newJson = {"site": jsonobj};
290         formData = JSON.stringify(newJson);
291         var requestUrl = "/openoapi/sdnobrs/v1/sites";
292         $
293             .ajax({
294                 type: "POST",
295                 url: requestUrl,
296                 contentType: "application/json",
297                 dataType: "json",
298                 data: formData,
299                 success: function (jsonResp) {
300                     alert("Site saved successfully!!!");
301                     jsonobj["id"] = jsonResp.site.id;
302                     $('#site').bootstrapTable("append", jsonobj);
303                     $('#vmAppDialog').removeClass('in').css('display', 'none');
304                 },
305                 error: function (xhr, ajaxOptions, thrownError) {
306                     alert("Error on page : " + xhr.responseText);
307                 }
308             });
309     });
310
311     $('#createNe').click(function () {
312         var formData = JSON.stringify($("#neForm").serializeObject());
313         var jsonobj = JSON.parse(formData);
314                 var controllerIDs = [] ;
315                 controllerIDs[0]= jsonobj.controller;
316                 jsonobj.controllerID = controllerIDs;
317         var newJson = {"managedElement": jsonobj};
318         formData = JSON.stringify(newJson);
319         var requestUrl = "/openoapi/sdnobrs/v1/managed-elements";
320         $
321             .ajax({
322                 type: "POST",
323                 url: requestUrl,
324                 contentType: "application/json",
325                 dataType: "json",
326                 data: formData,
327                 success: function (jsonResp) {
328                     alert("NE saved successfully!!!");
329                     jsonobj["id"] = jsonResp.managedElement.id;
330                     $('#ne').bootstrapTable("append", jsonobj);
331                     $('#vmAppDialog').removeClass('in').css('display', 'none');
332
333                 },
334                 error: function (xhr, ajaxOptions, thrownError) {
335                     alert("Error on page : " + xhr.responseText);
336                 }
337             });
338     });
339
340     $('#createPort').click(function () {
341         var formData = JSON.stringify($("#portForm").serializeObject());
342         var jsonobj = JSON.parse(formData);
343         var newJson = {"logicalTerminationPoint": jsonobj};
344         formData = JSON.stringify(newJson);
345         var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points";
346         $
347             .ajax({
348                 type: "POST",
349                 url: requestUrl,
350                 contentType: "application/json",
351                 dataType: "json",
352                 data: formData,
353                 success: function (jsonResp) {
354                     alert("Port saved successfully!!!");
355                
356                     jsonobj["id"] = jsonResp.logicalTerminationPoint.id;
357                     $('#port').bootstrapTable("append", jsonobj);
358                     $('#vmAppDialog').removeClass('in').css('display', 'none');
359
360                 },
361                 error: function (xhr, ajaxOptions, thrownError) {
362                     alert("Error on page : " + xhr.responseText);
363                 }
364             });
365     });
366
367     $('#createLink').click(function () {
368         var formData = JSON.stringify($("#linkForm").serializeObject());
369         var jsonobj = JSON.parse(formData);
370         var newJson = {"topologicalLink": jsonobj};
371         formData = JSON.stringify(newJson);
372         var requestUrl = "/openoapi/sdnobrs/v1/topological-links";
373         $
374             .ajax({
375                 type: "POST",
376                 url: requestUrl,
377                 contentType: "application/json",
378                 dataType: "json",
379                 data: formData,
380                 success: function (jsonResp) {
381                     alert("Link saved successfully!!!");
382                     jsonobj["id"] = jsonResp.topologicalLink.id;
383                     $('#link').bootstrapTable("append", jsonobj);
384                     $('#vmAppDialog').removeClass('in').css('display', 'none');
385
386                 },
387                 error: function (xhr, ajaxOptions, thrownError) {
388                     alert("Error on page : " + xhr.responseText);
389                 }
390             });
391     });
392
393 })