blob: adc823a0a302757660285d0e36ddd29daca67103 [file] [log] [blame]
lombardoffb37bca2018-05-03 16:20:04 +02001{% extends "base.html" %}
2{% load get %}
3{% load staticfiles %}
4
5
6{% block head_block %}
7 {{ block.super }}
lombardofr45e33ee2018-07-18 19:22:37 +02008 <link rel="stylesheet" href="/static/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
lombardoffb37bca2018-05-03 16:20:04 +02009{% endblock %}
10{% block title_header_big %}
11 {{ block.super }}
12{% endblock %}
13{% block left_sidebar %}
14
lombardof911c9e42018-06-03 16:52:12 +020015 {% include 'osm/osm_project_left_sidebar.html' %}
lombardoffb37bca2018-05-03 16:20:04 +020016
17{% endblock %}
18
19
20{% block breadcrumb_body %}
21 {{ block.super }}
lombardofr2ad37de2018-07-18 09:47:28 +020022 <li><a href="{% url "vims:list" %}">VIMS</a></li>
lombardoffb37bca2018-05-03 16:20:04 +020023{% endblock %}
24
25{% block content_body %}
26 {{ block.super }}
27 {% include 'modal/vim_details.html' %}
28 {% csrf_token %}
29 <div class="row">
30 <div class="col-md-12">
31
32 <div class="box">
33 <div class="box-header with-border">
34 <h3 class="box-title">Registered VIM</h3>
35 <div class="box-tools">
lombardofr2ad37de2018-07-18 09:47:28 +020036 <a href='{% url "vims:create" %}' class="btn btn-block btn-primary btn-sm"><i
lombardoffb37bca2018-05-03 16:20:04 +020037 class="fa fa-plus"></i><span> New VIM</span></a>
38 </div>
39 </div>
40 <div class="box-body">
lombardofr45e33ee2018-07-18 19:22:37 +020041 <table id="vims_table" class="table table-bordered table-striped">
lombardoffb37bca2018-05-03 16:20:04 +020042 <thead>
43 <tr>
lombardoffb37bca2018-05-03 16:20:04 +020044 <th>Name</th>
lombardofr45e33ee2018-07-18 19:22:37 +020045 <th>Identifier</th>
lombardoffb37bca2018-05-03 16:20:04 +020046 <th>Type</th>
47 <th>Operational State</th>
48 <th>Description</th>
49 <th>Actions</th>
50 </tr>
51 </thead>
52 <tbody>
lombardoffb37bca2018-05-03 16:20:04 +020053
lombardoffb37bca2018-05-03 16:20:04 +020054 </tbody>
55 </table>
56 </div>
57 </div>
58 </div>
59
60 </div>
61{% endblock %}
62
63{% block resource_block %}
64 {{ block.super }}
lombardofr45e33ee2018-07-18 19:22:37 +020065 <script src="/static/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
66 <script src="/static/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
67 <script>
68 $(document).ready( function () {
lombardofr4908f382018-09-10 11:36:06 +020069 var table = $('#vims_table').DataTable({
70 responsive: true,
71 "ajax": {
72 "url": "/vims/list/",
73 "dataSrc": function (json) {
74 return json['datacenters'];
75 },
76 statusCode: {
77 401: function () {
78 console.log("no auth");
79 moveToLogin(window.location.pathname);
80 }
81 },
82 "error": function (hxr, error, thrown) {
83 console.log(hxr)
84 console.log(thrown)
85 console.log(error);
86 }
87
88 },
89 "columns": [
90 {
91 "render": function (data, type, row) {
92 return row["name"];
93 },
94 "targets": 0
95 },
96 {
97 "render": function (data, type, row) {
98 return row['_id'];
99 },
100 "targets": 1
101 },
102 {
103 "render": function (data, type, row) {
104 return row["vim_type"];
105 },
106 "targets": 2
107 },
108 {
109 "render": function (data, type, row) {
110 return row["_admin"]['operationalState'];
111 },
112 "targets": 3
113 },
114 {
115 "render": function (data, type, row) {
116 return row["_admin"]['description'] || '';
117 },
118 "targets": 4
119 },
120 {
121 "render": function (data, type, row) {
122 return '<div class="btn-group"><button type="button" class="btn btn-default" ' +
123 'onclick="location.href=\'/vims/'+row['_id']+'\'" data-toggle="tooltip" data-placement="top" data-container="body" title="Show Info">' +
124 '<i class="fa fa-info"></i>' +
125 '</button> ' +
126 '<button type="button" class="btn btn-default"' +
127 'onclick="javascript:deleteVim(\''+row['_id']+'\', \''+ row["name"] +'\')" data-toggle="tooltip" data-placement="top" data-container="body" title="Delete">' +
128 '<i class="far fa-trash-alt" ></i></button></div>';
129 },
130 "targets": 5
131 }
132 ]
133 });
134
135 setInterval(function () {
136 table.ajax.reload();
137 }, 10000);
138 });
lombardofr45e33ee2018-07-18 19:22:37 +0200139 </script>
lombardoffb37bca2018-05-03 16:20:04 +0200140 <script>
141
lombardofr4908f382018-09-10 11:36:06 +0200142 function deleteVim(vim_id, vim_name) {
143 var url = "/vims/"+vim_id+"/delete";
144 bootbox.confirm("Are you sure want to delete " + vim_name + "?", function (result) {
lombardoffb37bca2018-05-03 16:20:04 +0200145 if (result) {
lombardofrc9488202018-07-24 14:38:16 +0200146 var dialog = bootbox.dialog({
147 message: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
148 closeButton: true
149 });
150 $.ajax({
151 url: url,
152 type: 'GET',
153 dataType: "json",
154 contentType: "application/json;charset=utf-8",
155 success: function (result) {
156 if (result['error'] == true) {
157 dialog.modal('hide');
158 bootbox.alert("An error occurred.");
159 }
160 else {
161 dialog.modal('hide');
162 location.reload();
163 }
164 },
165 error: function (error) {
166 dialog.modal('hide');
167 bootbox.alert("An error occurred.");
168 }
169 });
lombardoffb37bca2018-05-03 16:20:04 +0200170 }
171 })
172 }
173 </script>
174
175{% endblock %}