Files
game-data/assets/scripts/edgeville.coffee
Gregory Ballantine 4ed915a2c0
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Added some basic table sorting
2025-08-13 23:20:42 -04:00

49 lines
1.1 KiB
CoffeeScript

$ ->
# let us know when javascript is running.
console.log('Ready.')
lastColumn = null
ascending = true
tableHeaders = $('th')
tableHeaders.click (e) ->
column = $(this).index()
table = $(this).closest('table')
if column is lastColumn
ascending = not ascending
else
ascending = true
lastColumn = column
sortTable(table, column, ascending)
sortTable = (table, column, ascending) ->
rows = table.find('tbody tr').get()
compareFunction = (a, b) ->
res = a.cells[column].textContent.localeCompare b.cells[column].textContent
if ascending then res else -res
rows.sort compareFunction
$(rows).detach().appendTo(table.find('tbody'))
return
averageResults = (results, decimals = 2) ->
avgScore = 0
minScore = Infinity
maxScore = -Infinity
factor = (10 ^ decimals)
for result in results
avgScore += result.avg_score
minScore = Math.min(minScore, result.min_score)
maxScore = Math.max(maxScore, result.max_score)
return {
avgScore: Math.round((avgScore / results.length) * factor) / factor,
minScore: minScore,
maxScore: maxScore,
}