diff --git a/frontend/www/exercise.html b/frontend/www/exercise.html index 8653fe2f98733e92c88cde6a8b23fa6f3e912d7b..eefe6542dfa4532bf2584aa1e6d529a4fb6aec8e 100644 --- a/frontend/www/exercise.html +++ b/frontend/www/exercise.html @@ -64,13 +64,16 @@ <input type="button" class="btn btn-danger float-end hide" id="btn-delete-exercise" value="Delete"> </div> <div class="col-lg-6"> - </div> </form> + + <template id="template-workout"> + <option value="Legs">Legs</option> + </template> </div> <script src="scripts/defaults.js"></script> <script src="scripts/scripts.js"></script> <script src="scripts/exercise.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script> </body> -</html> \ No newline at end of file +</html> diff --git a/frontend/www/goal.html b/frontend/www/goal.html index 97d2088fa1a1ccd9635746b9e95bb53c9b4adca9..d9f264e7147d6ace6a706a66329f38d28febbaac 100644 --- a/frontend/www/goal.html +++ b/frontend/www/goal.html @@ -16,12 +16,12 @@ <div class="container"> <div class="row"> <div class="col-lg"> - <h3 class="mt-3">View/Edit Exercise</h3> + <h3 class="mt-3">Create/Edit Goal</h3> </div> </div> <form class="row g-3" id="form-exercise"> <div class="col-lg-6 "> - <label for="inputName" class="form-label">Name</label> + <label for="inputName" class="form-label">Goal</label> <input type="text" class="form-control" id="inputName" name="name" readonly> </div> <div class="col-lg-6"></div> @@ -31,29 +31,13 @@ </div> <div class="col-lg-6"></div> <div class="col-lg-6"> - <label for="inputUnit" class="form-label">Unit (Reps, time, etc.)</label> - <input type="text" class="form-control" id="inputUnit" name="unit" readonly> + <label for="inputDateTime" class="form-label">Goal reached within</label> + <input type="datetime-local" class="form-control" id="inputDateTime" name="date" readonly> </div> <div class="col-lg-6"></div> <div class="col-lg-6"> - <label for="inputDuration" class="form-label"> Duration(Expects a positive integer)</label> - <input type="number" class="form-control" id="inputDuration" name="duration" readonly></input> - </div> - <div class="col-lg-6"></div> - <div class="col-lg-6"> - <label for="inputCalories" class="form-label"> Calories burned (Expects a positive integer)</label> - <input type="number" class="form-control" id="inputCalories" name="calories" readonly></input> - </div> - <div class="col-lg-6"></div> - <div class="col-lg-6"> - <label for="inputMuscles" class="form-label">Muscle group used</label> - <select class="form-select" name="muscleGroup" disabled="true"> - <option value="Legs">Legs</option> - <option value="Chest">Chest</option> - <option value="Back">Back</option> - <option value="Arms">Arms</option> - <option value="Abdomen">Abdominals</option> - <option value="Shoulders">Shoulders</option> + <label for="inputMuscles" class="form-label">Connect to exercise</label> + <select class="form-select" id="exercise-content" name="muscleGroup" disabled="true"> </select> </div> <div class="col-lg-6"></div> @@ -67,6 +51,11 @@ </div> </form> + + + <template id="template-workouts"> + <option value="Shoulders"></option> + </template> </div> <script src="scripts/defaults.js"></script> <script src="scripts/scripts.js"></script> diff --git a/frontend/www/scripts/goal.js b/frontend/www/scripts/goal.js index f845fe1844b633cf1b0bf1365eee4323c4c84bcc..3cfd9deb698276a78b4a13eb5214f55b82c8acd3 100644 --- a/frontend/www/scripts/goal.js +++ b/frontend/www/scripts/goal.js @@ -4,7 +4,7 @@ let deleteButton; let editButton; let oldFormData; -class MuscleGroup { +class MuscleGroup { constructor(type) { this.isValidType = false; this.validTypes = ["Legs", "Chest", "Back", "Arms", "Abdomen", "Shoulders"] @@ -14,7 +14,7 @@ class MuscleGroup { setMuscleGroupType = (newType) => { this.isValidType = false; - + if(this.validTypes.includes(newType)){ this.isValidType = true; this.type = newType; @@ -24,7 +24,7 @@ class MuscleGroup { } }; - + getMuscleGroupType = () => { console.log(this.type, "SWIOEFIWEUFH") return this.type; @@ -48,7 +48,7 @@ function handleCancelButtonDuringEdit() { if (oldFormData.has("calories")) form.calories.value = oldFormData.get("calories"); if (oldFormData.has("muscleGroup")) form.muscleGroup.value = oldFormData.get("muscleGroup"); if (oldFormData.has("unit")) form.unit.value = oldFormData.get("unit"); - + oldFormData.delete("name"); oldFormData.delete("description"); oldFormData.delete("duration"); @@ -66,11 +66,11 @@ async function createExercise() { document.querySelector("select").removeAttribute("disabled") let form = document.querySelector("#form-exercise"); let formData = new FormData(form); - let body = {"name": formData.get("name"), + let body = {"name": formData.get("name"), "description": formData.get("description"), "duration": formData.get("duration"), "calories": formData.get("calories"), - "muscleGroup": formData.get("muscleGroup"), + "muscleGroup": formData.get("muscleGroup"), "unit": formData.get("unit")}; let response = await sendRequest("POST", `${HOST}/api/exercises/`, body); @@ -146,7 +146,7 @@ async function updateExercise(id) { let selectedMuscleGroup = new MuscleGroup(formData.get("muscleGroup")); - let body = {"name": formData.get("name"), + let body = {"name": formData.get("name"), "description": formData.get("description"), "duration": formData.get("duration"), "calories": formData.get("calories"), @@ -167,9 +167,9 @@ async function updateExercise(id) { deleteButton.className += " hide"; cancelButton.className += " hide"; editButton.className = editButton.className.replace(" hide", ""); - + cancelButton.removeEventListener("click", handleCancelButtonDuringEdit); - + oldFormData.delete("name"); oldFormData.delete("description"); oldFormData.delete("duration"); @@ -179,7 +179,35 @@ async function updateExercise(id) { } } +const init = async () => { + let coachContainer = document.getElementById('exercise-content'); + await sendRequest("GET", `${HOST}/api/exercises/`).then(async (val) => { + val.json().then((resp) => { + resp.results.forEach(workout => { + if(workout){ + newOption = document.createElement('option'); + newOption.value = workout.name; + + if (typeof newOption.textContent === 'undefined') + { + newOption.innerText = workout.name; + } + else + { + newOption.textContent = workout.name; + } + + coachContainer.appendChild(newOption); + } + }); + }) + }) + +} + window.addEventListener("DOMContentLoaded", async () => { + await init(); + cancelButton = document.querySelector("#btn-cancel-exercise"); okButton = document.querySelector("#btn-ok-exercise"); deleteButton = document.querySelector("#btn-delete-exercise"); @@ -196,7 +224,7 @@ window.addEventListener("DOMContentLoaded", async () => { editButton.addEventListener("click", handleEditExerciseButtonClick); deleteButton.addEventListener("click", (async (id) => await deleteExercise(id)).bind(undefined, exerciseId)); okButton.addEventListener("click", (async (id) => await updateExercise(id)).bind(undefined, exerciseId)); - } + } //create else { setReadOnly(false, "#form-exercise"); @@ -208,4 +236,4 @@ window.addEventListener("DOMContentLoaded", async () => { okButton.addEventListener("click", async () => await createExercise()); cancelButton.addEventListener("click", handleCancelButtonDuringCreate); } -}); \ No newline at end of file +}); diff --git a/frontend/www/scripts/profile.js b/frontend/www/scripts/profile.js index 6a1a070516c2a2f0fb192b2ab91c00aadbb0c2ac..7e9d390f3f93b37b3c20ba42a560a2a89e2ecea6 100644 --- a/frontend/www/scripts/profile.js +++ b/frontend/www/scripts/profile.js @@ -44,7 +44,6 @@ async function init() { let coachResponse = await sendRequest("GET", `${coach}`); await coachResponse.json().then((val) => { if(val){ - console.log(val); const coachAnchor = coachTemplate.content.firstElementChild.cloneNode(true); const h5 = coachAnchor.querySelector("h5");