{% extends 'layout2.html' %} {% load i18n %} {% load static %} {% block css_include %} {% endblock %} {% block js_include %} {% endblock %} {% block content %}

 IPSEC Configuration

{% endblock %} {% block jquery_code %} var datatableCanRedraw = true; var aoColumns = [ { sTitle: "ID", name: "id", aTargets: [0], defaultContent: "", mData: "id", bVisible: false, }, { sTitle: '{% translate "Status" %}', defaultContent: "", name: "status", mData: "status", aTargets: [1], bSearchable: false, mRender: function(data, type, row) { /* Status of service itself, not of tunnel */ var icon = ""; switch( data ) { case "UP": icon = ' '; break; case "DOWN": icon = ' '; break; case "ERROR": icon = ' '; break; case "CONNECTING": icon = ' '; break; default: icon = ' '; } return icon + "Service status : " + data + "
Security associations connected: "+row.tunnels_up+"
Security associations connecting: "+row.tunnels_connecting; } }, { sTitle: '{% translate "Tunnels status" %}', defaultContent: "", name: "tunnels_status", mData: "tunnels_status", aTargets: [2], bSearchable: false, mRender: function(data, type, row) { var cpt = 0; var result = ""; $.each(data, function(key, value) { if( cpt > 0 ) result += "
"; var state = value[0]; var reason = value[1]; switch( state ) { case "UP": result += ' '; break; case "STOP": result += ' '; break; } result += key+':  '+state+' '+reason+''; cpt++; }); return result; } }, { sTitle: '{% translate "Node" %}', name: "node", aTargets: [3], defaultContent: "", mData: "node", mRender: function(data, type, row) { return data; } }, { sTitle: '{% translate "Action" %}', mData:"id", aTargets: [4], defaultContent: "", mRender: function(data, type, row) { result = '' + ' '; if( $('#details_strongswan').is(":hidden") ) { result += ' '; } else { result += ' '; } if( row.status === "UP" ) { result += ' '; result += ' '; } else if( row.status === "DOWN" ) result += ' '; return result; } } ]; var strongswan_table = $("#strongswan_list").dataTable({ bServerSide : true, order : [[1, 'desc']], iDisplayLength: 10, bProcessing : true, bSort : true, sAjaxSource : '', sServerMethod : 'POST', aoColumnDefs: aoColumns, language: language_datatable, fnServerData : function(sSource, aoData, fnCallback){ var columns = []; for (var i in aoColumns){ if( aoColumns[i].bSearchable !== false && aoColumns[i].mData !== null ) columns.push(aoColumns[i].mData); } aoData.push({ name: 'columns', value: JSON.stringify(columns) }); $.ajax({ type : "POST", url : sSource, data : aoData, success: function(data, callback){ if (!data.status){ notify('error', "{% translate 'Error' %}", data.error); } else { fnCallback(data); } } }) // /$.ajax .fail( function( jqXHR, textStatus ) { notify('error', "{% translate 'Error' %}", jqXHR.responseText); }) // /$.fail .done( function( data ) { if (!data.status){ notify('error', "{% translate 'Error' %}", data.error); } else { fnCallback(data); } }); // /$.done }, // /fnServerData fnCreatedRow: function(nRow, aData, iDataIndex){ /* Events binding to start a strongswan config */ $(nRow).on('click', '.action', function(e) { /* Request start of the selected strongswan process */ /* First, retrieve the action to do */ var action = ($(this).hasClass('start') ? "start" : ($(this).hasClass('stop') ? "stop" : ($(this).hasClass('reload') ? "reload" : ""))); $.ajax({ type : "GET", url : "/services/strongswan/"+action+"/"+aData.id, }) // /$.ajax .fail( function( jqXHR, textStatus ) { new PNotify({ title: 'Unknown error occurred', text: ''+jqXHR.responseText +'', type: 'error', styling: 'bootstrap3', width: '500px', buttons: { closer: true, sticker: false } }); }) // /$.fail .done( function( msg ) { if( msg.status ) { new PNotify({ title: "Success", text: ''+msg.message+'', type: 'success', styling: 'bootstrap3', width: '500px', buttons: { closer: true, sticker: false } }); } else { new PNotify({ title: msg.error, text: ''+msg.error_details+'', type: 'error', styling: 'bootstrap3', width: '500px', buttons: { closer: true, sticker: false } }); } }); // /$.done e.stopPropagation(); }); // /$(nRow).on('click', '.action' /* Events binding to edit a strongswan config */ $(nRow).on('click', 'td', function(e) { if (e.target.tagName !== "TD") return; const url = "{% url 'services.strongswan.edit' %}" + aData.id /* Open edition in a new tab with ctrl click */ if (e.ctrlKey || e.metaKey) { window.open(url, '_blank'); } else { window.location.href = url; } }); // /$(nRow).on('click', 'td' /* Open edition in a new tab with middle click */ $(nRow).on('mousedown', 'td', function(e){ if (e.target.tagName === "TD" && e.button === 1) { window.open("{% url 'services.strongswan.edit' %}" + aData.id, '_blank'); } }); // /$(nRow).on('mousedown', 'td' /* Events binding to print a strongswan conf */ $(nRow).on('click', '.show-status', function(e) { $('#details_strongswan').html(""); var conf = aData['statusall']; $('#details_strongswan').append("
"+conf+"
"); $('#details_strongswan').show(); e.stopPropagation(); }); $(nRow).on('click', '.hide-status', function(e){ $('#details_strongswan').hide(); e.stopPropagation(); }); }, // fnCreatedRow: function fnDrawCallback: function(settings){ datatableCanRedraw = true; }, // fnDrawCallback: function }); // var strongswan_table = $("#strongswan_list").dataTable /* Reload table data every 5 seconds if previous one answered */ setInterval(function(){ if(datatableCanRedraw == true) { datatableCanRedraw = false; strongswan_table.fnDraw(false); } }, 5000); {% endblock %}