77 lines
2.0 KiB
CoffeeScript
77 lines
2.0 KiB
CoffeeScript
$ ->
|
|
$('#reports-download').on 'click', ->
|
|
canvas = $('#benchmark-chart')[0]
|
|
a = document.createElement 'a'
|
|
a.href = canvas.toDataURL 'image/png'
|
|
a.download = 'chart.png'
|
|
a.click()
|
|
|
|
$('#reports-button').on 'click', (e) ->
|
|
benchmarkId = $('#report-benchmarks').val()
|
|
testIds = $('#report-tests').val()
|
|
|
|
benchmarkSearchParams = new URLSearchParams
|
|
benchmark_id: benchmarkId
|
|
benchmarkRes = await fetch("/api/v1/benchmark/details?#{benchmarkSearchParams}")
|
|
benchmarkData = await benchmarkRes.json()
|
|
|
|
data =
|
|
labels: []
|
|
datasets: [
|
|
{
|
|
label: 'Average Score'
|
|
data: []
|
|
}
|
|
]
|
|
|
|
for testId in testIds
|
|
try
|
|
testSearchParams = new URLSearchParams
|
|
test_id: testId
|
|
testRes = await fetch("/api/v1/test/details?#{testSearchParams}")
|
|
testData = await testRes.json()
|
|
|
|
resultSearchParams = new URLSearchParams
|
|
test_id: testId
|
|
benchmark_id: benchmarkId
|
|
resultRes = await fetch("/api/v1/result/list?#{resultSearchParams}")
|
|
resultData = await resultRes.json()
|
|
|
|
avg_total = 0
|
|
min_total = 0
|
|
max_total = 0
|
|
|
|
for result in resultData
|
|
avg_total += result.average
|
|
min_total += result.minimum if result.minimum
|
|
max_total += result.maximum if result.maximum
|
|
|
|
data.labels.push(testData.title)
|
|
data.datasets[0].data.push(avg_total / resultData.length)
|
|
catch error
|
|
console.error 'An error occurred while fetching benchmark results.', error
|
|
|
|
ctx = $('#benchmark-chart')[0].getContext('2d')
|
|
|
|
options =
|
|
indexAxis: 'y'
|
|
plugins:
|
|
datalabels:
|
|
anchor: 'end'
|
|
align: 'left'
|
|
color: 'black'
|
|
font:
|
|
weight: 'bold'
|
|
formatter: (value) -> value
|
|
scales:
|
|
y:
|
|
beginAtZero: true
|
|
|
|
new Chart ctx,
|
|
type: 'bar'
|
|
data: data
|
|
options: options
|
|
plugins: [ChartDataLabels]
|
|
|
|
$('#reports-download').attr('disabled', false)
|