2 Copyright 2018 CNIT - Consorzio Nazionale Interuniversitario per le Telecomunicazioni
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
17 function performAction(instance_name
, instance_id
) {
18 var url
= '/instances/ns/'+instance_id
+'/action';
19 $("#formActionNS").attr("action", url
);
20 $('#modal_instance_new_action').modal('show');
23 function exportMetricNs(instance_name
, instance_id
) {
24 var url
= '/instances/ns/'+instance_id
+'/monitoring/metric';
25 $("#formExportMetricNS").attr("action", url
);
26 $('#modal_instance_export_metric').modal('show');
29 function newAlarmNs(instance_name
, instance_id
) {
30 var url
= '/instances/ns/'+instance_id
+'/monitoring/alarm';
31 $("#formAlarmNS").attr("action", url
);
32 $('#modal_instance_new_alarm').modal('show');
35 function deleteNs(instance_name
, instance_id
, force
) {
36 var url
= '/instances/ns/'+instance_id
+'/delete';
37 bootbox
.confirm("Are you sure want to delete " + instance_name
+ "?", function (result
) {
40 url
= url
+ '?force=true';
41 var dialog
= bootbox
.dialog({
42 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
49 contentType
: "application/json;charset=utf-8",
50 success: function (result
) {
51 if (result
['error'] == true){
53 bootbox
.alert("An error occurred.");
60 error: function (result
) {
62 var data
= result
.responseJSON
;
63 var title
= "Error " + (data
&& data
.code
? data
.code
: 'unknown');
64 var message
= data
&& data
.detail
? data
.detail
: 'No detail available.';
74 function deleteNsi(instance_name
, instance_id
, force
) {
75 var url
= '/instances/nsi/'+instance_id
+'/delete';
76 bootbox
.confirm("Are you sure want to delete " + instance_name
+ "?", function (result
) {
79 url
= url
+ '?force=true';
80 var dialog
= bootbox
.dialog({
81 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
88 contentType
: "application/json;charset=utf-8",
89 success: function (result
) {
91 if (result
['error'] == true){
93 var data
= result
.responseJSON
;
94 var title
= "Error " + (data
&& data
.code
? data
.code
: 'unknown');
95 var message
= data
&& data
.detail
? data
.detail
: 'No detail available.';
102 dialog
.modal('hide');
106 error: function (result
) {
107 dialog
.modal('hide');
108 var data
= result
.responseJSON
;
109 var title
= "Error " + (data
&& data
.code
? data
.code
: 'unknown');
110 var message
= data
&& data
.detail
? data
.detail
: 'No detail available.';
121 function deletePDU(instance_name
, instance_id
) {
122 var url
= '/instances/pdu/'+instance_id
+'/delete';
123 bootbox
.confirm("Are you sure want to delete " + instance_name
+ "?", function (result
) {
125 var dialog
= bootbox
.dialog({
126 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
133 contentType
: "application/json;charset=utf-8",
134 success: function (result
) {
135 if (result
['error'] == true){
136 dialog
.modal('hide');
137 bootbox
.alert("An error occurred.");
140 dialog
.modal('hide');
144 error: function (error
) {
145 dialog
.modal('hide');
146 bootbox
.alert("An error occurred.");
153 var addFormGroup = function (event
) {
154 event
.preventDefault();
156 var $formGroup
= $(this).closest('.form-group');
157 var $formGroupClone
= $formGroup
.clone();
160 .toggleClass('btn-success btn-add btn-danger btn-remove')
163 $formGroupClone
.find('input').val('');
164 $formGroupClone
.insertAfter($formGroup
);
168 var removeFormGroup = function (event
) {
169 event
.preventDefault();
170 var $formGroup
= $(this).closest('.form-group');
174 var addInterfaceGroup = function (event
) {
175 event
.preventDefault();
177 var $formGroup
= $(this).closest('.interface-group');
178 var $formGroupClone
= $formGroup
.clone();
181 .toggleClass('btn-success btn-add btn-danger btn-remove')
184 $formGroupClone
.find('input').val('');
185 $formGroupClone
.insertAfter($formGroup
);
189 var removeInterfaceGroup = function (event
) {
190 event
.preventDefault();
191 var $formGroup
= $(this).closest('.interface-group');
195 function showTopology(type
, instance_id
) {
196 var url
= '/instances/'+type
+'/'+instance_id
+'/topology';
197 window
.location
= url
;
200 function showInstanceDetails(type
, instance_id
) {
201 var url_info
= '/instances/'+type
+'/'+instance_id
;
202 var dialog
= bootbox
.dialog({
203 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
210 contentType
: "application/json;charset=utf-8",
211 success: function (result
) {
213 if (result
['data'] !== undefined) {
214 editorJSON
.setValue(JSON
.stringify(result
['data'], null, "\t"));
215 editorJSON
.setOption("autoRefresh", true);
216 dialog
.modal('hide');
217 $('#modal_show_instance').modal('show');
220 dialog
.modal('hide');
221 bootbox
.alert("An error occurred while retrieving the information.");
224 error: function (result
) {
225 dialog
.modal('hide');
226 bootbox
.alert("An error occurred while retrieving the information.");
233 $(document
).ready(function () {
234 var json_editor_settings
= {
236 showCursorWhenSelecting
: true,
241 gutters
: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"],
242 autoCloseBrackets
: true,
245 "F11": function (cm
) {
246 cm
.setOption("fullScreen", !cm
.getOption("fullScreen"));
248 "Esc": function (cm
) {
249 if (cm
.getOption("fullScreen")) cm
.setOption("fullScreen", false);
251 "Ctrl-Q": function (cm
) {
252 cm
.foldCode(cm
.getCursor());
258 var myJsonTextArea
= document
.getElementById("instance_view_json");
259 editorJSON
= CodeMirror(function (elt
) {
260 myJsonTextArea
.parentNode
.replaceChild(elt
, myJsonTextArea
);
261 }, json_editor_settings
);
264 $(document
).on('click', '.primitive-group .btn-add', addFormGroup
);
265 $(document
).on('click', '.primitive-group .btn-remove', removeFormGroup
);
267 $(document
).on('click', '.interface-group .btn-add', addInterfaceGroup
);
268 $(document
).on('click', '.interface-group .btn-remove', removeInterfaceGroup
);
270 $("#formCreatePDU").submit(function (event
) {
271 event
.preventDefault(); //prevent default action
272 var post_url
= $(this).attr("action"); //get form action url
273 var request_method
= $(this).attr("method"); //get form GET/POST method
274 var form_data
= new FormData(this); //Encode form elements for submission
277 type
: request_method
,
280 "Accept": 'application/json'
284 }).done(function (response
, textStatus
, jqXHR
) {
286 $('#modal_new_pdu').modal('hide');
287 }).fail(function (result
) {
288 var data
= result
.responseJSON
;
289 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
290 var message
= data
.detail
? data
.detail
: 'No detail available.';
298 $("#formActionNS").submit(function (event
) {
299 event
.preventDefault(); //prevent default action
300 var post_url
= $(this).attr("action"); //get form action url
301 var request_method
= $(this).attr("method"); //get form GET/POST method
302 var form_data
= new FormData(this); //Encode form elements for submission
303 console
.log(post_url
);
306 type
: request_method
,
309 "Accept": 'application/json'
313 }).done(function (response
, textStatus
, jqXHR
) {
314 $('#modal_instance_new_action').modal('hide');
317 message
: "Action received."
319 }).fail(function (result
) {
320 var data
= result
.responseJSON
;
321 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
322 var message
= data
.detail
? data
.detail
: 'No detail available.';
330 $("#formAlarmNS").submit(function (event
) {
331 event
.preventDefault(); //prevent default action
332 var post_url
= $(this).attr("action"); //get form action url
333 var request_method
= $(this).attr("method"); //get form GET/POST method
334 var form_data
= new FormData(this); //Encode form elements for submission
335 console
.log(post_url
);
338 type
: request_method
,
341 "Accept": 'application/json'
345 }).done(function (response
, textStatus
, jqXHR
) {
346 $('#modal_instance_new_action').modal('hide');
349 message
: "Alarm created."
351 }).fail(function (result
) {
352 var data
= result
.responseJSON
;
353 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
354 var message
= data
.detail
? data
.detail
: 'No detail available.';
362 $("#formExportMetricNS").submit(function (event
) {
363 event
.preventDefault(); //prevent default action
364 var post_url
= $(this).attr("action"); //get form action url
365 var request_method
= $(this).attr("method"); //get form GET/POST method
366 var form_data
= new FormData(this); //Encode form elements for submission
367 console
.log(post_url
);
370 type
: request_method
,
373 "Accept": 'application/json'
377 }).done(function (response
, textStatus
, jqXHR
) {
378 $('#modal_instance_new_action').modal('hide');
381 message
: "Metric exported."
383 }).fail(function (result
) {
384 var data
= result
.responseJSON
;
385 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
386 var message
= data
.detail
? data
.detail
: 'No detail available.';