1 {% extends
"base.html" %}
8 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/lib/codemirror.css">
9 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/addon/fold/foldgutter.css" />
10 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/theme/neat.css">
11 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/addon/dialog/dialog.css">
12 <link rel=
"stylesheet" href=
"/static/bower_components/codemirror/addon/display/fullscreen.css">
13 <link rel=
"stylesheet" href=
"/static/bower_components/select2/dist/css/select2.min.css">
14 <link rel=
"stylesheet" href=
"/static/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
16 {% block title_header_big %}
18 Network Slices Templates
20 {% block left_sidebar %}
22 {% include 'osm/osm_project_left_sidebar.html' %}
27 {% block breadcrumb_body %}
29 <li><a href=
"{% url "netslices:list_templates
" %}">NetSlice Templates
</a></li>
32 {% block content_body %}
34 {% include 'modal/nst_details.html' %}
37 <div class=
"col-md-12">
40 <div class=
"box-header with-border">
41 <h3 class=
"box-title"></h3>
42 <div class=
"box-tools"></div>
44 <div class=
"box-body">
45 <table id=
"templates_table" class=
"table table-bordered table-striped dataTable" role=
"grid">
64 <div class=
"col-sm-12">
65 <div class=
"box box-solid">
66 <div class=
"box-body">
68 <div class=
"upload-drop-zone" id=
"drop-zone">
69 <i class=
"fa fa-upload"></i> Just drag and drop files here
78 {% block resource_block %}
80 <script src=
"/static/bower_components/select2/dist/js/select2.js"></script>
81 <script src=
"/static/bower_components/codemirror/lib/codemirror.js"></script>
82 <script src=
"/static/bower_components/codemirror/addon/fold/foldcode.js"></script>
83 <script src=
"/static/bower_components/codemirror/addon/fold/foldgutter.js"></script>
84 <script src=
"/static/bower_components/codemirror/addon/fold/brace-fold.js"></script>
85 <script src=
"/static/bower_components/codemirror/mode/javascript/javascript.js"></script>
86 <script src=
"/static/bower_components/codemirror/addon/search/searchcursor.js"></script>
87 <script src=
"/static/bower_components/codemirror/addon/search/search.js"></script>
88 <script src=
"/static/bower_components/codemirror/addon/dialog/dialog.js"></script>
89 <script src=
"/static/bower_components/codemirror/addon/display/autorefresh.js"></script>
90 <script src=
"/static/bower_components/codemirror/addon/edit/matchbrackets.js"></script>
91 <script src=
"/static/bower_components/codemirror/addon/edit/closebrackets.js"></script>
92 <script src=
"/static/bower_components/codemirror/addon/display/fullscreen.js"></script>
93 <script src=
"/static/bower_components/codemirror/keymap/sublime.js"></script>
94 <script src=
"/static/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
95 <script src=
"/static/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
96 <script src=
"/static/src/drop_zone.js"></script>
97 <script src=
"/static/src/netslicehandler/onboard_template.js"></script>
98 <script src=
"/static/src/netslicehandler/templates_list.js"></script>
100 var csrf_token = '{{csrf_token}}';
107 $(document).ready(function () {
108 table = $('#templates_table').DataTable({
111 "url":
"netslices/templates/list",
112 "dataSrc": function (json) {
113 return json['templates'];
117 console.log(
"no auth");
118 moveToLogin(window.location.pathname);
121 "error": function (hxr, error, thrown) {
130 "render": function (data, type, row) {
131 return row['name'] || '';
136 "render": function (data, type, row) {
142 "render": function (data, type, row) {
143 return row['_admin']['usageState'];
148 "render": function (data, type, row) {
149 return '
<div class=
"btn-group">' +
150 '
<button type=
"button" class=
"btn btn-default"' +
151 '
onclick=
"javascript:showNstDetails(\'' + row["_id
"] + '\')"' +
152 '
data-toggle=
"tooltip" data-placement=
"top" data-container=
"body" title=
"Open">' +
153 '
<i class=
"fa fa-info"></i>' +
155 '
<button type=
"button" class=
"btn btn-default"' +
156 '
onclick=
"window.location.href=\'/netslices/templates/'+row["_id
"]+'/edit\'"' +
157 '
data-toggle=
"tooltip" data-placement=
"top" data-container=
"body" title=
"Edit">' +
158 '
<i class=
"fa fa-edit"></i>' +
160 '
<button type=
"button" class=
"btn btn-default"' +
161 '
onclick=
"javascript:deleteTemplate(\'' + row["name
"] + '\', \'' + row["_id
"] + '\')"' +
162 '
data-toggle=
"tooltip" data-placement=
"top" data-container=
"body" title=
"Delete"><i' +
163 '
class=
"far fa-trash-alt"></i></button>' +
172 setInterval(function () {
176 var json_editor_settings = {
178 showCursorWhenSelecting: true,
183 gutters: [
"CodeMirror-linenumbers",
"CodeMirror-foldgutter"],
184 autoCloseBrackets: true,
187 "F11": function (cm) {
188 cm.setOption(
"fullScreen", !cm.getOption(
"fullScreen"));
190 "Esc": function (cm) {
191 if (cm.getOption(
"fullScreen")) cm.setOption(
"fullScreen", false);
193 "Ctrl-Q": function (cm) {
194 cm.foldCode(cm.getCursor());
200 var myJsonTextArea = document.getElementById(
"nst_view_json");
201 editorJSON = CodeMirror(function (elt) {
202 myJsonTextArea.parentNode.replaceChild(elt, myJsonTextArea);
203 }, json_editor_settings);
206 function refreshTable() {