2 Copyright 2019 EveryUP srl
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 {% extends
"project_descriptors.html" %}
18 {% load staticfiles %}
21 {% block head_block %}
23 <link rel=
"stylesheet" href=
"/static/node_modules/select2/dist/css/select2.min.css">
26 {% block title_header_big %}
29 {{ package_type|upper }}
35 {% block left_sidebar %}
36 {% include 'osm/osm_project_left_sidebar.html' %}
39 {% block breadcrumb_body %}
41 <li><a href=
"{% url 'projects:open_project' %}">{{project_name}}
</a></li>
42 <li><a> {% if package_type %}
46 {% endif %} Packages
</a></li>
50 {% block content_body %}
52 {% include 'osm/modal/files_list.html' %}
53 {% include 'modal/instance_create.html' %}
54 {% include 'modal/choose_package_name.html' %}
56 {% if package_type == 'ns' %}
57 {% include
"package_list_ns.html" %}
58 {% elif package_type == 'vnf' %}
59 {% include
"package_list_vnf.html" %}
66 {% block resource_block %}
68 <script src=
"/static/node_modules/select2/dist/js/select2.js"></script>
69 <script src=
"/static/src/instancehandler/instance_create.js"></script>
70 <script src=
"/static/src/packagehandler/packages_list.js"></script>
71 <script src=
"/static/src/drop_zone.js"></script>
72 <script src=
"/static/src/packagehandler/onboard_package.js"></script>
75 var csrf_token = '{{csrf_token}}';
76 var descr_list_url = '{% url
"packages:list_packages" package_type=package_type%}';
77 var new_desc_url = '{% url
"packages:onboard_package" package_type=package_type%}'
78 var vim_list_url = '{% url
"vims:list" %}';
79 var package_type = '{{ package_type | safe }}';
80 var project_id = '{{ project_id }}';
85 "render": function (data, type, row) {
86 return row['short-name'] || '';
91 "render": function (data, type, row) {
97 "render": function (data, type, row) {
98 return row['description'] || '';
103 "render": function (data, type, row) {
104 return row['vendor'] || '';
109 "render": function (data, type, row) {
110 return row['version'] || '';
115 "render": function (data, type, row) {
116 var result = '
<div class=
"btn-group">\n' ;
118 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
119 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Instantiate NS"\n' +
120 '
onclick=
"javascript:openModalCreateNS({ \'project_id\':\'' + project_id +'\', \'package_type\': \''+ package_type +'\', \'descriptor_name\':\''+row["name
"]+'\', \'descriptor_id\':\''+row["_id
"]+'\',\'vim_list_url\': \''+vim_list_url+'\', \'nsd_list_url\': \''+descr_list_url+'\' })">\n' +
121 '
<i class=
"fa fa-paper-plane"></i></button>\n';
122 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
123 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Edit"\n' +
124 '
onclick=
"javascript:openDescriptorView(\'nsd\', \''+row["_id
"]+'\')">\n' +
125 '
<i class=
"fa fa-edit"></i></button>\n' +
126 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
127 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Show content"\n' +
128 '
onclick=
"javascript:openPackageContentList(\''+ package_type +'\', \''+row["_id
"]+'\')">\n' +
129 '
<i class=
"fa fa-folder-open"></i></button>\n' +
130 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
131 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Clone"\n' +
132 '
onclick=
"javascript:clonePackage(\''+ package_type +'\', \''+row["_id
"]+'\')">\n' +
133 '
<i class=
"fa fa-clone"></i></button>\n';
134 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
135 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Show Graph"\n' +
136 '
onclick=
"location.href=\'/projects/descriptors/composer?type=nsd&id='+row["_id
"] +'\'"\n' +
137 '
><i class=
"fa fa-sitemap fa-fw"></i></button>\n';
139 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
140 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Download package"\n' +
141 '
onclick=
"location.href=\'/packages/'+package_type+'/'+ row["_id
"] +'/download\'">\n' +
142 '
<i class=
"fa fa-download fa-fw"></i></button>\n' +
143 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
144 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Delete"\n' +
145 '
onclick=
"javascript:deletePackage( \'' + package_type + '\', \''+row["_id
"] + '\', \''+row["name
"] + '\')">\n' +
146 '
<i class=
"far fa-trash-alt"></i></button>\n' +
156 "render": function (data, type, row) {
157 return row['short-name'] || '';
162 "render": function (data, type, row) {
168 "render": function (data, type, row) {
169 return row['_admin']['type'] || '';
175 "render": function (data, type, row) {
176 return row['description'] || '';
181 "render": function (data, type, row) {
182 return row['vendor'] || '';
187 "render": function (data, type, row) {
188 return row['version'] || '';
193 "render": function (data, type, row) {
194 var result = '
<div class=
"btn-group">\n' ;
195 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
196 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Edit"\n' +
197 '
onclick=
"javascript:openDescriptorView(\'vnfd\', \''+row["_id
"]+'\')">\n' +
198 '
<i class=
"fa fa-edit"></i></button>\n' +
199 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
200 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Show content"\n' +
201 '
onclick=
"javascript:openPackageContentList(\''+ package_type +'\', \''+row["_id
"]+'\')">\n' +
202 '
<i class=
"fa fa-folder-open"></i></button>\n' +
203 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
204 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Clone"\n' +
205 '
onclick=
"javascript:clonePackage(\''+ package_type +'\', \''+row["_id
"]+'\')">\n' +
206 '
<i class=
"fa fa-clone"></i></button>\n';
207 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
208 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Show Graph"\n' +
209 '
onclick=
"location.href=\'/projects/descriptors/composer?type=vnfd&id='+row["_id
"] +'\'"\n' +
210 '
><i class=
"fa fa-sitemap fa-fw"></i></button>\n';
212 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
213 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Download package"\n' +
214 '
onclick=
"location.href=\'/packages/'+package_type+'/'+ row["_id
"] +'/download\'">\n' +
215 '
<i class=
"fa fa-download fa-fw"></i></button>\n' +
216 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
217 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Delete"\n' +
218 '
onclick=
"javascript:deletePackage( \'' + package_type + '\', \''+row["_id
"] + '\', \''+row["name
"] + '\')">\n' +
219 '
<i class=
"far fa-trash-alt"></i></button>\n' +
229 function refreshTable() {
230 var type_vnf = $('#type_vnf').val()
231 var url = (type_vnf && type_vnf !== '') ? (
"/packages/" +package_type+
"/list?type="+type_vnf) : (
"/packages/" +package_type+
"/list")
236 $(document).ready( function () {
237 table = $('#descriptors_table').DataTable({
240 "url":
"/packages/" +package_type+
"/list",
241 "dataSrc": function (json) {
242 return json['descriptors'];
246 console.log(
"no auth");
247 moveToLogin(window.location.pathname);
250 "error": function (hxr, error, thrown) {
255 "columns": row_builder[package_type]
259 setInterval(refreshTable,
10000);
262 $(
"#formCreatePackage").submit(function (event) {
263 event.preventDefault(); //prevent default action
264 var post_url = $(this).attr(
"action"); //get form action url
265 var request_method = $(this).attr(
"method");
266 var form_data = new FormData(this); //Encode form elements for submission
270 type: request_method,
273 "Accept": 'application/json'
277 }).done(function (response, textStatus, jqXHR) {
282 location.href='/projects/descriptors/composer?type=' + map[response['data']['type']]+'&id=' + response['data']['id'];
283 }).fail(function (result) {
284 var data = result.responseJSON;
285 var title =
"Error " + (data.code ? data.code : 'unknown');
286 var message = data.detail ? data.detail : 'No detail available.';
295 $(document).on('change', '#type_vnf', function(){
304 {% include
"footer.html" %}