1 {% extends
"project_descriptors.html" %}
7 <link rel=
"stylesheet" href=
"/static/bower_components/select2/dist/css/select2.min.css">
10 {% block title_header_big %}
13 {{ package_type|upper }}
19 {% block left_sidebar %}
20 {% include 'osm/osm_project_left_sidebar.html' %}
23 {% block breadcrumb_body %}
25 <li><a href=
"{% url 'projects:open_project' %}">{{project_id}}
</a></li>
26 <li><a> {% if package_type %}
30 {% endif %} Packages
</a></li>
34 {% block content_body %}
36 {% include 'osm/modal/files_list.html' %}
37 {% include 'modal/instance_create.html' %}
38 {% include 'modal/choose_package_name.html' %}
40 {% if package_type == 'ns' %}
41 {% include
"package_list_ns.html" %}
42 {% elif package_type == 'vnf' %}
43 {% include
"package_list_vnf.html" %}
50 {% block resource_block %}
52 <script src=
"/static/bower_components/select2/dist/js/select2.js"></script>
53 <script src=
"/static/src/instancehandler/instance_create.js"></script>
54 <script src=
"/static/src/packagehandler/packages_list.js"></script>
55 <script src=
"/static/src/packagehandler/onboard_package.js"></script>
58 var csrf_token = '{{csrf_token}}';
59 var descr_list_url = '{% url
"packages:list_packages" package_type=package_type%}';
60 var new_desc_url = '{% url
"packages:onboard_package" package_type=package_type%}'
61 var vim_list_url = '{% url
"vims:list" %}';
62 var package_type = '{{ package_type | safe }}';
63 var project_id = '{{ project_id }}';
68 "render": function (data, type, row) {
69 return row['short-name'] || '';
74 "render": function (data, type, row) {
80 "render": function (data, type, row) {
81 return row['description'] || '';
86 "render": function (data, type, row) {
87 return row['vendor'] || '';
92 "render": function (data, type, row) {
93 return row['version'] || '';
98 "render": function (data, type, row) {
99 var result = '
<div class=
"btn-group">\n' ;
101 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
102 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Instantiate NS"\n' +
103 '
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' +
104 '
<i class=
"fa fa-paper-plane"></i></button>\n';
105 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
106 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Edit"\n' +
107 '
onclick=
"javascript:openDescriptorView(\'nsd\', \''+row["_id
"]+'\')">\n' +
108 '
<i class=
"fa fa-edit"></i></button>\n' +
109 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
110 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Show content"\n' +
111 '
onclick=
"javascript:openPackageContentList(\''+ package_type +'\', \''+row["_id
"]+'\')">\n' +
112 '
<i class=
"fa fa-folder-open"></i></button>\n' +
113 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
114 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Clone"\n' +
115 '
onclick=
"javascript:clonePackage(\''+ package_type +'\', \''+row["_id
"]+'\')">\n' +
116 '
<i class=
"fa fa-clone"></i></button>\n';
117 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
118 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Show Graph"\n' +
119 '
onclick=
"location.href=\'/projects/descriptors/composer?type=nsd&id='+row["_id
"] +'\'"\n' +
120 '
><i class=
"fa fa-sitemap fa-fw"></i></button>\n';
122 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
123 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Download package"\n' +
124 '
onclick=
"location.href=\'/packages/'+package_type+'/'+ row["_id
"] +'/download\'">\n' +
125 '
<i class=
"fa fa-download fa-fw"></i></button>\n' +
126 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
127 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Delete"\n' +
128 '
onclick=
"javascript:deletePackage( \'' + package_type + '\', \''+row["_id
"] + '\', \''+row["name
"] + '\')">\n' +
129 '
<i class=
"far fa-trash-alt"></i></button>\n' +
139 "render": function (data, type, row) {
140 return row['short-name'] || '';
145 "render": function (data, type, row) {
151 "render": function (data, type, row) {
152 return row['_admin']['type'] || '';
158 "render": function (data, type, row) {
159 return row['description'] || '';
164 "render": function (data, type, row) {
165 return row['vendor'] || '';
170 "render": function (data, type, row) {
171 return row['version'] || '';
176 "render": function (data, type, row) {
177 var result = '
<div class=
"btn-group">\n' ;
178 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
179 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Edit"\n' +
180 '
onclick=
"javascript:openDescriptorView(\'vnfd\', \''+row["_id
"]+'\')">\n' +
181 '
<i class=
"fa fa-edit"></i></button>\n' +
182 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
183 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Show content"\n' +
184 '
onclick=
"javascript:openPackageContentList(\''+ package_type +'\', \''+row["_id
"]+'\')">\n' +
185 '
<i class=
"fa fa-folder-open"></i></button>\n' +
186 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
187 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Clone"\n' +
188 '
onclick=
"javascript:clonePackage(\''+ package_type +'\', \''+row["_id
"]+'\')">\n' +
189 '
<i class=
"fa fa-clone"></i></button>\n';
190 result += '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
191 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Show Graph"\n' +
192 '
onclick=
"location.href=\'/projects/descriptors/composer?type=vnfd&id='+row["_id
"] +'\'"\n' +
193 '
><i class=
"fa fa-sitemap fa-fw"></i></button>\n';
195 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
196 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Download package"\n' +
197 '
onclick=
"location.href=\'/packages/'+package_type+'/'+ row["_id
"] +'/download\'">\n' +
198 '
<i class=
"fa fa-download fa-fw"></i></button>\n' +
199 '
<button type=
"button" class=
"btn btn-default" data-container=
"body"\n' +
200 '
data-toggle=
"tooltip" data-placement=
"top" title=
"Delete"\n' +
201 '
onclick=
"javascript:deletePackage( \'' + package_type + '\', \''+row["_id
"] + '\', \''+row["name
"] + '\')">\n' +
202 '
<i class=
"far fa-trash-alt"></i></button>\n' +
211 function refreshTable() {
212 var type_vnf = $('#type_vnf').val()
213 var url = (type_vnf && type_vnf !== '') ? (
"/packages/" +package_type+
"/list?type="+type_vnf) : (
"/packages/" +package_type+
"/list")
218 $(document).ready( function () {
219 table = $('#descriptors_table').DataTable({
222 "url":
"/packages/" +package_type+
"/list",
223 "dataSrc": function (json) {
224 return json['descriptors'];
228 console.log(
"no auth");
229 moveToLogin(window.location.pathname);
232 "error": function (hxr, error, thrown) {
237 "columns": row_builder[package_type]
241 setInterval(refreshTable,
10000);
244 $(
"#formCreatePackage").submit(function (event) {
245 event.preventDefault(); //prevent default action
246 var post_url = $(this).attr(
"action"); //get form action url
247 var request_method = $(this).attr(
"method");
248 var form_data = new FormData(this); //Encode form elements for submission
252 type: request_method,
255 "Accept": 'application/json'
259 }).done(function (response, textStatus, jqXHR) {
264 location.href='/projects/descriptors/composer?type=' + map[response['data']['type']]+'&id=' + response['data']['id'];
265 }).fail(function (result) {
266 var data = result.responseJSON;
267 var title =
"Error " + (data.code ? data.code : 'unknown');
268 var message = data.detail ? data.detail : 'No detail available.';
277 $(document).on('change', '#type_vnf', function(){
286 {% include
"footer.html" %}