colossus/assets/scripts/bedabin.coffee
2024-06-03 14:18:34 -04:00

49 lines
1.6 KiB
CoffeeScript

$ ->
console.log('ready.')
$('#result-form').on('submit', addResult)
$('#report-benchmarks').on('change', ->
url = '/api/benchmark/' + $('#report-benchmarks').val() + '/tests'
$.get(url, (data) ->
# clear old contents from the selector
$('#report-tests').empty()
# add new elements to the selector
addOption(test) for test in data
)
)
addOption = (test) ->
$('#report-tests').append(
$('<option/>')
.attr('value', test.id)
.text(test.title)
)
addResult = (e) ->
e.preventDefault() # prevent browser from traveling to another page
$.post('/result/add', {
redirect: false
result_test: $('#result_test').val()
result_component: $('#result_component').val()
result_benchmark: $('#result_benchmark').val()
result_avg: $('#result_avg').val()
result_min: $('#result_min').val()
result_max: $('#result_max').val()
}, (data) ->
dataRow = $('tr[data-benchmark=' + $('#result_benchmark').val() + ']')
numResultsElem = dataRow.children('[data-result-count]').eq(0)
numResults = numResultsElem.text()
avgElem = dataRow.children('[data-result-avg]').eq(0)
avgElem.text(((avgElem.text() * numResults) + $('#result_avg').val()) / (numResults + 1))
minElem = dataRow.children('[data-result-min]').eq(0)
minElem.text(((minElem.text() * numResults) + $('#result_min').val()) / (numResults + 1))
maxElem = dataRow.children('[data-result-max]').eq(0)
maxElem.text(((maxElem.text() * numResults) + $('#result_max').val()) / (numResults + 1))
numResultsElem.text(numResults + 1)
)