{% block breadcrumb_body %}
{{ block.super }}
- <li><a href="{% url 'projects:open_project' project_id=project_id %}">{{project_overview_data.name}}</a></li>
+ <li><a href="{% url 'projects:open_project' %}">{{project_id}}</a></li>
<li><a> {% if descriptor_type %}
{{ descriptor_type }}
{% else%}
{% block resource_block %}
{{ block.super }}
- <script src="/static/bower_components/select2/dist/js/select2.js"></script>
<script>
- function deletePackage(project_id, descriptor_type, package_id) {
- bootbox.confirm("Are you sure want to delete?", function (result) {
- if (result) {
- location.href = '/projects/' + project_id + '/descriptors/' + descriptor_type + '/' + package_id + '/delete'
- }
- })
- }
-
- function openModalCreateNS(project_id, descriptor_type, descriptor_id) {
- select2_groups = $('#vimAccountId').select2({
- placeholder: 'Select VIM',
- ajax: {
- url: '{% url "vim:list" %}',
- dataType: 'json',
- processResults: function (data) {
- vims = [];
- if (data['datacenters']){
- for(d in data['datacenters']){
- var datacenter = data['datacenters'][d];
- vims.push({id: datacenter['_id'], text: datacenter['name']})
- }
- }
-
- return {
- results: vims
- };
+ var csrf_token = '{{csrf_token}}';
+ var descr_list_url = '{% url "projects:list_descriptors" descriptor_type=descriptor_type%}';
+ var vim_list_url = '{% url "vims:list" %}';
+ var new_desc_url ="{% url 'projects:new_descriptor' descriptor_type=descriptor_type %}";
+ var descriptor_type = '{{ descriptor_type }}';
+ var project_id = '{{ project_id }}';
+ $(document).ready( function () {
+ var table = $('#descriptors_table').DataTable({
+ responsive: true,
+ "ajax": {
+ "url": "/projects/descriptors/" +descriptor_type+"/list",
+ "dataSrc": function (json) {
+ return json['descriptors'];
+ },
+ statusCode: {
+ 401: function () {
+ console.log("no auth");
+ moveToLogin(window.location.pathname);
}
- }
- });
- $('#nsdId').val(descriptor_id);
- $('#modal_new_instance').modal('show');
- }
-
- function openPackageContentList(project_id, type, pkg_id) {
- var dialog = bootbox.dialog({
- message: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
- closeButton: true
- });
- $.ajax({
- url: '/projects/' + project_id + '/descriptors/' + type + '/' + pkg_id + '/action/get_package_files_list',
- type: 'GET',
- dataType: "json",
- contentType: "application/json;charset=utf-8",
- success: function (result) {
- //$('#modal_show_vim_body').empty();
- console.log(result)
- dialog.modal('hide');
- build_file_list("Files in " + pkg_id, result.files);
},
- error: function (result) {
- dialog.modal('hide');
- bootbox.alert("An error occurred while retrieving the package content.");
+ "error": function (hxr, error, thrown) {
+ console.log(hxr)
+ console.log(thrown)
+ console.log(error);
}
- });
- }
-
-
- function build_file_list(title, list) {
- $('#files_list_tbody').find('tr:gt(0)').remove();
- $('#files_list_tbody_title').text(title)
- for (var i in list) {
- var template = '<tr><td>-</td><td>' + list[i] + '</td><td><button type="button" class="btn btn-default" onclick="" disabled><i class="fa fa-folder-open"></i></button></td></tr>'
- $('#files_list_tbody').append(template)
- }
- $('#modal_files_list').modal('show');
- }
+
+ },
+ "columns": [
+ {
+ "render": function (data, type, row) {
+ return row['short-name'] || '';
+ },
+ "targets": 0
+ },
+ {
+ "render": function (data, type, row) {
+ return row['_id'];
+ },
+ "targets": 1
+ },
+ {
+ "render": function (data, type, row) {
+ return row['description'] || '';
+ },
+ "targets": 2
+ },
+ {
+ "render": function (data, type, row) {
+ return row['vendor'] || '';
+ },
+ "targets": 3
+ },
+ {
+ "render": function (data, type, row) {
+ return row['version'] || '';
+ },
+ "targets": 4
+ },
+ {
+ "render": function (data, type, row) {
+ var result = '<div class="btn-group">\n' ;
+ if(descriptor_type == "nsd")
+ result += ' <button type="button" class="btn btn-default" data-container="body"\n' +
+ 'data-toggle="tooltip" data-placement="top" title="Instantiate NS"\n' +
+ 'onclick="javascript:openModalCreateNS({ \'project_id\':\'' + project_id +'\', \'descriptor_type\': \''+ descriptor_type +'\', \'descriptor_name\':\''+row["name"]+'\', \'descriptor_id\':\''+row["_id"]+'\',\'vim_list_url\': \''+vim_list_url+'\', \'nsd_list_url\': \''+descr_list_url+'\' })">\n' +
+ '<i class="fa fa-paper-plane"></i></button>\n';
+ result += '<button type="button" class="btn btn-default" data-container="body"\n' +
+ ' data-toggle="tooltip" data-placement="top" title="Edit"\n' +
+ ' onclick="javascript:openDescriptorView(\''+descriptor_type+'\', \''+row["_id"]+'\')">\n' +
+ ' <i class="fa fa-edit"></i></button>\n' +
+ '<button type="button" class="btn btn-default" data-container="body"\n' +
+ ' data-toggle="tooltip" data-placement="top" title="Show content"\n' +
+ ' onclick="javascript:openPackageContentList(\''+ descriptor_type +'\', \''+row["_id"]+'\')">\n' +
+ ' <i class="fa fa-folder-open"></i></button>\n' +
+ '<button type="button" class="btn btn-default" data-container="body"\n' +
+ ' data-toggle="tooltip" data-placement="top" title="Clone"\n' +
+ ' onclick="javascript:clonePackage(\''+ descriptor_type +'\', \''+row["_id"]+'\')">\n' +
+ ' <i class="fa fa-clone"></i></button>\n' +
+ '<button type="button" class="btn btn-default" data-container="body"\n' +
+ ' data-toggle="tooltip" data-placement="top" title="Show Graph"\n' +
+ ' onclick="location.href=\'/projects/graph?type='+descriptor_type+'&id='+row["_id"] +'\'"\n' +
+ ' disabled><i class="fa fa-sitemap fa-fw"></i></button>\n' +
+ '<button type="button" class="btn btn-default" data-container="body"\n' +
+ ' data-toggle="tooltip" data-placement="top" title="Download package"\n' +
+ ' onclick="location.href=\'/projects/descriptors/'+descriptor_type+'/'+ row["_id"] +'/action/download_pkg\'">\n' +
+ ' <i class="fa fa-download fa-fw"></i></button>\n' +
+ '<button type="button" class="btn btn-default" data-container="body"\n' +
+ ' data-toggle="tooltip" data-placement="top" title="Delete"\n' +
+ ' onclick="javascript:deletePackage( \'' + descriptor_type + '\', \''+row["_id"] + '\', \''+row["name"] + '\')">\n' +
+ ' <i class="far fa-trash-alt"></i></button>\n' +
+ '</div>';
+
+ return result
+ },
+ "targets": 5
+ }]
+
+
+ });
+
+ setInterval(function () {
+ table.ajax.reload();
+ }, 10000);
+ });
</script>
+ <script src="/static/bower_components/select2/dist/js/select2.js"></script>
+ <script src="/static/src/instancehandler/instance_create.js"></script>
+ <script src="/static/src/projecthandler/descriptorslist.js"></script>
+ <script src="/static/src/projecthandler/onboard_package.js"></script>
+
{% endblock %}
{% block footer %}