Added dynamic adding and loading of results on the test page
This commit is contained in:
		
							
								
								
									
										62
									
								
								assets/scripts/test.coffee
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								assets/scripts/test.coffee
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| testId = $('#results-table').data('test-id') | ||||
|  | ||||
| $ -> | ||||
| 	$('#result-form').on 'submit', (e) -> | ||||
| 		e.preventDefault() | ||||
|  | ||||
| 		form = $(this) | ||||
| 		formData = $(this).serialize() | ||||
| 		benchmarkId = $(this).find('[name="result_benchmark"]').val() | ||||
|  | ||||
| 		$.post '/api/v1/result/add', formData, (response) -> | ||||
| 			if response == 'success' | ||||
| 				fetchTestBenchmarkResults(testId, benchmarkId) | ||||
| 				form[0].reset() | ||||
|  | ||||
| fetchTestBenchmarkResults = (testId, benchmarkId) -> | ||||
| 	try | ||||
| 		benchmarkSearchParams = new URLSearchParams | ||||
| 			benchmark_id: benchmarkId | ||||
| 		benchmarkRes = await fetch("/api/v1/benchmark/details?#{benchmarkSearchParams}") | ||||
| 		benchmarkData = await benchmarkRes.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 | ||||
|  | ||||
| 		tableRow = $("#results-table tr[data-benchmark-id=#{benchmarkId}]") | ||||
| 		tableRow.empty() | ||||
|  | ||||
| 		tableRow.append('<td><a href="/benchmark/' + benchmarkData.id + '">' + benchmarkData.name + '</a></td>') | ||||
| 		tableRow.append('<td>' + benchmarkData.scoring + '</td>') | ||||
| 		tableRow.append('<td>' + resultData.length + '</td>') | ||||
|  | ||||
| 		if resultData.length != 0 | ||||
| 			tableRow.append('<td>' + (avg_total / resultData.length) + '</td>') | ||||
| 		else | ||||
| 			tableRow.append('<td>N/a</td>') | ||||
|  | ||||
| 		if min_total != 0 | ||||
| 			tableRow.append('<td>' + (min_total / resultData.length) + '</td>') | ||||
| 			tableRow.append('<td>' + (max_total / resultData.length) + '</td>') | ||||
| 		else | ||||
| 			tableRow.append('<td>N/a</td>') | ||||
| 			tableRow.append('<td>N/a</td>') | ||||
| 	catch error | ||||
| 		console.error 'An error occurred while fetching benchmark results.', error | ||||
|  | ||||
| $('#results-table tbody tr').each (index, tr) -> | ||||
| 	benchmarkId = $(tr).data('benchmark-id') | ||||
| 	console.log("Fetching results for benchmark id: " + benchmarkId) | ||||
| 	fetchTestBenchmarkResults(testId, benchmarkId) | ||||
		Reference in New Issue
	
	Block a user