Added javascript code to add a result in the background without refreshing the page

This commit is contained in:
Gregory Ballantine 2024-06-03 13:40:26 -04:00
parent b4bd116367
commit 5919226dec
3 changed files with 38 additions and 14 deletions

View File

@ -1,6 +1,8 @@
$ -> $ ->
console.log('ready.') console.log('ready.')
$('#result-form').on('submit', addResult)
$('#report-benchmarks').on('change', -> $('#report-benchmarks').on('change', ->
url = '/api/benchmark/' + $('#report-benchmarks').val() + '/tests' url = '/api/benchmark/' + $('#report-benchmarks').val() + '/tests'
$.get(url, (data) -> $.get(url, (data) ->
@ -17,3 +19,18 @@ addOption = (test) ->
.attr('value', test.id) .attr('value', test.id)
.text(test.title) .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) ->
console.log(data)
)

View File

@ -24,14 +24,21 @@ class ResultController extends Controller {
$result->save(); $result->save();
// redirect the user back to the home page if (!isset($params['redirect']) || $params['redirect'])
$routeContext = RouteContext::fromRequest($request); // redirect the user back to the home page
$routeParser = $routeContext->getRouteParser(); $routeContext = RouteContext::fromRequest($request);
return $response $routeParser = $routeContext->getRouteParser();
->withHeader('Location', $routeParser->urlFor('test.view', [ return $response
'test_id' => $result->test_id ->withHeader('Location', $routeParser->urlFor('test.view', [
])) 'test_id' => $result->test_id
->withStatus(302); ]))
->withStatus(302);
} else {
$payload = json_encode('Success!');
$response->getBody()->write($payload);
return $response
->withHeader('Content-Type', 'application/json');
}
} }
} }

View File

@ -17,7 +17,7 @@
<form id="result-form" class="u-full-width" action="{{ url_for('result.add') }}" method="POST"> <form id="result-form" class="u-full-width" action="{{ url_for('result.add') }}" method="POST">
<div class="row"> <div class="row">
<div class="four columns"> <div class="four columns">
<select class="u-full-width" name="result_benchmark"> <select id="result_benchmark" class="u-full-width" name="result_benchmark">
{% for b in test.benchmarks %} {% for b in test.benchmarks %}
<option value="{{ b.id }}">{{ b.name }}</option> <option value="{{ b.id }}">{{ b.name }}</option>
{% endfor %} {% endfor %}
@ -25,13 +25,13 @@
</div> </div>
<div class="two columns"> <div class="two columns">
<input type="number" step="0.01" name="result_avg" placeholder="0.0"> <input id="result_avg" type="number" step="0.01" name="result_avg" placeholder="0.0">
</div> </div>
<div class="two columns"> <div class="two columns">
<input type="number" step="0.01" name="result_min" placeholder="0.0"> <input id="result_min" type="number" step="0.01" name="result_min" placeholder="0.0">
</div> </div>
<div class="two columns"> <div class="two columns">
<input type="number" step="0.01" name="result_max" placeholder="0.0"> <input id="result_max" type="number" step="0.01" name="result_max" placeholder="0.0">
</div> </div>
<div class="two columns"> <div class="two columns">
@ -39,8 +39,8 @@
</div> </div>
</div> </div>
<input type="hidden" name="result_test" value="{{ test.id }}"> <input id="result_test" type="hidden" name="result_test" value="{{ test.id }}">
<input type="hidden" name="result_component" value="{{ test.component().id }}"> <input id="result_component" type="hidden" name="result_component" value="{{ test.component().id }}">
</form> </form>
</div> </div>
</div> </div>