blob: faabdf7c7765f63636fbd25fa3dd4ef72966fba4 [file] [log] [blame]
<!DOCTYPE HTML>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<div class="col-md-1"></div>
<div class="col-md-10">
<h2 align="center">BMI Calculator</h2>
<div class="form-group">
<label for="height" class="col-form-label"><b>Height(cm):</b></label>
<input type="number" class="form-control" id="height" name="height" placeholder="Please input your height">
</div>
<div class="form-group">
<label for="weight" class="col-form-label"><b>Weight(kg):</b></label>
<input type="number" class="form-control" id="weight" name="weight" placeholder="Please input your weight">
</div>
<button type="submit" class="btn btn-primary" id="submit">Submit</button>
<br/>
<div class="alert alert-light" role="alert" id="bmi">
<h3>BMI Result: <span id="bmi_result"></span></h3>
<h3>BMI Instance ID: <span id="bmi_instanceId"></span></h3>
<h3>BMI Called Time: <span id="bmi_callTime"></span></h3>
</div>
<div class="alert alert-secondary" role="alert">
<b>Note: </b>Range of healthy weight is between <b>18.5</b> and <b>24.9</b>.
</div>
<div id="error" class="alert alert-danger" role="alert"><p id="error_message"></p></div>
</div>
</div>
</body>
<script>
$("#error").hide();
$("#submit").click(function () {
if ( !$("#height").val() || !$("#weight").val() ) {
alert("Please input both the height and weight");
return;
}
$.ajax({
url: "/calculator/bmi?height=" + $("#height").val() + "&weight=" + $("#weight").val(),
type: "GET",
success: function (data) {
$("#error").hide();
$("#bmi_result").text(data.result);
$("#bmi_instanceId").text(data.instanceId);
$("#bmi_callTime").text(data.callTime);
if ( data.result < 18.5 || (data.result < 30 && data.result >= 25) ) {
$("#bmi").removeClass().addClass("alert").addClass("alert-warning");
} else if ( data.result < 25 && data.result >= 18.5 ) {
$("#bmi").removeClass().addClass("alert").addClass("alert-success");
} else {
$("#bmi").removeClass().addClass("alert").addClass("alert-danger");
}
},
error: function (xhr) {
$("#bmi").removeClass().addClass("alert").addClass("alert-light");
$("#bmi_result").text('');
if (xhr.responseText.length == 0) {
$("#error_message").text("empty fallback called");
$("#error").removeClass().addClass("alert").addClass("alert-success").show();
return;
}
var resp = JSON.parse(xhr.responseText);
if (xhr.status == 429) {
$("#error_message").text(resp.message);
$("#error").removeClass().addClass("alert").addClass("alert-danger").show();
} else {
$("#error_message").text(resp.error + ": " + resp.exception)
$("#error").removeClass().addClass("alert").addClass("alert-danger").show();
}
}
});
});
</script>
</html>