Network Slice Templates

Change-Id: I9453c518cc717e514598e40e2b1ce5ff60b76108
Signed-off-by: lombardofr <lombardo@everyup.it>
diff --git a/static/src/drop_zone.js b/static/src/drop_zone.js
new file mode 100644
index 0000000..469ce60
--- /dev/null
+++ b/static/src/drop_zone.js
@@ -0,0 +1,32 @@
+/*
+   Copyright 2019 EveryUP srl
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an  BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+var dropZone = document.getElementById('drop-zone');
+dropZone.ondrop = function (e) {
+    e.preventDefault();
+    this.className = 'upload-drop-zone';
+    create(e.dataTransfer.files, true);
+};
+
+dropZone.ondragover = function () {
+    this.className = 'upload-drop-zone drop';
+    return false;
+};
+
+dropZone.ondragleave = function () {
+    this.className = 'upload-drop-zone';
+    return false;
+};
\ No newline at end of file
diff --git a/static/src/netslicehandler/onboard_template.js b/static/src/netslicehandler/onboard_template.js
new file mode 100644
index 0000000..e999e1a
--- /dev/null
+++ b/static/src/netslicehandler/onboard_template.js
@@ -0,0 +1,70 @@
+/*
+   Copyright 2018 EveryUP srl
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an  BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+function create(fs, dropzone) {
+    var url = '/netslices/templates/onboard';
+    var id = $('.nav-tabs .active').attr('id');
+    if (dropzone) id = 'file_li';
+    var type, text;
+    var data = new FormData();
+    switch (id) {
+
+        case 'file_li':
+            type = 'file';
+
+            var files = dropzone ? fs : document.getElementById('js-upload-files').files;
+            if (!files || !files.length) {
+                files = document.getElementById('drop-zone').files;
+                if (!files || !files.length) {
+                    alert("Select a file");
+                    return
+                }
+            }
+            console.log(files[0])
+            var patt1 = /\.([0-9a-z]+)(?:[\?#]|$)/i;
+            console.log(files[0].name.match(patt1));
+            var extension = files[0].name.substr(files[0].name.lastIndexOf('.') + 1);
+            console.log(extension);
+
+            data.append('file', files[0]);
+            break;
+    }
+    data.append('csrfmiddlewaretoken', csrf_token);
+    data.append('type', type);
+    data.append('text', text);
+    data.append('id', '{{descriptor_id}}');
+    console.log(text);
+    var dialog = bootbox.dialog({
+                message: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Onboarding...</div>',
+                closeButton: true
+            });
+    $.ajax({
+        url: url,
+        type: 'POST',
+        data: data,
+        cache: false,
+        contentType: false,
+        processData: false,
+        success: function (result) {
+            dialog.modal('hide');
+            refreshTable();
+        },
+        error: function (result) {
+            dialog.modal('hide');
+            showAlert(result);
+        }
+    });
+}
\ No newline at end of file
diff --git a/static/src/netslicehandler/templates_list.js b/static/src/netslicehandler/templates_list.js
new file mode 100644
index 0000000..813b395
--- /dev/null
+++ b/static/src/netslicehandler/templates_list.js
@@ -0,0 +1,78 @@
+/*
+   Copyright 2019 EveryUP Srl
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an  BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+function deleteTemplate(template_name, template_id) {
+    var url = '/netslices/templates/'+template_id+'/delete';
+    bootbox.confirm("Are you sure want to delete " + template_name + "?", function (result) {
+        if (result) {
+            var dialog = bootbox.dialog({
+                message: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
+                closeButton: true
+            });
+            $.ajax({
+                url: url,
+                type: 'GET',
+                dataType: "json",
+                contentType: "application/json;charset=utf-8",
+                success: function (result) {
+                    if (result['error'] == true){
+                        dialog.modal('hide');
+                        bootbox.alert("An error occurred.");
+                    }
+                    else {
+                        dialog.modal('hide');
+                        location.reload();
+                    }
+                },
+                error: function (error) {
+                    dialog.modal('hide');
+                    bootbox.alert("An error occurred.");
+                }
+            });
+        }
+    })
+}
+
+function showNstDetails(template_id) {
+    var url_info = '/netslices/templates/'+template_id+'/details';
+    var dialog = bootbox.dialog({
+        message: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
+        closeButton: true
+    });
+    $.ajax({
+        url: url_info,
+        type: 'GET',
+        dataType: "json",
+        contentType: "application/json;charset=utf-8",
+        success: function (result) {
+            console.log(result)
+            if (result['data'] !== undefined) {
+                editorJSON.setValue(JSON.stringify(result['data'], null, "\t"));
+                editorJSON.setOption("autoRefresh", true);
+                dialog.modal('hide');
+                $('#modal_show_nst').modal('show');
+            }
+            else {
+                dialog.modal('hide');
+                bootbox.alert("An error occurred while retrieving the information.");
+            }
+        },
+        error: function (result) {
+            dialog.modal('hide');
+            bootbox.alert("An error occurred while retrieving the information.");
+        }
+    });
+}
\ No newline at end of file
diff --git a/static/src/packagehandler/onboard_package.js b/static/src/packagehandler/onboard_package.js
index d18be5b..194bcdc 100644
--- a/static/src/packagehandler/onboard_package.js
+++ b/static/src/packagehandler/onboard_package.js
@@ -14,24 +14,6 @@
    limitations under the License.
 */
 
-var dropZone = document.getElementById('drop-zone');
-dropZone.ondrop = function (e) {
-    e.preventDefault();
-    this.className = 'upload-drop-zone';
-    create(e.dataTransfer.files, true);
-};
-
-dropZone.ondragover = function () {
-    this.className = 'upload-drop-zone drop';
-    return false;
-};
-
-dropZone.ondragleave = function () {
-    this.className = 'upload-drop-zone';
-    return false;
-};
-
-
 function create(fs, dropzone) {
     var id = $('.nav-tabs .active').attr('id');
     if (dropzone) id = 'file_li';