mirror of https://github.com/CIRCL/AIL-framework
156 lines
7.1 KiB
HTML
156 lines
7.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
|
<meta http-equiv="Pragma" content="no-cache" />
|
|
<meta http-equiv="Expires" content="0" />
|
|
|
|
<title>Trending Charts - AIL</title>
|
|
<link rel="icon" href="{{ url_for('static', filename='image/ail-icon.png') }}">
|
|
|
|
<!-- Core CSS -->
|
|
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
|
|
<link href="{{ url_for('static', filename='font-awesome/css/font-awesome.css') }}" rel="stylesheet">
|
|
<link href="{{ url_for('static', filename='css/sb-admin-2.css') }}" rel="stylesheet">
|
|
<link href="{{ url_for('static', filename='css/dygraph_gallery.css') }}" rel="stylesheet" type="text/css" />
|
|
<!-- JS -->
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/dygraph-combined.js') }}"></script>
|
|
<script language="javascript" src="{{ url_for('static', filename='js/jquery.js')}}"></script>
|
|
<script src="{{ url_for('static', filename='js/jquery.flot.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/jquery.flot.pie.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/jquery.flot.time.js') }}"></script>
|
|
<script>
|
|
var default_display = {{ default_display }};
|
|
var current_displayed_graph;
|
|
</script>
|
|
|
|
</head>
|
|
<body>
|
|
|
|
{% include 'navbar.html' %}
|
|
|
|
<div id="page-wrapper">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<h1 class="page-header" data-page="page-trendingchart">Trending charts</h1>
|
|
</div>
|
|
<!-- /.col-lg-12 -->
|
|
</div>
|
|
<!-- /.row -->
|
|
<div class="row">
|
|
|
|
<!-- /.nav-tabs -->
|
|
<ul class="nav nav-tabs">
|
|
<li class="active"><a data-toggle="tab" href="#tld-tab" data-attribute-name="tld" data-pannel="TldTrending" data-path="../static//csv/tldstrendingdata.csv">Top level domains</a></li>
|
|
<li><a data-toggle="tab" href="#domain-tab" data-attribute-name="domain" data-pannel="DomainTrending" data-path="../static//csv/domainstrendingdata.csv">Domains</a></li>
|
|
<li><a data-toggle="tab" href="#protocol-tab" data-attribute-name="scheme" data-pannel="ProtocolTrending" data-path="../static//csv/protocolstrendingdata.csv">Protocols</a></li>
|
|
<li><a data-toggle="tab" href="#words-tab" data-pannel="WordTrending" data-path="../static//csv/wordstrendingdata.csv">Words</a></li>
|
|
</ul>
|
|
</br>
|
|
|
|
<script>
|
|
var chart_1_num_day = 5;
|
|
var chart_2_num_day = 15;
|
|
</script>
|
|
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/trendingchart.js')}}"
|
|
data-url_progressionCharts="{{ url_for('trendings.progressionCharts') }}">
|
|
</script>
|
|
|
|
<div class="tab-content">
|
|
<div class="col-lg-12 tab-pane fade in active" id="tld-tab" >
|
|
{% include 'trending_graphs/Tldstrending.html' %}
|
|
</div>
|
|
<div class="col-lg-12 tab-pane fade" id="domain-tab">
|
|
{% include 'trending_graphs/Domainstrending.html' %}
|
|
</div>
|
|
<div class="col-lg-12 tab-pane fade" id="protocol-tab">
|
|
{% include 'trending_graphs/Protocolstrending.html' %}
|
|
</div>
|
|
<div class="col-lg-12 tab-pane fade" id="words-tab">
|
|
{% include 'trending_graphs/Wordstrending.html' %}
|
|
</div>
|
|
</div> <!-- tab-content -->
|
|
<!-- /.row -->
|
|
</div>
|
|
<!-- /#page-wrapper -->
|
|
|
|
<!-- import graph function -->
|
|
<script src="{{ url_for('static', filename='js/plot-graph.js') }}"></script>
|
|
|
|
<script type="text/javascript">
|
|
var refresh_interval = 1000*60*2; //number of miliseconds between each call
|
|
var launched_refresher = []; //Avoid launching mutliple refresher
|
|
var active_tab_name = "tld"; //Avoid a redraw of the graph is the tab is not active
|
|
function refresh_top_chart(attr_name, immediate){
|
|
if (immediate){
|
|
plot_top_graph(attr_name, true);
|
|
binder(active_tab_name);
|
|
}
|
|
setTimeout(function() {
|
|
$("[flash-"+attr_name+"]").css('color', '#fece00');
|
|
setTimeout(function() { $("[flash-"+attr_name+"]").css('color', 'black'); }, 1000);
|
|
refresh_top_chart(attr_name, false);
|
|
if (active_tab_name == attr_name)
|
|
plot_top_graph(attr_name, false);
|
|
}, refresh_interval);
|
|
}
|
|
</script>
|
|
|
|
<!-- instanciate and plot graphs -->
|
|
<script type="text/javascript">
|
|
// Create, plot and set the limit of displayed headers
|
|
function create_and_plot(pannel, path){
|
|
//var graph_domain = new Graph($(event.target).attr('data-pannel'), $(event.target).attr('data-path'));
|
|
$.get(path, function(myContentFile) {
|
|
var lines = myContentFile.split("\r\n");
|
|
var header_size = lines[0].split(',').length-1;
|
|
current_displayed_graph = new Graph(pannel, path, header_size);
|
|
setTimeout(function() { current_displayed_graph.set_Visibility(default_display)}, 300);
|
|
}, 'text');
|
|
|
|
}
|
|
|
|
// When a pannel is shown, create_and_plot.
|
|
$('.nav-tabs a').on('shown.bs.tab', function(event){
|
|
create_and_plot($(event.target).attr('data-pannel'), $(event.target).attr('data-path'));
|
|
active_tab_name = $(event.target).attr('data-attribute-name')
|
|
//Top progression chart
|
|
if(launched_refresher.indexOf($(event.target).attr('data-attribute-name')) == -1){
|
|
launched_refresher.push($(event.target).attr('data-attribute-name'));
|
|
refresh_top_chart($(event.target).attr('data-attribute-name'), true);
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<script>
|
|
$(document).ready(function(){
|
|
activePage = $('h1.page-header').attr('data-page');
|
|
$("#"+activePage).addClass("active");
|
|
|
|
$("[align]").css({padding: "2px", width: 'auto', 'background': "rgba(102, 102, 102, 0.15)" , 'border': "3px solid rgb(102, 102, 102)"})
|
|
|
|
// Create the graph when the page has just loaded
|
|
create_and_plot("TldTrending", '../static//csv/tldstrendingdata.csv')
|
|
//Top progression chart
|
|
refresh_top_chart("tld", true);
|
|
});
|
|
|
|
// Used when we modify the number of displayed curves
|
|
function take_top(new_display){
|
|
current_displayed_graph.set_Visibility_andHide(new_display, default_display);
|
|
default_display = new_display;
|
|
}
|
|
|
|
</script>
|
|
|
|
</div>
|
|
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
|
|
</body>
|
|
|
|
</html>
|