Revert changes at analysis.html and player.html

This commit is contained in:
Fuzzlemann 2017-07-26 16:02:59 +02:00
parent 8186f06d96
commit 8121bb758d
3 changed files with 1343 additions and 1780 deletions

View File

@ -43,11 +43,15 @@ public class DataCacheHandler extends SessionCache {
// Cache
private final HashMap<UUID, UserData> dataCache;
// Plan
private final Plan plugin;
private final Database db;
//Cache
private Map<String, Integer> commandUse;
private List<List<TPS>> unsavedTPSHistory;
// Queues
private DataCacheSaveQueue saveTask;
private DataCacheClearQueue clearTask;

View File

@ -19,17 +19,14 @@
background-color: #348e0f;
z-index: 1;
}
.header-content {
padding: 5px 20px;
}
body {
font-family: Verdana, sans-serif;
background-color: #ddd;
color: #fff;
}
.sidenav {
height: 100%;
width: 15%;
@ -42,7 +39,6 @@
padding-top: 88px;
text-align: left;
}
.sidenav p {
width: 100%;
padding: 8px 8px 8px 16px;
@ -90,8 +86,7 @@
.box {
background-color: #fff;
padding: 5px;
text-decoration: none;
!important;
text-decoration: none;!important;
color: #000
text-align: left;
margin: 5px;
@ -101,7 +96,6 @@
.box p {
color: #000;
}
.tab {
width: 20%;
height: 100%;
@ -110,32 +104,26 @@
text-align: left;
align-content: flex-start;
}
.content {
text-align: center;
padding: 5px;
margin: 0px;
}
.row {
width: 50%;
display: flex;
flex-direction: column;
}
.columns {
display: flex;
}
.column {
flex: 1;
}
.box-area {
width: 100%;
display: flex;
}
.infobox {
margin-left: 3px;
color: white;
@ -144,28 +132,23 @@
border-radius: 10px;
float: right;
}
.info-text {
float: right;
width: 50%;
text-align: right;
}
.info-number {
font-size: x-large;
float: right;
}
.info-label {
float: right;
font-size: medium;
}
.info-icon {
font-size: xx-large;
float: left;
}
.headerbox {
color: #348e0f;
display: inline-block;
@ -175,22 +158,18 @@
border-radius: 10px;
width: 95%;
}
.header-icon {
font-size: xx-large;
float: left;
}
.header-text {
font-size: x-large;
}
.header-label {
padding: 0px;
margin: 0px;
border: 0px;
}
.button {
padding: 8px 14px;
background-color: #348e0f;
@ -199,11 +178,9 @@
outline: 0;
text-decoration:none!important;
}
.button:hover {
background-color: #267F00;
}
.table {
border-collapse: collapse;
table-layout: fixed;
@ -212,20 +189,16 @@
padding: 8px 14px;
width: 100%;
}
.buttons {
line-height: 270%;
}
.link {
color: #348e0f;
text-decoration:none!important;
}
.link:hover {
color: #267F00;
}
table.sortable thead {
background-color: #348e0f;
color:#fff;
@ -234,89 +207,71 @@
width: 100%;
overflow: hidden;
}
table.sortable tbody {
color: #000;
}
table.sortable th:not(.sorttable_sorted):not(.sorttable_sorted_reverse):not(.sorttable_nosort):after {
content: " \25B4\25BE"
}
.plugin-container {
color: #000;
height: 100%;
max-height: 400px;
overflow: auto;
}
.plugin-data {
color: #000;
}
header img {
float: right;
padding: 5px;
display: inline;
}
header p {
float: right;
text-align: right;
}
#navbutton {
display: none;
font-size: 40px;
cursor:pointer;
}
@media only screen and (max-width: 850px) {
#navbutton {
display: inline;
}
.sidenav p {
display: none;
}
header {
margin: 0px;
padding 0px;
}
header h1 {
margin: 0px;
}
header img {
margin: 0px;
padding: 0px;
margin-right: 0px;
}
header p {
margin: 0px;
margin-top: 5px;
}
.tab {
flex-direction: column;
}
.columns {
flex-direction: column;
}
.row {
width: 100%;
}
.sidenav {
width: 0%;
transition: 0s;
}
.main-limiter {
margin-left: 0%;
width: 100%;
@ -733,9 +688,6 @@
</div>
<canvas id="tps7d" width="1000" height="600" style="width: 95%;"></canvas>
</div>
<div class="box column">
<canvas id="cpu7d" width="1000" height="600" style="width: 95%;"></canvas>
</div>
</div>
<div class="row">
<div class="box column">
@ -760,10 +712,6 @@
</div>
<canvas id="tps24h" width="1000" height="600" style="width: 95%;"></canvas>
</div>
<div class="box column">
<canvas id="cpu24h" width="1000" height="600" style="width: 95%;"></canvas>
</div>
<p>If CPU Graph displays '-1' CPU usage is not available for this platform.</p>
</div>
</div>
<div class="tab">
@ -878,28 +826,19 @@
</div>
<script>
// Navigation & Refresh time clock
var serverTime = new Date( % currenttime %
)
;
var serverTime = new Date(%currenttime%);
var now = new Date();
var timediff = serverTime.getTime() - now.getTime();
function openNav() {
document.getElementById("sidenav").style.width = "100%";
document.getElementById("limiter").style.display = "none";
document.getElementById("navbutton").onclick = function () {
closeNav();
};
document.getElementById("navbutton").onclick = function () { closeNav(); };
}
function closeNav() {
document.getElementById("sidenav").style.width = "0%";
document.getElementById("limiter").style.display = "block";
document.getElementById("navbutton").onclick = function () {
openNav();
};
document.getElementById("navbutton").onclick = function () { openNav(); };
}
var navButtons = document.getElementsByClassName("nav-button");
var tabs = document.getElementsByClassName("tab");
var slideIndex = window.sessionStorage.getItem("AnalysisSlideIndex");
@ -916,7 +855,6 @@
x.style.opacity = "1";
openFunc(slideIndex)();
countUpTimer();
function openFunc(i) {
return function() {
if (window.getComputedStyle(document.getElementById("navbutton")).getPropertyValue('display') == "inline") {
@ -934,26 +872,17 @@
}
var perc = - 100 / navButtons.length;
slideIndex = i;
if (slideIndex > max) {
slideIndex = 0
}
;
if (slideIndex < 0) {
slideIndex = max
}
;
if (slideIndex > max) {slideIndex = 0};
if (slideIndex < 0) {slideIndex = max};
window.sessionStorage.setItem("AnalysisSlideIndex", slideIndex);
var value = slideIndex * perc;
x.style.transition = "0.5s";
x.style.transform = "translate3d(" + value + "%,0px,0)";
};
}
function countUpTimer() {
var now = new Date();
var begin = new Date( % refreshlong % -timediff
)
;
var begin = new Date( %refreshlong% - timediff);
var out = "";
var seconds = now.getTime() - begin.getTime();
seconds = Math.floor(seconds / 1000);
@ -1011,8 +940,7 @@
pointHitRadius: 10,
spanGaps: false,
data: %datascatterday% ,
}
]
}]
}
var dataweek = {
datasets: [
@ -1037,8 +965,7 @@
pointHitRadius: 10,
spanGaps: false,
data: %datascatterweek% ,
}
]
}]
}
var datamonth = {
datasets: [
@ -1063,8 +990,7 @@
pointHitRadius: 10,
spanGaps: false,
data: %datascattermonth% ,
}
]
}]
}
var playersChartDay = new Chart(ctxday, {
type: 'scatter',
@ -1086,16 +1012,14 @@
ticks: {
suggestedMax: %graphmaxplayers%
}
}
],
}],
xAxes: [{
type: 'linear',
display: false
}]
}
}
})
;
});
var playersChartDay2 = new Chart(ctxday2, {
type: 'scatter',
data: dataday,
@ -1116,16 +1040,14 @@
ticks: {
suggestedMax: %graphmaxplayers%
}
}
],
}],
xAxes: [{
type: 'linear',
display: false
}]
}
}
})
;
});
var playersChartWeek = new Chart(ctxweek, {
type: 'scatter',
data: dataweek,
@ -1146,16 +1068,14 @@
ticks: {
suggestedMax: %graphmaxplayers%
}
}
],
}],
xAxes: [{
type: 'linear',
display: false
}]
}
}
})
;
});
var playersChartMonth = new Chart(ctxmonth, {
type: 'scatter',
data: datamonth,
@ -1176,16 +1096,14 @@
ticks: {
suggestedMax: %graphmaxplayers%
}
}
],
}],
xAxes: [{
type: 'linear',
display: false
}]
}
}
})
;
});
</script>
<script>
@ -1234,12 +1152,9 @@
pointHitRadius: 10,
spanGaps: false,
yAxisID: 'B',
data:
%
datascatterweek %
data: %datascatterweek%
}]
}
;
};
var tpsChart = new Chart(ctxtps, {
type: 'scatter',
data: datatps,
@ -1275,13 +1190,9 @@
suggestedMax: %graphmaxplayers%,
suggestedMin: 0
},
scaleLabel
:
{
scaleLabel: {
display: true,
labelString
:
'Players'
labelString: 'Players'
}
}],
xAxes: [{
@ -1290,8 +1201,7 @@
}]
}
}
})
;
});
</script>
<script>
@ -1340,12 +1250,9 @@
pointHitRadius: 10,
spanGaps: false,
yAxisID: 'B',
data:
%
datascatterday %
data: %datascatterday%
}]
}
;
};
var tpsChart = new Chart(ctxtps, {
type: 'scatter',
data: datatps,
@ -1380,80 +1287,10 @@
ticks: {
suggestedMax: %graphmaxplayers%,
suggestedMin: 0
},
scaleLabel
:
{
display: true,
labelString
:
'Players'
}
}],
xAxes: [{
type: 'linear',
display: false
}]
}
}
})
;
</script>
<script>
// CPU Graph 24h
var ctxcpu = document.getElementById("cpu24h");
var datacpu = {
datasets: [
{
label: "CPU Usage",
fill: false,
lineTension: 0.1,
borderColor: "#e0d264",
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
pointBorderColor: "#e0d264",
pointBackgroundColor: "#ede5aa",
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: "#e0d264",
pointHoverBorderColor: "#8fabc6",
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
spanGaps: false,
data: % cpuscatterday %
}
]
}
;
var cpuChart = new Chart(ctxcpu, {
type: 'scatter',
data: datacpu,
options: {
tooltips: {
callbacks: {
label: function (tooltipItems, data) {
var newDate = new Date();
newDate.setTime(tooltipItems.xLabel);
dateString = newDate.toUTCString();
return dateString + ': ' + tooltipItems.yLabel + '%';
}
}
},
scales: {
yAxes: [{
type: 'linear',
position: 'left',
ticks: {
suggestedMax: 100,
suggestedMin: 0
},
scaleLabel: {
display: true,
labelString: 'CPU Usage'
labelString: 'Players'
}
}],
xAxes: [{
@ -1465,86 +1302,16 @@
});
</script>
<script>
// CPU Graph 7d
var ctxcpu = document.getElementById("cpu7d");
var datacpu = {
datasets: [
{
label: "CPU Usage",
fill: false,
lineTension: 0.1,
borderColor: "#e0d264",
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
pointBorderColor: "#e0d264",
pointBackgroundColor: "#ede5aa",
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: "#e0d264",
pointHoverBorderColor: "#8fabc6",
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
spanGaps: false,
data: % cpuscatterweek %
}
]
}
;
var cpuChart = new Chart(ctxcpu, {
type: 'scatter',
data: datacpu,
options: {
tooltips: {
callbacks: {
label: function (tooltipItems, data) {
var newDate = new Date();
newDate.setTime(tooltipItems.xLabel);
dateString = newDate.toUTCString();
return dateString + ': ' + tooltipItems.yLabel + '%';
}
}
},
scales: {
yAxes: [{
type: 'linear',
position: 'left',
ticks: {
suggestedMax: 100,
suggestedMin: 0
},
scaleLabel: {
display: true,
labelString: 'CPU Usage'
}
}],
xAxes: [{
type: 'linear',
display: false
}]
}
}
});
</script>
<script>
// ActivityPie Graph
var ctxactivitypie = document.getElementById("activityPie");
var dataActivityPie = {
labels: %labelsactivity% ,
datasets
:
[
datasets: [
{
data: %activitydata% ,
backgroundColor
:
[ % activitycolors %
],
hoverBackgroundColor: [ % activitycolors %
]
backgroundColor: [ %activitycolors% ],
hoverBackgroundColor: [ %activitycolors% ]
}
]
}
@ -1567,17 +1334,11 @@
var ctxgmpie = document.getElementById("gmPie");
var dataGmPie = {
labels: %gmlabels% ,
datasets
:
[
datasets: [
{
data: %gmdata% ,
backgroundColor
:
[ % gmcolors %
],
hoverBackgroundColor: [ % gmcolors %
]
backgroundColor: [ %gmcolors% ],
hoverBackgroundColor: [ %gmcolors% ]
}
]
}
@ -1617,7 +1378,6 @@
return '';
}
}
function hour(i) {
switch (i) {
case 25:
@ -1631,22 +1391,16 @@
return i + ':00';
}
}
var ctxpunch = document.getElementById("punchcard");
var datapunch = {
datasets: [
{
label: 'Player Join Punchcard',
data: %datapunchcard% ,
backgroundColor
:
"#222",
hoverBackgroundColor
:
"#333",
backgroundColor: "#222",
hoverBackgroundColor: "#333",
}]
}
;
};
var punchcardChart = new Chart(ctxpunch, {
type: 'bubble',
data: datapunch,
@ -1688,66 +1442,29 @@
var ctxDistribution = document.getElementById("sessiondistribution");
var dataDistr = {
labels: %labelssessiondistribution%,
datasets
:
[
datasets: [
{
label: 'Session Length Distribution',
data: %datasessiondistribution% ,
backgroundColor
:
"#89c471",
fill
:
true,
borderColor
:
"#348e0f",
borderCapStyle
:
'butt',
borderDash
:
[],
borderDashOffset
:
0.0,
borderJoinStyle
:
'miter',
pointBorderColor
:
"#348e0f",
pointBackgroundColor
:
"#fff",
pointBorderWidth
:
1,
pointHoverRadius
:
5,
pointHoverBackgroundColor
:
"#348e0f",
pointHoverBorderColor
:
"#348e0f",
pointHoverBorderWidth
:
2,
pointRadius
:
1,
pointHitRadius
:
10,
spanGaps
:
false,
backgroundColor: "#89c471",
fill: true,
borderColor: "#348e0f",
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
pointBorderColor: "#348e0f",
pointBackgroundColor: "#fff",
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: "#348e0f",
pointHoverBorderColor: "#348e0f",
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
spanGaps: false,
}]
}
;
};
var sessionDistributions = new Chart(ctxDistribution, {
type: 'bar',
data: dataDistr,
@ -1779,53 +1496,27 @@
type: 'choropleth',
locationmode: "country names",
locations: %geomapcountries% ,
z
: %
geomapz % ,
text
: %
geomapcodes % ,
colorscale
:
[
z: %geomapz% ,
text: %geomapcodes% ,
colorscale: [
[0, 'rgb(38, 127, 0)'], [1, 'rgb(220, 220, 220)']],
autocolorscale
:
false,
reversescale
:
true,
marker
:
{
autocolorscale: false,
reversescale: true,
marker: {
line: {
color: 'rgb(100,100,100)',
width
:
0.5
width: 0.5
}
}
,
},
tick0: 0,
zmin
:
0,
dtick
:
1000,
colorbar
:
{
zmin: 0,
dtick: 1000,
colorbar: {
autotic: false,
tickprefix
:
'',
title
:
'Players'
tickprefix: '',
title: 'Players'
}
}]
;
}];
var layout = {
title: '',
autosize: true,

View File

@ -17,17 +17,14 @@
background-color: #348e0f;
z-index: 1;
}
.header-content {
padding: 5px 20px;
}
body {
font-family: Verdana, sans-serif;
background-color: #ddd;
color: #fff;
}
.sidenav {
height: 100%;
width: 15%;
@ -40,7 +37,6 @@
padding-top: 88px;
text-align: left;
}
.sidenav p {
width: 100%;
padding: 8px 8px 8px 16px;
@ -64,7 +60,7 @@
}
.sidenav a.active {
background-color: #5da341;
background-color: #5da341
}
.sidenav a:hover, .offcanvas a:focus{
@ -107,31 +103,25 @@
text-align: left;
align-content: flex-start;
}
.row {
width: 50%;
display: flex;
flex-direction: column;
}
.content {
text-align: center;
padding: 5px;
margin: 0px;
}
.columns {
display: flex;
}
.column {
flex: 1;
}
.box-area {
width: 100%;
}
.infobox {
margin-left: 3px;
color: white;
@ -140,28 +130,23 @@
border-radius: 10px;
float: right;
}
.info-text {
float: right;
width: 50%;
text-align: right;
}
.info-number {
font-size: x-large;
float: right;
}
.info-label {
float: right;
font-size: medium;
}
.info-icon {
font-size: xx-large;
float: left;
}
.headerbox {
color: #348e0f;
display: inline-block;
@ -171,22 +156,18 @@
border-radius: 10px;
width: 95%;
}
.header-icon {
font-size: xx-large;
float: left;
}
.header-text {
font-size: x-large;
}
.header-label {
padding: 0px;
margin: 0px;
border: 0px;
}
.button {
padding: 8px 14px;
background-color: #348e0f;
@ -195,11 +176,9 @@
outline: 0;
text-decoration:none!important;
}
.button:hover {
background-color: #267F00;
}
.table {
border-collapse: collapse;
table-layout: fixed;
@ -208,20 +187,16 @@
padding: 8px 14px;
width: 100%;
}
.buttons {
line-height: 270%;
}
.link {
color: #348e0f;
text-decoration:none!important;
}
.link:hover {
color: #267F00;
}
table.sortable thead {
background-color: #348e0f;
color:#fff;
@ -230,142 +205,110 @@
width: 100%;
overflow: hidden;
}
table.sortable tbody {
color: #000;
}
table.sortable th:not(.sorttable_sorted):not(.sorttable_sorted_reverse):not(.sorttable_nosort):after {
content: " \25B4\25BE"
}
.plugin-container {
color: #000;
height: 100%;
max-height: 400px;
overflow: auto;
}
.plugin-data {
color: #000;
}
.black {
color: #000000;
}
.darkblue {
color: #0000AA;
}
.darkgreen {
color: #00AA00;
}
.darkaqua {
color: #00AAAA;
}
.darkred {
color: #AA0000;
}
.darkpurple {
color: #AA00AA;
}
.gold {
color: #FFAA00;
}
.gray {
color: #AAAAAA;
}
.darkgray {
color: #555555;
}
.blue {
color: #5555FF;
}
.green {
color: #55FF55;
}
.aqua {
color: #55FFFF;
}
.red {
color: #FF5555;
}
.pink {
color: #FF55FF;
}
.yellow {
color: #FFFF55;
}
.white {
color: #FFFFFF;
}
#navbutton {
display: none;
font-size: 40px;
cursor:pointer;
}
@media only screen and (max-width: 850px) {
#navbutton {
display: inline;
}
.sidenav p {
display: none;
}
header {
margin: 0px;
padding 0px;
}
header h1 {
margin: 0px;
}
header img {
margin: 0px;
padding: 0px;
margin-right: 0px;
}
header p {
margin: 0px;
margin-top: 5px;
}
.tab {
flex-direction: column;
}
.columns {
flex-direction: column;
}
.row {
width: 100%;
}
.sidenav {
width: 0%;
transition: 0s;
}
.main-limiter {
margin-left: 0%;
width: 100%;
@ -615,28 +558,19 @@
</div>
</div>
<script>
var serverTime = new Date( % currenttime %
)
;
var serverTime = new Date(%currenttime%);
var now = new Date();
var timediff = serverTime.getTime()-now.getTime();
function openNav() {
document.getElementById("sidenav").style.width = "100%";
document.getElementById("limiter").style.display = "none";
document.getElementById("navbutton").onclick = function () {
closeNav();
};
document.getElementById("navbutton").onclick = function () { closeNav(); };
}
function closeNav() {
document.getElementById("sidenav").style.width = "0%";
document.getElementById("limiter").style.display = "block";
document.getElementById("navbutton").onclick = function () {
openNav();
};
document.getElementById("navbutton").onclick = function () { openNav(); };
}
var navButtons = document.getElementsByClassName("nav-button");
var tabs = document.getElementsByClassName("tab");
var slideIndex = window.sessionStorage.getItem("InspectSlideIndex");
@ -673,14 +607,8 @@
}
var perc = -100 / navButtons.length;
slideIndex = i;
if (slideIndex > max) {
slideIndex = 0
}
;
if (slideIndex < 0) {
slideIndex = max
}
;
if (slideIndex>max) {slideIndex=0};
if (slideIndex<0) {slideIndex=max};
window.sessionStorage.setItem("InspectSlideIndex", slideIndex);
var value = slideIndex*perc;
x.style.transition = "0.5s";
@ -690,9 +618,7 @@
function countUpTimer() {
var now = new Date();
var begin = new Date( % refreshlong % -timediff
)
;
var begin = new Date(%refreshlong%-timediff);
var out = "";
var seconds = now.getTime() - begin.getTime();
@ -742,7 +668,6 @@
return i+':00';
}
}
function day(i) {
switch (i) {
case 0:
@ -764,21 +689,14 @@
return '';
}
}
// Script for All charts using Chart.js
var ctxgmpie = document.getElementById("gmPie");
var dataGmPie = {
labels: %gmlabels% ,
datasets
:
[{
datasets: [{
data: %gmdata% ,
backgroundColor
:
[ % gmcolors %
],
hoverBackgroundColor: [ % gmcolors %
]
backgroundColor: [ %gmcolors% ],
hoverBackgroundColor: [ %gmcolors% ]
}]
}
var GMPie = new Chart(ctxgmpie, {
@ -816,10 +734,7 @@
pointHitRadius: 10,
spanGaps: false,
data: %dataweek% ,
}
]
}
;
}]};
var playersChartWeek = new Chart(ctxweek, {
type: 'scatter',
data: dataweek,
@ -846,37 +761,29 @@
return '1';
default:
return '';
}
;
};
},
suggestedMax: %graphmaxplayers%,
suggestedMin: 0
}
}
],
}],
xAxes: [{
type: 'linear',
display: false
}]
}
}
})
;
});
var ctxpunch = document.getElementById("punchcard");
var datapunch = {
datasets: [
{
label: 'Player Join Punchcard',
data: %datapunchcard%,
backgroundColor
:
"#222",
hoverBackgroundColor
:
"#333",
backgroundColor: "#222",
hoverBackgroundColor: "#333",
}]
}
;
};
var punchcardChart = new Chart(ctxpunch, {
type: 'bubble',
data: datapunch,
@ -904,7 +811,6 @@
return '';
}
}
function hour(i) {
switch (i) {
case 25:
@ -918,7 +824,6 @@
return i+':00';
}
}
return day(tooltipItems.yLabel)+': '+hour(tooltipItems.xLabel);
}
}
@ -948,66 +853,29 @@
var ctxDistribution = document.getElementById("sessiondistribution");
var dataDistr = {
labels: %labelssessiondistribution%,
datasets
:
[
datasets: [
{
label: 'Session Length Distribution',
data: %datasessiondistribution%,
backgroundColor
:
"#89c471",
fill
:
true,
borderColor
:
"#348e0f",
borderCapStyle
:
'butt',
borderDash
:
[],
borderDashOffset
:
0.0,
borderJoinStyle
:
'miter',
pointBorderColor
:
"#348e0f",
pointBackgroundColor
:
"#fff",
pointBorderWidth
:
1,
pointHoverRadius
:
5,
pointHoverBackgroundColor
:
"#348e0f",
pointHoverBorderColor
:
"#348e0f",
pointHoverBorderWidth
:
2,
pointRadius
:
1,
pointHitRadius
:
10,
spanGaps
:
false,
backgroundColor: "#89c471",
fill: true,
borderColor: "#348e0f",
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
pointBorderColor: "#348e0f",
pointBackgroundColor: "#fff",
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: "#348e0f",
pointHoverBorderColor: "#348e0f",
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
spanGaps: false,
}]
}
;
};
var sessionDistributions = new Chart(ctxDistribution, {
type: 'bar',
data: dataDistr,