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