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 deleteNs(instance_name
, instance_id
, force
) {
24 var url
= '/instances/ns/'+instance_id
+'/delete';
25 bootbox
.confirm("Are you sure want to delete " + instance_name
+ "?", function (result
) {
28 url
= url
+ '?force=true';
29 var dialog
= bootbox
.dialog({
30 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
37 contentType
: "application/json;charset=utf-8",
38 success: function (result
) {
39 if (result
['error'] == true){
41 bootbox
.alert("An error occurred.");
48 error: function (result
) {
50 var data
= result
.responseJSON
;
51 var title
= "Error " + (data
&& data
.code
? data
.code
: 'unknown');
52 var message
= data
&& data
.detail
? data
.detail
: 'No detail available.';
62 function deleteNsi(instance_name
, instance_id
, force
) {
63 var url
= '/instances/nsi/'+instance_id
+'/delete';
64 bootbox
.confirm("Are you sure want to delete " + instance_name
+ "?", function (result
) {
67 url
= url
+ '?force=true';
68 var dialog
= bootbox
.dialog({
69 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
76 contentType
: "application/json;charset=utf-8",
77 success: function (result
) {
79 if (result
['error'] == true){
81 var data
= result
.responseJSON
;
82 var title
= "Error " + (data
&& data
.code
? data
.code
: 'unknown');
83 var message
= data
&& data
.detail
? data
.detail
: 'No detail available.';
94 error: function (result
) {
96 var data
= result
.responseJSON
;
97 var title
= "Error " + (data
&& data
.code
? data
.code
: 'unknown');
98 var message
= data
&& data
.detail
? data
.detail
: 'No detail available.';
109 function deletePDU(instance_name
, instance_id
) {
110 var url
= '/instances/pdu/'+instance_id
+'/delete';
111 bootbox
.confirm("Are you sure want to delete " + instance_name
+ "?", function (result
) {
113 var dialog
= bootbox
.dialog({
114 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
121 contentType
: "application/json;charset=utf-8",
122 success: function (result
) {
123 if (result
['error'] == true){
124 dialog
.modal('hide');
125 bootbox
.alert("An error occurred.");
128 dialog
.modal('hide');
132 error: function (error
) {
133 dialog
.modal('hide');
134 bootbox
.alert("An error occurred.");
141 var addFormGroup = function (event
) {
142 event
.preventDefault();
144 var $formGroup
= $(this).closest('.form-group');
145 var $formGroupClone
= $formGroup
.clone();
147 $formGroupClone
.find('input').val('');
148 $formGroupClone
.find('button').toggleClass('btn-success btn-add btn-danger btn-remove');
149 $formGroupClone
.find('button').text('–');
150 $formGroupClone
.insertAfter($formGroup
);
154 var removeFormGroup = function (event
) {
155 event
.preventDefault();
156 var $formGroup
= $(this).closest('.form-group');
160 var addInterfaceGroup = function (event
) {
161 event
.preventDefault();
163 var $formGroup
= $(this).closest('.interface-group');
164 var $formGroupClone
= $formGroup
.clone();
167 .toggleClass('btn-success btn-add btn-danger btn-remove')
170 $formGroupClone
.find('input').val('');
171 $formGroupClone
.insertAfter($formGroup
);
175 var removeInterfaceGroup = function (event
) {
176 event
.preventDefault();
177 var $formGroup
= $(this).closest('.interface-group');
181 function showTopology(type
, instance_id
) {
182 var url
= '/instances/'+type
+'/'+instance_id
+'/topology';
183 window
.location
= url
;
186 function showInstanceDetails(type
, instance_id
) {
187 var url_info
= '/instances/'+type
+'/'+instance_id
;
188 var dialog
= bootbox
.dialog({
189 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
196 contentType
: "application/json;charset=utf-8",
197 success: function (result
) {
199 if (result
['data'] !== undefined) {
200 editorJSON
.setValue(JSON
.stringify(result
['data'], null, "\t"));
201 editorJSON
.setOption("autoRefresh", true);
202 dialog
.modal('hide');
203 $('#modal_show_instance').modal('show');
206 dialog
.modal('hide');
207 bootbox
.alert("An error occurred while retrieving the information.");
210 error: function (result
) {
211 dialog
.modal('hide');
212 bootbox
.alert("An error occurred while retrieving the information.");
219 $(document
).ready(function () {
220 var json_editor_settings
= {
222 showCursorWhenSelecting
: true,
227 gutters
: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"],
228 autoCloseBrackets
: true,
231 "F11": function (cm
) {
232 cm
.setOption("fullScreen", !cm
.getOption("fullScreen"));
234 "Esc": function (cm
) {
235 if (cm
.getOption("fullScreen")) cm
.setOption("fullScreen", false);
237 "Ctrl-Q": function (cm
) {
238 cm
.foldCode(cm
.getCursor());
244 var myJsonTextArea
= document
.getElementById("instance_view_json");
245 editorJSON
= CodeMirror(function (elt
) {
246 myJsonTextArea
.parentNode
.replaceChild(elt
, myJsonTextArea
);
247 }, json_editor_settings
);
250 $(document
).on('click', '.primitive-group .btn-add', addFormGroup
);
251 $(document
).on('click', '.primitive-group .btn-remove', removeFormGroup
);
253 $(document
).on('click', '.interface-group .btn-add', addInterfaceGroup
);
254 $(document
).on('click', '.interface-group .btn-remove', removeInterfaceGroup
);
257 $("#formCreateNS").submit(function (event
) {
258 event
.preventDefault(); //prevent default action
259 var post_url
= $(this).attr("action"); //get form action url
260 var request_method
= $(this).attr("method"); //get form GET/POST method
261 var form_data
= new FormData(this); //Encode form elements for submission
264 type
: request_method
,
267 "Accept": 'application/json'
271 }).done(function (response
, textStatus
, jqXHR
) {
273 $('#modal_new_instance').modal('hide');
274 }).fail(function (result
) {
275 var data
= result
.responseJSON
;
276 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
277 var message
= data
.detail
? data
.detail
: 'No detail available.';
285 $("#formCreatePDU").submit(function (event
) {
286 event
.preventDefault(); //prevent default action
287 var post_url
= $(this).attr("action"); //get form action url
288 var request_method
= $(this).attr("method"); //get form GET/POST method
289 var form_data
= new FormData(this); //Encode form elements for submission
292 type
: request_method
,
295 "Accept": 'application/json'
299 }).done(function (response
, textStatus
, jqXHR
) {
301 $('#modal_new_pdu').modal('hide');
302 }).fail(function (result
) {
303 var data
= result
.responseJSON
;
304 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
305 var message
= data
.detail
? data
.detail
: 'No detail available.';
313 $("#formActionNS").submit(function (event
) {
314 event
.preventDefault(); //prevent default action
315 var post_url
= $(this).attr("action"); //get form action url
316 var request_method
= $(this).attr("method"); //get form GET/POST method
317 var form_data
= new FormData(this); //Encode form elements for submission
318 console
.log(post_url
);
321 type
: request_method
,
324 "Accept": 'application/json'
328 }).done(function (response
, textStatus
, jqXHR
) {
329 $('#modal_instance_new_action').modal('hide');
332 message
: "Action received."
334 }).fail(function (result
) {
335 var data
= result
.responseJSON
;
336 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
337 var message
= data
.detail
? data
.detail
: 'No detail available.';