-
+
diff --git a/www/js/renderer.js b/www/js/renderer.js
index ec53b1b..10910d1 100644
--- a/www/js/renderer.js
+++ b/www/js/renderer.js
@@ -1,3 +1,7 @@
+///TODO: Refactor this crap
+
+///TODO: Add % of session and % of all time average lines to aggregate line graph
+
var totalCan = $("#cycleBar");
var speedCan = $('#cycleSpeed');
@@ -20,15 +24,19 @@ var tsCycleSpeedCan = $('#tsCycleSpeed');
//var tsCycleAverageCan = $('#tsCycleAverage');
var tAgCandleCan = $('#tAgCandle');
+var tAgLineCan =$('#tAgLine');
const maxEntries= client.preloadCycles;
+var cycleTableRollover = null;
+var sessionAverageRollover = null;
+
function setStatus(str)
{
$('#status').text(str);
}
-function lerpRGB(a,b,t)
+function _lerpRGB(a,b,t)
{
return {
r: a.r + (b.r - a.r) * t,
@@ -37,6 +45,13 @@ function lerpRGB(a,b,t)
};
}
+function lerpRGB(a,b,c,s,l)
+{
+ var t = s/l;
+ if(t<0.5) return _lerpRGB(a,b,t*2);
+ else return _lerpRGB(b,c,(t-0.5)*2);
+}
+
function add_new_candle(charts, data,update=true,close=null)
{
//charts.agcandle.data.labels.push(fixtime2(new Date(data.timestamp)));
@@ -57,6 +72,18 @@ function createNewCandle(charts, close)
charts.agcandle.update();
}
+function createNewLinePoint(charts, data)
+{
+ if(charts.agline.data.datasets[0].data[charts.agline.data.datasets[0].data.length-1]) {
+ charts.agline.data.datasets[0].data[charts.agline.data.datasets[0].data.length-1] = data.number;
+ charts.agline.data.datasets[1].data[charts.agline.data.datasets[0].data.length-1] = data.number/data._cycles;
+ }
+ charts.agline.data.labels.push(fixtime(new Date()));
+ charts.agline.data.datasets[0].data.push(0);
+ charts.agline.data.datasets[1].data.push(0);
+ charts.agline.update();
+}
+
function total_add_data(chart, label, data, update=true){
//chart.addData(value, label);
@@ -103,9 +130,6 @@ function fixtime2(now){
function grapher(data, charts, update=true) {
//cycle graph
total_add_data(charts.total, fixtime(new Date(data.timestamp)), data,update);
-
-
-
}
function updateSection(gr, pfx, allTime, allTimeAverage,data=null)
@@ -131,8 +155,9 @@ function updateSection(gr, pfx, allTime, allTimeAverage,data=null)
gr.aflagpie.data.datasets[0].data.length =
gr.aflagpie.data.datasets[0].backgroundColor.length = 0;
- var cole = {r: 0, g: 0,b: 255};
- var cols = {r: 255, g: 128, b: 128};
+ var cols = {r: 0, g: 0,b: 255};
+ var colm = {r: 0, g: 255, b: 0};
+ var cole = {r: 255, g: 0, b: 0};
var colstr = function(x) {
return "rgba("+x.r+","+x.g+","+x.b+", 1.0)";
@@ -146,7 +171,7 @@ function updateSection(gr, pfx, allTime, allTimeAverage,data=null)
gr.aflagpie.data.labels.push(share[i]["key"]);
gr.aflagpie.data.datasets[0].data.push(share[i]["total"]);
- gr.aflagpie.data.datasets[0].backgroundColor.push(colstr(lerpRGB(cols,cole,(i/share.length))));
+ gr.aflagpie.data.datasets[0].backgroundColor.push(colstr(lerpRGB(cols,colm,cole,i,share.length)));
}
@@ -227,6 +252,10 @@ function graphCycle(data, charts,update=true)
"
"+data.trips+" | "+
"
"+data.nametrips+" | "+
"");
+ while( cycleTableRollover !== null && cycleTableRollover>0 && ($('#cytb > tbody').children().length)>cycleTableRollover)
+ {
+ $('#cytb > tbody > tr:last').remove();
+ }
grapher(data, charts,update);
updateSection(charts, "s_", client.sessionAllTime, client.sessionAllTimeAverage);
@@ -246,6 +275,12 @@ function graphCycle(data, charts,update=true)
charts.speed.data.datasets[2].data.push( client.allTimeAverage.number);
if(update) {
charts.speed.update();
+ while(sessionAverageRollover!==null && sessionAverageRollover>0 && charts.aspeed.data.labels.length>sessionAverageRollover) {
+ charts.aspeed.data.labels.shift();
+ charts.aspeed.data.datasets[0].data.shift();
+ charts.aspeed.data.datasets[1].data.shift();
+ charts.aspeed.data.datasets[2].data.shift();
+ }
charts.aspeed.data.labels.push(fixtime(new Date(data.timestamp)));
charts.aspeed.data.datasets[0].data.push( ((data.number/client.sessionAllTimeAverage.number)*100.00).toFixed(2));
@@ -266,6 +301,17 @@ function graphCycle(data, charts,update=true)
if(update)
charts.agcandle.update();
}
+
+ //Line
+
+ //Total posts
+ if(charts.agline.data.datasets[0].data[charts.agline.data.datasets[0].data.length-1]) {
+ charts.agline.data.datasets[0].data[charts.agline.data.datasets[0].data.length-1] += data.number;
+ if(client.superBuffer.length>0)
+ charts.agline.data.datasets[1].data[charts.agline.data.datasets[0].data.length-1] = charts.agline.data.datasets[0].data[charts.agline.data.datasets[0].data.length-1] /client.superBuffer[client.superBuffer.length-1]._cycles;
+ if(update)
+ charts.agline.update();
+ }
}
function begin() {
@@ -665,6 +711,30 @@ function begin() {
}
}
});
+
+ var chartAGLine = new Chart(tAgLine, {
+ type: "line",
+ data: {
+ labels: [],
+ datasets: [{
+ label:"Total posts",
+ borderColor: "rgba(255,0,0,0.6)",
+ fill: false,
+ tension: 0,
+ data:[]
+ }, {
+ label: "Average per cycle",
+ borderColor: "rgba(0,255,0,0.6)",
+ fill: false,
+ tension: 0,
+ data:[]
+
+ }]
+ },
+ options: {
+ maintainAspectRatio: false
+ }
+ });
client.onWSclose = function() {
setStatus("Dropped");
@@ -674,6 +744,7 @@ function begin() {
x.total = chartTotal;
x.speed = chartSpeed;
x.agcandle = chartAGCandle;
+ x.agline = chartAGLine;
return x;
};
@@ -713,6 +784,7 @@ function begin() {
//TODO: new supercycle
//add_new_candle(g_chartsSuper(), data);
createNewCandle(g_chartsSuper(), data._candle.number.c);
+ createNewLinePoint(g_chartsSuper(), data);
};
client.start(function(data) {
@@ -733,6 +805,11 @@ function begin() {
//load superbuffer
for(var i in client.superBuffer) {
add_new_candle(g_chartsSuper(), client.superBuffer[i], false, (i>0?client.superBuffer[i-1]._candle.number.c:null));
+
+
+ chartAGLine.data.labels.push(fixtime(new Date(client.superBuffer[i].timestamp)));
+ chartAGLine.data.datasets[0].data.push(client.superBuffer[i].number);
+ chartAGLine.data.datasets[1].data.push(client.superBuffer[i].number/client.superBuffer[i]._cycles);
}
/*if(client.superBuffer.length<1)
@@ -748,7 +825,7 @@ function begin() {
chartTotal.update();
chartSpeed.update();
chartAGCandle.update();
-
+ chartAGLine.update();
$('#at_flagshare_exp').on("click", function() {
@@ -777,6 +854,57 @@ function begin() {
}
});
+ $('#cytb_purge').on("click", function() {
+ $('#cytb_body').empty();
+ $('
|
').appendTo($('#cytb_body'));
+ });
+
+ $('#cytb_rlat').on('input', function() {
+ var val = $('#cytb_rlat').val();
+ if(!isNaN(val))
+ {
+ $('#e_rlat').text("");
+ cycleTableRollover = Number(val);
+ }
+ else {
+ $('#e_rlat').text("Invalid number");
+ cycleTableRollover=null;
+
+ }
+ });
+
+ $('#cs_purge').on("click", function() {
+ chartSCycleSpeed.data.datasets[0].data.length=
+ chartSCycleSpeed.data.datasets[1].data.length=
+ chartSCycleSpeed.data.datasets[2].data.length=
+ chartSCycleSpeed.data.labels.length=0;
+
+ chartSCycleSpeed.update();
+ });
+
+ $('#cs_rlat').on('input', function() {
+ var val = $('#cs_rlat').val();
+ if(!isNaN(val))
+ {
+ $('#e_cs_rlat').text("");
+ sessionAverageRollover = Number(val);
+ }
+ else {
+ $('#e_cs_rlat').text("Invalid number");
+ sessionAverageRollover=null;
+
+ }
+ });
+
+ $('#ag_shift').on('click', function() {
+ chartAGCandle.data.datasets[0].data.shift();
+ chartAGCandle.update();
+
+ chartAGLine.data.labels.shift();
+ chartAGLine.data.datasets[0].data.shift();
+ chartAGLine.update();
+ });
+
updateAllTime(g_charts());
setStatus("Synced");