mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-30 09:47:17 +00:00
a80f6ca0c2
Fixed typo key in redis for module creditcard and sqlinjection Modified Curve redisLvlDb server Modified Url.py so that it forwards name of protocol from saved protocolsfile Added Cache control in Flask Modified key-tab name into keys-tab
143 lines
4.3 KiB
JavaScript
143 lines
4.3 KiB
JavaScript
function Graph(id_pannel, path, header_size){
|
|
this.path = path;
|
|
this.id_pannel = id_pannel;
|
|
|
|
// Hide every header during initialisation
|
|
var false_tab = [];
|
|
for(i=0; i<header_size; i++){
|
|
false_tab[i] = false;
|
|
}
|
|
this.false_tab = false_tab;
|
|
|
|
g2 = new Dygraph(
|
|
document.getElementById(this.id_pannel),
|
|
// path to CSV file
|
|
//"{{ url_for('static', filename='csv/tldstrendingdata.csv') }}",
|
|
//"../static//csv/tldstrendingdata.csv",
|
|
this.path,
|
|
//window.csv,
|
|
{
|
|
rollPeriod: 1,
|
|
showRoller: true,
|
|
//drawPoints: true,
|
|
//fillGraph: true,
|
|
logscale: true,
|
|
|
|
animatedZooms: true,
|
|
labelsKMB: true,
|
|
highlightCircleSize: 3,
|
|
highlightSeriesOpts: {
|
|
strokeWidth: 3,
|
|
strokeBorderWidth: 1,
|
|
highlightCircleSize: 5,
|
|
},
|
|
underlayCallback: function(canvas, area, g) {
|
|
canvas.fillStyle = "rgba(255, 193, 37, 0.5)";
|
|
|
|
function highlight_period(x_start, x_end) {
|
|
var canvas_left_x = g.toDomXCoord(x_start);
|
|
var canvas_right_x = g.toDomXCoord(x_end);
|
|
var canvas_width = canvas_right_x - canvas_left_x;
|
|
canvas.fillRect(canvas_left_x, area.y, canvas_width, area.h);
|
|
}
|
|
|
|
var min_data_x = g.getValue(0,0);
|
|
var max_data_x = g.getValue(g.numRows()-1,0);
|
|
|
|
// get day of week
|
|
var d = new Date(min_data_x);
|
|
var dow = d.getUTCDay();
|
|
var ds = d.toUTCString();
|
|
|
|
var w = min_data_x;
|
|
// starting on Sunday is a special case
|
|
if (dow == 0) {
|
|
highlight_period(w,w+12*3600*1000);
|
|
}
|
|
// find first saturday
|
|
while (dow != 5) {
|
|
w += 24*3600*1000;
|
|
d = new Date(w);
|
|
dow = d.getUTCDay();
|
|
}
|
|
|
|
// shift back 1/2 day to center highlight around the point for the day
|
|
w -= 12*3600*1000;
|
|
while (w < max_data_x) {
|
|
var start_x_highlight = w;
|
|
var end_x_highlight = w + 2*24*3600*1000;
|
|
// make sure we don't try to plot outside the graph
|
|
if (start_x_highlight < min_data_x) {
|
|
start_x_highlight = min_data_x;
|
|
}
|
|
if (end_x_highlight > max_data_x) {
|
|
end_x_highlight = max_data_x;
|
|
}
|
|
highlight_period(start_x_highlight,end_x_highlight);
|
|
// calculate start of highlight for next Saturday
|
|
w += 7*24*3600*1000;
|
|
}
|
|
},
|
|
visibility: false_tab
|
|
});
|
|
this.graph = g2;
|
|
this.set_Visibility = setVis;
|
|
this.set_Visibility_andHide = setVis_andHide;
|
|
|
|
onclick = function(ev) {
|
|
if (g2.isSeriesLocked()) {
|
|
g2.clearSelection();
|
|
}
|
|
else {
|
|
g2.setSelection(g2.getSelection(), g2.getHighlightSeries(), true);
|
|
}
|
|
};
|
|
g2.updateOptions({clickCallback: onclick}, true);
|
|
|
|
var linear = document.getElementById("linear");
|
|
var log = document.getElementById("log");
|
|
linear.onclick = function() { setLog(false); }
|
|
log.onclick = function() { setLog(true); }
|
|
var setLog = function(val) {
|
|
g2.updateOptions({ logscale: val });
|
|
linear.disabled = !val;
|
|
log.disabled = val;
|
|
}
|
|
function unzoomGraph() {
|
|
g2.updateOptions({
|
|
dateWindow:null,
|
|
valueRange:null
|
|
});
|
|
}
|
|
|
|
// display the top headers
|
|
function setVis(max_display){
|
|
var headings = this.graph.getLabels();
|
|
headings.splice(0,1);
|
|
var sorted_list = new Array();
|
|
var today = new Date().getDate();
|
|
//today = new Date().getDate()-1; // Could take the top from yesterday so that we can see the current evolution
|
|
for( i=0; i<headings.length; i++){
|
|
var the_heading = headings[i];
|
|
//console.log('heading='+the_heading+' tab['+(today)+']['+(parseInt(i)+1)+']='+this.graph.getValue(today-1, parseInt(i)+1));
|
|
sorted_list.push({dom: the_heading, val: this.graph.getValue(today-1, parseInt(i)+1), index: parseInt(i)});
|
|
}
|
|
sorted_list.sort(function(a,b) {
|
|
return b.val - a.val;
|
|
});
|
|
|
|
|
|
var display_list = sorted_list.slice(0, max_display);
|
|
for( i=0; i<display_list.length; i++){
|
|
this.graph.setVisibility(display_list[i].index, true);
|
|
}
|
|
return sorted_list.slice(0, sorted_list.length);
|
|
}
|
|
function setVis_andHide(max_display, old_display){
|
|
display_list = this.set_Visibility(max_display);
|
|
for(i=max_display; i<old_display; i++) {
|
|
this.graph.setVisibility(display_list[i].index, false);
|
|
}
|
|
}
|
|
|
|
}
|