mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-29 23:49:33 +00:00
Complete historical explorer localization
This commit is contained in:
parent
33f81e1f68
commit
d31b5da32a
3 changed files with 178 additions and 133 deletions
|
|
@ -272,12 +272,12 @@ function historicalDownloadButtonsBar(button_id, pcap_request_data_container_div
|
|||
<div class="row">
|
||||
|
||||
<div class='col-md-3'>
|
||||
Download flows: ]]
|
||||
]] print(i18n("db_explorer.download_flows")) print[[: ]]
|
||||
|
||||
if(ipv4_enabled) then
|
||||
print [[ <a class="btn btn-default btn-sm" href="#" role="button" id="download_flows_v4_]] print(button_id) print[[" style="]] print(style_ipv4) print[[">IPv4</a> ]]
|
||||
print [[ <a class="btn btn-default btn-sm" href="#" role="button" id="download_flows_v4_]] print(button_id) print[[" style="]] print(style_ipv4) print[[">]] print(i18n("ipv4")) print[[</a> ]]
|
||||
else
|
||||
print [[<a class="btn btn-default btn-sm" href="#" role="button" id="download_flows_v6_]] print(button_id) print[[" style="]] print(style_ipv6) print[[">IPv6</a>]]
|
||||
print [[<a class="btn btn-default btn-sm" href="#" role="button" id="download_flows_v6_]] print(button_id) print[[" style="]] print(style_ipv6) print[[">]] print(i18n("ipv6")) print[[</a>]]
|
||||
end
|
||||
|
||||
print [[</div>]]
|
||||
|
|
@ -437,7 +437,7 @@ function historicalTopTalkersTable(ifid, epoch_begin, epoch_end, host, l7proto,
|
|||
</select>
|
||||
</div>
|
||||
<div class='col-md-6'>
|
||||
<i class="fa fa-heart"></i> applications between pairs of talkers <span style="float:right"><small><a onclick="removeAllFavourites('top_talkers', 'apps_per_host_pair', 'top_talkers_host_pairs')"><i class="fa fa-trash"></i> ]] print(i18n("db_explorer.all")) print[[ </a></small></span>
|
||||
<i class="fa fa-heart"></i> ]] print(i18n("db_explorer.app_between_talkers_pairs")) print[[ <span style="float:right"><small><a onclick="removeAllFavourites('top_talkers', 'apps_per_host_pair', 'top_talkers_host_pairs')"><i class="fa fa-trash"></i> ]] print(i18n("db_explorer.all")) print[[ </a></small></span>
|
||||
<select name="top_talkers_host_pairs" id="top_talkers_host_pairs" class="form-control">
|
||||
</select>
|
||||
</form>
|
||||
|
|
@ -462,7 +462,7 @@ var emptyBreadCrumb = function(){
|
|||
|
||||
var refreshBreadCrumbInterface = function(){
|
||||
emptyBreadCrumb();
|
||||
$("#bc-talkers").append('<li>Interface ]] print(getInterfaceName(ifid)) print [[</li>');
|
||||
$("#bc-talkers").append('<li>]] print(i18n("interface_ifname", {ifname=getInterfaceName(ifid)})) print [[</li>');
|
||||
$('#historical-container').removeAttr("host");
|
||||
$('#historical-container').removeAttr("peer");
|
||||
addObservationPeriodToBreadCrumb(']] print(interface_talkers_url_params) print[[', '#bc-talkers');
|
||||
|
|
@ -476,10 +476,10 @@ var refreshBreadCrumbHost = function(host){
|
|||
// the second is shown if it has been added...
|
||||
|
||||
// first pair: shown if the host has not been favorited
|
||||
$("#bc-talkers").append('<li class="bc-item-add talker">' + host + ' talkers <a onclick="addToFavourites(\'historical-container\', \'top_talkers\', \'talker\', \'top_talkers_talker\');"><i class="fa fa-heart-o" title="]] print(i18n("save")) print[["></i></a> </li>');
|
||||
$("#bc-talkers").append('<li class="bc-item-add talker">]] print(i18n("db_explorer.host_talkers", {host="' + host + '"})) print[[ <a onclick="addToFavourites(\'historical-container\', \'top_talkers\', \'talker\', \'top_talkers_talker\');"><i class="fa fa-heart-o" title="]] print(i18n("save")) print[["></i></a> </li>');
|
||||
|
||||
// second pair: shown if the host has been favorited
|
||||
$("#bc-talkers").append('<li class="bc-item-remove talker">' + host + ' talkers <a onclick="removeFromFavourites(\'historical-container\', \'top_talkers\', \'talker\', \'top_talkers_talker\');"><i class="fa fa-heart" title="]] print(i18n("db_explorer.unsave")) print[["></i></a> </li>');
|
||||
$("#bc-talkers").append('<li class="bc-item-remove talker">]] print(i18n("db_explorer.host_talkers", {host="' + host + '"})) print[[ <a onclick="removeFromFavourites(\'historical-container\', \'top_talkers\', \'talker\', \'top_talkers_talker\');"><i class="fa fa-heart" title="]] print(i18n("db_explorer.unsave")) print[["></i></a> </li>');
|
||||
|
||||
// here we decide which li has to be shown, depending on the elements contained in the drop-down menu
|
||||
if($('#top_talkers_talker > option[value=\'' + host + '\']').length == 0){
|
||||
|
|
@ -513,13 +513,13 @@ var refreshBreadCrumbPairs = function(peer1, peer2, l7_proto_id){
|
|||
$('#historical-container').removeAttr("l7_proto_id");
|
||||
}
|
||||
|
||||
$("#bc-talkers").append('<li><a onclick="populateInterfaceTopTalkersTable();">Interface ]] print(getInterfaceName(ifid)) print [[</a></li>');
|
||||
$("#bc-talkers").append('<li><a onclick="populateHostTopTalkersTable(\'' + peer1 + '\');">' + peer1 + ' talkers</a></li>');
|
||||
$("#bc-talkers").append('<li><a onclick="populateInterfaceTopTalkersTable();">]] print(i18n("interface_ifname", {ifname=getInterfaceName(ifid)})) print[[</a></li>');
|
||||
$("#bc-talkers").append('<li><a onclick="populateHostTopTalkersTable(\'' + peer1 + '\');">]] print(i18n("db_explorer.host_talkers", {host="' + peer1 + '"})) print[[</a></li>');
|
||||
|
||||
// here we append to li: one will be shown if the pair of peers is favorited, the other is shown in the opposite case
|
||||
|
||||
// first li: shown if the pair has been favorited
|
||||
var bc_talkers_li_text = 'Applications between ' + peer1 + ' and ' + peer2;
|
||||
var bc_talkers_li_text = ']] print(i18n("db_explorer.applications_between", {peer1="' + peer1 + '", peer2="' + peer2 + '"})) print[[';
|
||||
if (typeof l7_proto_id !== "undefined"){
|
||||
bc_talkers_li_text = '<a onclick="populateAppsPerHostsPairTable(\'' + peer1 + '\',\'' + peer2 + '\');">' + bc_talkers_li_text + '</a>';
|
||||
}
|
||||
|
|
@ -633,18 +633,18 @@ var populateHostTopTalkersTable = function(host){
|
|||
var addr_td = $("td:eq(1)", row[0]);
|
||||
var label_td = $("td:eq(0)", row[0]);
|
||||
var addr = addr_td.text();
|
||||
label_td.append(' <a onclick="populateAppsPerHostsPairTable(\'' + host +'\',\'' + addr +'\');"><i class="fa fa-exchange" title="Applications between ' + host + ' and ' + addr + '"></i></a>');
|
||||
label_td.append(' <a onclick="populateAppsPerHostsPairTable(\'' + host +'\',\'' + addr +'\');"><i class="fa fa-exchange" title="]] print(i18n("db_explorer.applications_between", {peer1="' + host + '", peer2="' + addr + '"})) print[["></i></a>');
|
||||
return row;
|
||||
},
|
||||
columns:
|
||||
[
|
||||
{title: "Host Name", field: "column_label", sortable: true},
|
||||
{title: "IP Address", field: "column_addr", sortable:true, hidden: false},
|
||||
{title: "Traffic Sent", field: "column_bytes_sent", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Traffic Received",field: "column_bytes_rcvd", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Total Traffic", field: "column_bytes", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Total Packets", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Flows", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
{title: "]] print(i18n("db_explorer.host_name")) print[[", field: "column_label", sortable: true},
|
||||
{title: "]] print(i18n("ip_address")) print[[", field: "column_addr", sortable:true, hidden: false},
|
||||
{title: "]] print(i18n("db_explorer.traffic_sent")) print[[", field: "column_bytes_sent", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.traffic_received")) print[[",field: "column_bytes_rcvd", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.total_traffic")) print[[", field: "column_bytes", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.total_packets")) print[[", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("flows")) print[[", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
|
@ -696,16 +696,16 @@ var populateAppsPerHostsPairTable = function(peer1, peer2){
|
|||
var label = label_td.text();
|
||||
var l7_proto_id = l7_proto_id_td.text();
|
||||
var num_flows = parseInt($("td:eq(4)", row[0]).text().replace(/[^0-9]/g, ''));
|
||||
label_td.append(' <a onclick="populateFlowsPerHostsPairTable(\'' + peer1 +'\',\'' + peer2 +'\',\'' + l7_proto_id +'\',\'' + num_flows +'\');"><i class="fa fa-tasks" title="' + label + ' application flows between ' + peer1 + ' and ' + peer2 + '"></i></a>');
|
||||
label_td.append(' <a onclick="populateFlowsPerHostsPairTable(\'' + peer1 +'\',\'' + peer2 +'\',\'' + l7_proto_id +'\',\'' + num_flows +'\');"><i class="fa fa-tasks" title="]] print(i18n("db_explorer.app_flows_between", {app="' + label + '", peer1="' + peer1 + '", peer2="' + peer2 + '"})) print[["></i></a>');
|
||||
return row;
|
||||
},
|
||||
columns:
|
||||
[
|
||||
{title: "Protocol id", field: "column_application", hidden: true},
|
||||
{title: "Application", field: "column_label", sortable: false},
|
||||
{title: "Total Traffic", field: "column_bytes", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Packets", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Flows", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
{title: "]] print(i18n("db_explorer.protocol_id")) print[[", field: "column_application", hidden: true},
|
||||
{title: "]] print(i18n("application")) print[[", field: "column_label", sortable: false},
|
||||
{title: "]] print(i18n("db_explorer.total_traffic")) print[[", field: "column_bytes", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("packets")) print[[", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("flows")) print[[", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
|
@ -758,17 +758,17 @@ totalRows: 100,
|
|||
tableCallback: function(){$(div_id).attr("total_rows", this.options.totalRows);enableAllDropdownsAndTabs();},
|
||||
columns:
|
||||
[
|
||||
{title: "Key", field: "idx", hidden: true},
|
||||
{title: "]] print(i18n("key")) print[[", field: "idx", hidden: true},
|
||||
{title: "", field: "FLOW_URL", sortable:false, css:{textAlign:'center'}},
|
||||
{title: "Application", field: "L7_PROTO", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "L4 Proto", field: "PROTOCOL", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "Client", field: "CLIENT", sortable: false},
|
||||
{title: "Server", field: "SERVER", sortable: false},
|
||||
{title: "Begin", field: "FIRST_SWITCHED", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "End", field: "LAST_SWITCHED", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "Traffic", field: "BYTES", sortable: true, css:{textAlign:'right'}},
|
||||
{title: "Info", field: "INFO", sortable: true, css:{textAlign:'right'}},
|
||||
{title: "Avg Thpt", field: "AVG_THROUGHPUT", sortable: false, css:{textAlign:'right'}}
|
||||
{title: "]] print(i18n("application")) print[[", field: "L7_PROTO", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "]] print(i18n("db_explorer.l4_proto")) print[[", field: "PROTOCOL", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "]] print(i18n("client")) print[[", field: "CLIENT", sortable: false},
|
||||
{title: "]] print(i18n("server")) print[[", field: "SERVER", sortable: false},
|
||||
{title: "]] print(i18n("begin")) print[[", field: "FIRST_SWITCHED", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "]] print(i18n("end")) print[[", field: "LAST_SWITCHED", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "]] print(i18n("traffic")) print[[", field: "BYTES", sortable: true, css:{textAlign:'right'}},
|
||||
{title: "]] print(i18n("info")) print[[", field: "INFO", sortable: true, css:{textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.average_throughput")) print[[", field: "AVG_THROUGHPUT", sortable: false, css:{textAlign:'right'}}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
|
@ -846,12 +846,12 @@ function historicalTopApplicationsTable(ifid, epoch_begin, epoch_end, host)
|
|||
<div class="form-group">
|
||||
<div class='col-md-3'>
|
||||
<form name="top_apps_faves">
|
||||
<i class="fa fa-heart"></i> protocols <span style="float:right"><small><a onclick="removeAllFavourites('top_applications', 'app', 'top_applications_app')"><i class="fa fa-trash"></i> all </a></small></span>
|
||||
<i class="fa fa-heart"></i> ]] print(i18n("protocols")) print[[ <span style="float:right"><small><a onclick="removeAllFavourites('top_applications', 'app', 'top_applications_app')"><i class="fa fa-trash"></i> ]] print(i18n("db_explorer.all")) print[[ </a></small></span>
|
||||
<select name="top_applications_app" id="top_applications_app" class="form-control">
|
||||
</select>
|
||||
</div>
|
||||
<div class='col-md-6'>
|
||||
<i class="fa fa-heart"></i> host peers by protocol <span style="float:right"><small><a onclick="removeAllFavourites('top_applications', 'host_peers_by_app', 'top_applications_host_peers_by_app')"><i class="fa fa-trash"></i> all </a></small></span>
|
||||
<i class="fa fa-heart"></i> host peers by protocol <span style="float:right"><small><a onclick="removeAllFavourites('top_applications', 'host_peers_by_app', 'top_applications_host_peers_by_app')"><i class="fa fa-trash"></i> ]] print(i18n("db_explorer.all")) print[[ </a></small></span>
|
||||
<select name="top_applications_host_peers_by_app" id="top_applications_host_peers_by_app" class="form-control">
|
||||
</select>
|
||||
</form>
|
||||
|
|
@ -889,22 +889,22 @@ var refreshHostPeersByAppBreadCrumb = function(peer1, proto_id, peer2){
|
|||
}
|
||||
|
||||
if (root === "interface"){
|
||||
$("#bc-apps").append('<li><a onclick="populateInterfaceTopAppsTable();">Interface ]] print(getInterfaceName(ifid)) print [[</a></li>');
|
||||
$("#bc-apps").append('<li><a onclick="populateAppTopTalkersTable(\'' + proto_id + '\');">' + app + ' talkers</a></li>');
|
||||
$("#bc-apps").append('<li><a onclick="populateInterfaceTopAppsTable();">]] print(i18n("interface_ifname", {ifname=getInterfaceName(ifid)})) print[[</a></li>');
|
||||
$("#bc-apps").append('<li><a onclick="populateAppTopTalkersTable(\'' + proto_id + '\');">]] print(i18n("db_explorer.app_talkers", {app="' + app + '"})) print[[</a></li>');
|
||||
|
||||
// append two li: one is to be shown when the favourites has not been added;
|
||||
// the other is shown when the favourites has been added
|
||||
|
||||
// first li: there is no existing favorited peer --> app pair saved
|
||||
var bc_apps_text = app + ' talkers with ' + peer1;
|
||||
var bc_apps_text = ']] print(i18n("db_explorer.app_talkers_with", {app="' + app + '", peer="' + peer1 + '"})) print[[';
|
||||
if (typeof peer2 !== "undefined"){
|
||||
bc_apps_text = '<a onclick="populatePeersPerHostByApplication(\'' + peer1 + '\',\'' + proto_id + '\');">' + bc_apps_text + '</a>';
|
||||
}
|
||||
|
||||
$("#bc-apps").append('<li class="bc-app-item-add host-peers-by-app">' + bc_apps_text + ' <a onclick="addToFavourites(\'historical-apps-container\', \'top_applications\', \'host_peers_by_app\', \'top_applications_host_peers_by_app\');"><i class="fa fa-heart-o" title="Save"></i></a> </li>');
|
||||
$("#bc-apps").append('<li class="bc-app-item-add host-peers-by-app">' + bc_apps_text + ' <a onclick="addToFavourites(\'historical-apps-container\', \'top_applications\', \'host_peers_by_app\', \'top_applications_host_peers_by_app\');"><i class="fa fa-heart-o" title="]] print(i18n("save")) print[["></i></a> </li>');
|
||||
|
||||
// second li: there is an already existing favorited peer --> app pair saved
|
||||
$("#bc-apps").append('<li class="bc-app-item-remove host-peers-by-app"> ' + bc_apps_text + ' <a onclick="removeFromFavourites(\'historical-apps-container\', \'top_applications\', \'host_peers_by_app\', \'top_applications_host_peers_by_app\');"><i class="fa fa-heart" title="Unsave"></i></a> </li>');
|
||||
$("#bc-apps").append('<li class="bc-app-item-remove host-peers-by-app"> ' + bc_apps_text + ' <a onclick="removeFromFavourites(\'historical-apps-container\', \'top_applications\', \'host_peers_by_app\', \'top_applications_host_peers_by_app\');"><i class="fa fa-heart" title="]] print(i18n("db_explorer.unsave")) print[["></i></a> </li>');
|
||||
|
||||
// here we decide which li has to be shown, depending on the elements contained in the drop-down menu
|
||||
if($('#top_applications_host_peers_by_app > option[value=\'' + proto_id + ',' + peer1 + '\']').length == 0){
|
||||
|
|
@ -929,7 +929,7 @@ var refreshHostPeersByAppBreadCrumb = function(peer1, proto_id, peer2){
|
|||
if(app.toLowerCase().endsWith("unknown")){
|
||||
bc_apps_text = 'Unknown protocol talkers with ' + host;
|
||||
} else {
|
||||
bc_apps_text = app + ' talkers with ' + host;
|
||||
bc_apps_text = ']] print(i18n("app_talkers_with", {app="' + app +'", peer="' + host +'"})) print[[';
|
||||
}
|
||||
if (typeof peer2 !== "undefined"){
|
||||
bc_apps_text = '<a onclick="populatePeersPerHostByApplication(\'' + peer1 + '\',\'' + proto_id + '\');">' + bc_apps_text + '</a>';
|
||||
|
|
@ -938,7 +938,7 @@ var refreshHostPeersByAppBreadCrumb = function(peer1, proto_id, peer2){
|
|||
}
|
||||
|
||||
if (typeof peer2 !== "undefined"){
|
||||
$("#bc-apps").append('<li>' +$("#historical-apps-container").attr("l7_proto") + ' protocol flows between ' + peer1 + ' and ' + peer2 + '</li>');
|
||||
$("#bc-apps").append('<li>]] print(i18n("db_explorer.protocol_flows_between", {proto="' + $(\"#historical-apps-container\").attr(\"l7_proto\") + '", peer1="' + peer1 + '", peer2="' + peer2 + '"})) print[[</li>');
|
||||
}
|
||||
addObservationPeriodToBreadCrumb(']] print(top_apps_url_params) print[[', '#bc-apps');
|
||||
}
|
||||
|
|
@ -946,7 +946,7 @@ var refreshHostPeersByAppBreadCrumb = function(peer1, proto_id, peer2){
|
|||
var populateInterfaceTopAppsTable = function(){
|
||||
emptyAppsBreadCrumb();
|
||||
$('#historical-apps-container').removeAttr("host");
|
||||
$("#bc-apps").append('<li>Interface ]] print(getInterfaceName(ifid)) print [[</li>');
|
||||
$("#bc-apps").append('<li>]] print(i18n("interface_ifname", {ifname=getInterfaceName(ifid)})) print[[</li>');
|
||||
addObservationPeriodToBreadCrumb(']] print(top_apps_url_params) print[[', '#bc-apps');
|
||||
|
||||
hideAll("app-talkers");
|
||||
|
|
@ -975,16 +975,16 @@ print [[
|
|||
var proto_label_td = $("td:eq(1)", row[0]);
|
||||
var proto_id = proto_id_td.text();
|
||||
var proto_label = proto_label_td.text();
|
||||
proto_label_td.append(' <a onclick="$(\'#historical-apps-container\').attr(\'l7_proto_id\', \'' + proto_id + '\');$(\'#historical-apps-container\').attr(\'l7_proto\', \'' + proto_label + '\');populateAppTopTalkersTable(\'' + proto_id +'\');"><i class="fa fa-pie-chart" title="Get Talkers using this protocol"></i></a>');
|
||||
proto_label_td.append(' <a onclick="$(\'#historical-apps-container\').attr(\'l7_proto_id\', \'' + proto_id + '\');$(\'#historical-apps-container\').attr(\'l7_proto\', \'' + proto_label + '\');populateAppTopTalkersTable(\'' + proto_id +'\');"><i class="fa fa-pie-chart" title="]] print(i18n("db_explorer.get_proto_talkers")) print[["></i></a>');
|
||||
return row;
|
||||
},
|
||||
columns:
|
||||
[
|
||||
{title: "Protocol id", field: "column_application", hidden: true},
|
||||
{title: "Application", field: "column_label", sortable: false},
|
||||
{title: "Total Traffic", field: "column_bytes", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Packets", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Flows", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
{title: "]] print(i18n("db_explorer.protocol_id")) print[[", field: "column_application", hidden: true},
|
||||
{title: "]] print(i18n("application")) print[[", field: "column_label", sortable: false},
|
||||
{title: "]] print(i18n("db_explorer.total_traffic")) print[[", field: "column_bytes", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("packets")) print[[", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("flows")) print[[", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
|
@ -997,11 +997,11 @@ var populateAppTopTalkersTable = function(proto_id){
|
|||
var app = $('#historical-apps-container').attr("l7_proto");
|
||||
|
||||
// UPDATE THE BREADCRUMB
|
||||
$("#bc-apps").append('<li><a onclick="populateInterfaceTopAppsTable();">Interface ]] print(getInterfaceName(ifid)) print [[</a></li>');
|
||||
$("#bc-apps").append('<li><a onclick="populateInterfaceTopAppsTable();">]] print(i18n("interface_ifname", {ifname=getInterfaceName(ifid)})) print[[</a></li>');
|
||||
|
||||
// add two li: show the first li when no favourite has been added; show the second li in the other case
|
||||
$("#bc-apps").append('<li class="bc-app-item-add app"> ' + app + ' talkers <a onclick="addToFavourites(\'historical-apps-container\', \'top_applications\', \'app\', \'top_applications_app\');"><i class="fa fa-heart-o" title="Save"></i></a> </li>');
|
||||
$("#bc-apps").append('<li class="bc-app-item-remove app"> ' + app + ' talkers <a onclick="removeFromFavourites(\'historical-apps-container\', \'top_applications\', \'app\', \'top_applications_app\');"><i class="fa fa-heart" title="Unsave"></i></a> </li>');
|
||||
$("#bc-apps").append('<li class="bc-app-item-add app"> ]] print(i18n("db_explorer.app_talkers", {app="' + app + '"})) print[[ <a onclick="addToFavourites(\'historical-apps-container\', \'top_applications\', \'app\', \'top_applications_app\');"><i class="fa fa-heart-o" title="]] print(i18n("save")) print[["></i></a> </li>');
|
||||
$("#bc-apps").append('<li class="bc-app-item-remove app"> ]] print(i18n("db_explorer.app_talkers", {app="' + app + '"})) print[[ <a onclick="removeFromFavourites(\'historical-apps-container\', \'top_applications\', \'app\', \'top_applications_app\');"><i class="fa fa-heart" title="]] print(i18n("db_explorer.unsave")) print[["></i></a> </li>');
|
||||
|
||||
// here we decide which li has to be shown, depending on the elements contained in the drop-down menu
|
||||
if($('#top_applications_app > option[value=\'' + proto_id + '\']').length == 0){
|
||||
|
|
@ -1053,18 +1053,18 @@ var populateAppTopTalkersTable = function(proto_id){
|
|||
var addr_td = $("td:eq(1)", row[0]);
|
||||
var label_td = $("td:eq(0)", row[0]);
|
||||
var addr = addr_td.text();
|
||||
label_td.append(' <a onclick="populatePeersPerHostByApplication(\'' + addr +'\',\'' + proto_id +'\');"><i class="fa fa-exchange" title="' + app + ' talkers with ' + addr + '"></i></a>');
|
||||
label_td.append(' <a onclick="populatePeersPerHostByApplication(\'' + addr +'\',\'' + proto_id +'\');"><i class="fa fa-exchange" title="]] print(i18n("db_explorer.app_talkers_with", {app="' + app + '", peer="' + addr +'"})) print[["></i></a>');
|
||||
return row;
|
||||
},
|
||||
columns:
|
||||
[
|
||||
{title: "Host Name", field: "column_label", sortable: true},
|
||||
{title: "Address", field: "column_addr", hidden: false, sortable: true},
|
||||
{title: "Traffic Sent", field: "column_bytes_sent", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Traffic Received",field: "column_bytes_rcvd", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Total Traffic", field: "column_bytes", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Packets", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Flows", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
{title: "]] print(i18n("db_explorer.host_name")) print[[", field: "column_label", sortable: true},
|
||||
{title: "]] print(i18n("db_explorer.address")) print[[", field: "column_addr", hidden: false, sortable: true},
|
||||
{title: "]] print(i18n("db_explorer.traffic_sent")) print[[", field: "column_bytes_sent", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.traffic_received")) print[[",field: "column_bytes_rcvd", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.total_traffic")) print[[", field: "column_bytes", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("packets")) print[[", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("flows")) print[[", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
|
@ -1110,18 +1110,18 @@ var populatePeersPerHostByApplication = function(host, proto_id){
|
|||
var label_td = $("td:eq(0)", row[0]);
|
||||
var addr = addr_td.text();
|
||||
var num_flows = parseInt($("td:eq(6)", row[0]).text().replace(/[^0-9]/g, ''));
|
||||
label_td.append(' <a onclick="$(\'#historical-apps-container\').attr(\'l7_proto_id\', \'' + proto_id + '\');populateFlowsPerHostPairByApplicationTable(\'' + host +'\',\'' + addr + '\',\'' + proto_id + '\',\'' + num_flows +'\');"><i class="fa fa-tasks" title="' + $('#historical-apps-container').attr("l7_proto") + ' protocol flows between ' + host + ' and ' + addr + '"></i></a>');
|
||||
label_td.append(' <a onclick="$(\'#historical-apps-container\').attr(\'l7_proto_id\', \'' + proto_id + '\');populateFlowsPerHostPairByApplicationTable(\'' + host +'\',\'' + addr + '\',\'' + proto_id + '\',\'' + num_flows +'\');"><i class="fa fa-tasks" title="]] print(i18n("db_explorer.protocol_flows_between", {proto="' + $(\"#historical-apps-container\").attr(\"l7_proto\") + '", peer1="' + host + '", peer2="' + addr + '"})) print[["></i></a>');
|
||||
return row;
|
||||
},
|
||||
columns:
|
||||
[
|
||||
{title: "Host Name", field: "column_label", sortable: true},
|
||||
{title: "Address", field: "column_addr", hidden: false, sortable: true},
|
||||
{title: "Traffic Sent", field: "column_bytes_sent", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Traffic Received",field: "column_bytes_rcvd", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Total Traffic", field: "column_bytes", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "Packets", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Flows", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
{title: "]] print(i18n("db_explorer.host_name")) print[[", field: "column_label", sortable: true},
|
||||
{title: "]] print(i18n("db_explorer.address")) print[[", field: "column_addr", hidden: false, sortable: true},
|
||||
{title: "]] print(i18n("db_explorer.traffic_sent")) print[[", field: "column_bytes_sent", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.traffic_received")) print[[",field: "column_bytes_rcvd", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.total_traffic")) print[[", field: "column_bytes", sortable: true,css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("packets")) print[[", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("flows")) print[[", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
|
@ -1174,17 +1174,17 @@ totalRows: 100,
|
|||
tableCallback: function(){$(div_id).attr("total_rows", this.options.totalRows);enableAllDropdownsAndTabs();},
|
||||
columns:
|
||||
[
|
||||
{title: "Key", field: "idx", hidden: true},
|
||||
{title: "]] print(i18n("key")) print[[", field: "idx", hidden: true},
|
||||
{title: "", field: "FLOW_URL", sortable:false, css:{textAlign:'center'}},
|
||||
{title: "Application", field: "L7_PROTO", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "L4 Proto", field: "PROTOCOL", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "Client", field: "CLIENT", sortable: false},
|
||||
{title: "Server", field: "SERVER", sortable: false},
|
||||
{title: "Begin", field: "FIRST_SWITCHED", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "End", field: "LAST_SWITCHED", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "Traffic", field: "BYTES", sortable: true, css:{textAlign:'right'}},
|
||||
{title: "Info", field: "INFO", sortable: true, css:{textAlign:'right'}},
|
||||
{title: "Avg Thpt", field: "AVG_THROUGHPUT", sortable: false, css:{textAlign:'right'}}
|
||||
{title: "]] print(i18n("application")) print[[", field: "L7_PROTO", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "]] print(i18n("db_explorer.l4_proto")) print[[", field: "PROTOCOL", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "]] print(i18n("client")) print[[", field: "CLIENT", sortable: false},
|
||||
{title: "]] print(i18n("server")) print[[", field: "SERVER", sortable: false},
|
||||
{title: "]] print(i18n("begin")) print[[", field: "FIRST_SWITCHED", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "]] print(i18n("end")) print[[", field: "LAST_SWITCHED", sortable: true, css:{textAlign:'center'}},
|
||||
{title: "]] print(i18n("traffic")) print[[", field: "BYTES", sortable: true, css:{textAlign:'right'}},
|
||||
{title: "]] print(i18n("info")) print[[", field: "INFO", sortable: true, css:{textAlign:'right'}},
|
||||
{title: "]] print(i18n("db_explorer.average_throughput")) print[[", field: "AVG_THROUGHPUT", sortable: false, css:{textAlign:'right'}}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
|
@ -1231,16 +1231,16 @@ print [[
|
|||
var proto_id = proto_id_td.text();
|
||||
var proto_label = proto_label_td.text();
|
||||
var num_flows = parseInt($("td:eq(4)", row[0]).text().replace(/[^0-9]/g, ''));
|
||||
proto_label_td.append(' <a onclick="$(\'#historical-apps-container\').attr(\'l7_proto_id\', \'' + proto_id + '\');$(\'#historical-apps-container\').attr(\'l7_proto\', \'' + proto_label + '\');populatePeersPerHostByApplication(\'' + host +'\',\'' + proto_id +'\');"><i class="fa fa-exchange" title="Hosts talking ' + proto_id + ' with ' + host + '"></i></a>');
|
||||
proto_label_td.append(' <a onclick="$(\'#historical-apps-container\').attr(\'l7_proto_id\', \'' + proto_id + '\');$(\'#historical-apps-container\').attr(\'l7_proto\', \'' + proto_label + '\');populatePeersPerHostByApplication(\'' + host +'\',\'' + proto_id +'\');"><i class="fa fa-exchange" title="]] print(i18n("db_explorer.hosts_talking_proto_with", {proto="' + proto_id + '", host="' + host + '"})) print[["></i></a>');
|
||||
return row;
|
||||
},
|
||||
columns:
|
||||
[
|
||||
{title: "Protocol id", field: "column_application", hidden: true},
|
||||
{title: "Application", field: "column_label", sortable: false},
|
||||
{title: "Total Traffic", field: "column_bytes", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Packets", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "Flows", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
{title: "]] print(i18n("db_explorer.protocol_id")) print[[", field: "column_application", hidden: true},
|
||||
{title: "]] print(i18n("application")) print[[", field: "column_label", sortable: false},
|
||||
{title: "]] print(i18n("db_explorer.total_traffic")) print[[", field: "column_bytes", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("packets")) print[[", field: "column_packets", sortable: true, css: {textAlign:'right'}},
|
||||
{title: "]] print(i18n("flows")) print[[", field: "column_flows", sortable: true, css: {textAlign:'right'}}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
|
@ -1348,9 +1348,9 @@ function download_pcap_from_nbox(task_id){
|
|||
|
||||
var populatePcapsTable = function(){
|
||||
$("#table-pcaps").datatable({
|
||||
title: "Pcaps",
|
||||
title: "]] print(i18n("db_explorer.pcaps")) print[[",
|
||||
url: "]] print (ntop.getHttpPrefix()) print [[/lua/get_nbox_data.lua?nbox_action=status" ,
|
||||
title: "Pcap Requests and Statuses",
|
||||
title: "]] print(i18n("db_explorer.pcap_requests_and_status")) print[[",
|
||||
]]
|
||||
|
||||
-- Set the preference table
|
||||
|
|
@ -1364,7 +1364,7 @@ print [[
|
|||
showPagination: true,
|
||||
columns: [
|
||||
{
|
||||
title: "Task Id",
|
||||
title: "]] print(i18n("db_explorer.task_id")) print[[",
|
||||
field: "column_task_id",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1372,7 +1372,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Filter (BPF)",
|
||||
title: "]] print(i18n("db_explorer.filter_bpf")) print[[",
|
||||
field: "column_bpf",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1380,7 +1380,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Status",
|
||||
title: "]] print(i18n("status")) print[[",
|
||||
field: "column_status",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1389,7 +1389,7 @@ print [[
|
|||
|
||||
},
|
||||
{
|
||||
title: "Actions",
|
||||
title: "]] print(i18n("actions")) print[[",
|
||||
field: "column_actions",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1468,13 +1468,13 @@ function historicalFlowsTab(ifId, host, epoch_begin, epoch_end, l7proto, l4proto
|
|||
<br>
|
||||
<div class="container-fluid" id="historical-flows-container">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li class="active"> <a href="#historical-flows-summary" role="tab" data-toggle="tab"> Summary </a> </li>
|
||||
<li class="active"> <a href="#historical-flows-summary" role="tab" data-toggle="tab"> ]] print(i18n("db_explorer.summary")) print[[ </a> </li>
|
||||
]]
|
||||
|
||||
if(not(isv6)) then
|
||||
print '<li class="disabled"> <a href="#tab-ipv4" role="tab"> IPv4 </a> </li>'
|
||||
print '<li class="disabled"> <a href="#tab-ipv4" role="tab"> ' print(i18n("ipv4")) print' </a> </li>'
|
||||
else
|
||||
print '<li class="disabled"> <a href="#tab-ipv6" role="tab"> IPv6 </a> </li>'
|
||||
print '<li class="disabled"> <a href="#tab-ipv6" role="tab"> ' print(i18n("ipv6")) print' </a> </li>'
|
||||
end
|
||||
|
||||
print [[
|
||||
|
|
@ -1490,14 +1490,14 @@ print [[
|
|||
<div id="flows-summary-too-slow" style="display:none;" class="alert alert-warning"></div>
|
||||
<div id="flows-summary-wait" style="display:true;">
|
||||
<img src="]] print(ntop.getHttpPrefix()) print[[/img/loading.gif"\>
|
||||
Database query in progress, waiting to receive results...
|
||||
<button class="btn btn-danger btn-xs" type="button" onclick="abortQuery();">Abort</button>
|
||||
]] print(i18n("db_explorer.query_in_progress")) print[[
|
||||
<button class="btn btn-danger btn-xs" type="button" onclick="abortQuery();">]] print(i18n("db_explorer.abort")) print[[</button>
|
||||
</div>
|
||||
</div>
|
||||
<table border=0 class="table table-bordered table-striped" id="flows-summary-table" style="display:none;">
|
||||
<tr>
|
||||
<th> </th><th>Total Flows</th><th>Traffic Volume</th>
|
||||
<th>Total Packets</th><th>Traffic Rate</th><th>Packet Rate</th>
|
||||
<th> </th><th>]] print(i18n("db_explorer.total_flows")) print[[</th><th>]] print(i18n("db_explorer.traffic_volume")) print[[</th>
|
||||
<th>]] print(i18n("db_explorer.total_packets")) print[[</th><th>]] print(i18n("db_explorer.traffic_rate")) print[[</th><th>]] print(i18n("db_explorer.packet_rate")) print[[</th>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -1643,9 +1643,12 @@ function historicalFlowsTabTables(ifId, host, epoch_begin, epoch_end, l7proto, l
|
|||
|
||||
if(id ~= -1) then
|
||||
l7proto = id
|
||||
title = "Top "..l7proto.." Flows"
|
||||
ipv4_title = i18n("db_explorer.top_proto_ipv4_flows", {proto=l7proto})
|
||||
ipv6_title = i18n("db_explorer.top_proto_ipv6_flows", {proto=l7proto})
|
||||
else
|
||||
l7proto = ""
|
||||
ipv4_title = ""
|
||||
ipv6_title = ""
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -1656,9 +1659,11 @@ function historicalFlowsTabTables(ifId, host, epoch_begin, epoch_end, l7proto, l
|
|||
|
||||
|
||||
if((host == "") and (l4proto == "") and (port == "")) then
|
||||
title = "Top Flows ["..formatEpoch(epoch_begin).." - "..formatEpoch(epoch_end).."]"
|
||||
ipv4_title = i18n("db_explorer.top_flows_ipv4", {date_from=formatEpoch(epoch_begin), date_to=formatEpoch(epoch_end)})
|
||||
ipv6_title = i18n("db_explorer.top_flows_ipv6", {date_from=formatEpoch(epoch_begin), date_to=formatEpoch(epoch_end)})
|
||||
else
|
||||
title = ""
|
||||
ipv4_title = ""
|
||||
ipv6_title = ""
|
||||
end
|
||||
|
||||
|
||||
|
|
@ -1691,7 +1696,7 @@ print [[
|
|||
url: url_update4,
|
||||
perPage: 5, ]]
|
||||
|
||||
if(title ~= "") then print('title: "IPv4 '..title..'",\n') else print("title: '',\n") end
|
||||
if(ipv4_title ~= "") then print('title: "'..ipv4_title..'",\n') else print("title: '',\n") end
|
||||
|
||||
print [[
|
||||
showFilter: true,
|
||||
|
|
@ -1700,7 +1705,7 @@ print [[
|
|||
sort: [ [ "BYTES","desc"] ],
|
||||
columns: [
|
||||
{
|
||||
title: "Key",
|
||||
title: "]] print(i18n("key")) print[[",
|
||||
field: "idx",
|
||||
hidden: true,
|
||||
},
|
||||
|
|
@ -1721,7 +1726,7 @@ print [[
|
|||
|
||||
print [[
|
||||
{
|
||||
title: "Application",
|
||||
title: "]] print(i18n("application")) print[[",
|
||||
field: "L7_PROTO",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1729,7 +1734,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "L4 Proto",
|
||||
title: "]] print(i18n("db_explorer.l4_proto")) print[[",
|
||||
field: "PROTOCOL",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1737,17 +1742,17 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Client",
|
||||
title: "]] print(i18n("client")) print[[",
|
||||
field: "CLIENT",
|
||||
sortable: false,
|
||||
},
|
||||
{
|
||||
title: "Server",
|
||||
title: "]] print(i18n("server")) print[[",
|
||||
field: "SERVER",
|
||||
sortable: false,
|
||||
},
|
||||
{
|
||||
title: "Begin",
|
||||
title: "]] print(i18n("begin")) print[[",
|
||||
field: "FIRST_SWITCHED",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1755,7 +1760,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "End",
|
||||
title: "]] print(i18n("end")) print[[",
|
||||
field: "LAST_SWITCHED",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1763,7 +1768,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Traffic Sent",
|
||||
title: "]] print(i18n("db_explorer.traffic_sent")) print[[",
|
||||
field: "IN_BYTES",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1771,7 +1776,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Traffic Received",
|
||||
title: "]] print(i18n("db_explorer.traffic_received")) print[[",
|
||||
field: "OUT_BYTES",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1779,7 +1784,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Total Traffic",
|
||||
title: "]] print(i18n("db_explorer.total_traffic")) print[[",
|
||||
field: "BYTES",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1787,7 +1792,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Info",
|
||||
title: "]] print(i18n("info")) print[[",
|
||||
field: "INFO",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1795,7 +1800,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Avg Thpt",
|
||||
title: "]] print(i18n("db_explorer.average_throughput")) print[[",
|
||||
field: "AVG_THROUGHPUT",
|
||||
sortable: false,
|
||||
css: {
|
||||
|
|
@ -1834,7 +1839,7 @@ print [[
|
|||
url: url_update6,
|
||||
perPage: 5, ]]
|
||||
|
||||
if(title ~= "") then print('title: "IPv6 '..title..'",\n') else print("title: '',\n") end
|
||||
if(ipv6_title ~= "") then print('title: "'..ipv6_title..'",\n') else print("title: '',\n") end
|
||||
|
||||
print [[
|
||||
|
||||
|
|
@ -1844,7 +1849,7 @@ print [[
|
|||
sort: [ [ "BYTES","desc"] ],
|
||||
columns: [
|
||||
{
|
||||
title: "Key",
|
||||
title: "]] print(i18n("key")) print[[",
|
||||
field: "idx",
|
||||
hidden: true,
|
||||
},
|
||||
|
|
@ -1865,7 +1870,7 @@ print [[
|
|||
|
||||
print [[
|
||||
{
|
||||
title: "Application",
|
||||
title: "]] print(i18n("application")) print[[",
|
||||
field: "L7_PROTO",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1873,7 +1878,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "L4 Proto",
|
||||
title: "]] print(i18n("db_explorer.l4_proto")) print[[",
|
||||
field: "PROTOCOL",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1881,17 +1886,17 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Client",
|
||||
title: "]] print(i18n("client")) print[[",
|
||||
field: "CLIENT",
|
||||
sortable: false,
|
||||
},
|
||||
{
|
||||
title: "Server",
|
||||
title: "]] print(i18n("server")) print[[",
|
||||
field: "SERVER",
|
||||
sortable: false,
|
||||
},
|
||||
{
|
||||
title: "Begin",
|
||||
title: "]] print(i18n("begin")) print[[",
|
||||
field: "FIRST_SWITCHED",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1899,7 +1904,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "End",
|
||||
title: "]] print(i18n("end")) print[[",
|
||||
field: "LAST_SWITCHED",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1907,7 +1912,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Traffic Sent",
|
||||
title: "]] print(i18n("db_explorer.traffic_sent")) print[[",
|
||||
field: "IN_BYTES",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1915,7 +1920,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Traffic Received",
|
||||
title: "]] print(i18n("db_explorer.traffic_received")) print[[",
|
||||
field: "OUT_BYTES",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1923,7 +1928,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Total Traffic",
|
||||
title: "]] print(i18n("db_explorer.total_traffic")) print[[",
|
||||
field: "BYTES",
|
||||
sortable: true,
|
||||
css: {
|
||||
|
|
@ -1931,7 +1936,7 @@ print [[
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Avg Thpt",
|
||||
title: "]] print(i18n("db_explorer.average_throughput")) print[[",
|
||||
field: "AVG_THROUGHPUT",
|
||||
sortable: false,
|
||||
css: {
|
||||
|
|
@ -1967,7 +1972,7 @@ function historicalProtoHostHref(ifId, host, l4_proto, ndpi_proto_id, info)
|
|||
if((info ~= nil) and (info ~= "")) then hist_url = hist_url.."&info="..info end
|
||||
print(' ')
|
||||
-- print('<span class="label label-info">')
|
||||
print('<a href="'..hist_url..'&epoch_begin='..tostring(ago1h)..'" title="Flows seen in the last hour"><i class="fa fa-history fa-lg"></i></a>')
|
||||
print('<a href="'..hist_url..'&epoch_begin='..tostring(ago1h)..'" title="'..i18n("db_explorer.last_hour_flows")..'"><i class="fa fa-history fa-lg"></i></a>')
|
||||
-- print('</span>')
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue