diff --git a/frontend/www/scripts/exercise.js b/frontend/www/scripts/exercise.js index 7671d258a6282fe41a4b32d82e9fd0fb7adbcbcc..2ea49bb0e62f7728677d371123d2890410d6120b 100644 --- a/frontend/www/scripts/exercise.js +++ b/frontend/www/scripts/exercise.js @@ -11,7 +11,8 @@ const CALORIES = "calories"; const MUSCLE_GROUP = "muscleGroup"; const UNIT = "unit"; -const validTypes = ["Legs", "Chest", "Back", "Arms", "Abdomen", "Shoulders"]; + this.type = this.validTypes.includes(type) ? type : undefined; + } const deleteFormData = () => { oldFormData.delete(NAME); @@ -22,6 +23,19 @@ const deleteFormData = () => { oldFormData.delete(UNIT); } + } + + getMuscleGroupType = () => { + return this.type; + } +} + +const NAME = "name"; +const DESCRIPTION = "description"; +const DURATION = "duration"; +const CALORIES = "calories"; +const MUSCLEGROUP = "muscleGroup"; +const UNIT = "unit"; function handleCancelButtonDuringEdit() { setReadOnly(true, "#form-exercise"); document.querySelector("select").setAttribute("disabled", "") @@ -42,6 +56,13 @@ function handleCancelButtonDuringEdit() { deleteFormData(); +function deleteFormData() { + oldFormData.delete(NAME); + oldFormData.delete(DESCRIPTION); + oldFormData.delete(DURATION); + oldFormData.delete(CALORIES); + oldFormData.delete(MUSCLEGROUP); + oldFormData.delete(UNIT); } function handleCancelButtonDuringCreate() { @@ -114,7 +135,7 @@ async function retrieveExercise(id) { const formData = new FormData(form); for (const key of formData.keys()) { - const selector = key !== "muscleGroup" ? `input[name="${key}"], textarea[name="${key}"]` : `select[name=${key}]` + const selector = key !== MUSCLEGROUP ? `input[name="${key}"], textarea[name="${key}"]` : `select[name=${key}]` const input = form.querySelector(selector); const newVal = exerciseData[key]; input.value = newVal; @@ -122,10 +143,6 @@ async function retrieveExercise(id) { document.querySelector("select").setAttribute("disabled", "") } -const getMuscleGroupType = (type) => { - return validTypes.includes(type) ? type : undefined; -} - async function updateExercise(id) { const form = document.querySelector("#form-exercise"); const formData = new FormData(form); @@ -148,14 +165,12 @@ async function updateExercise(id) { return; } muscleGroupSelector.setAttribute("disabled", "") - // duplicate code from handleCancelButtonDuringEdit - // you should refactor this setReadOnly(true, "#form-exercise"); okButton.className += " hide"; deleteButton.className += " hide"; cancelButton.className += " hide"; editButton.className = editButton.className.replace(" hide", ""); - + cancelButton.removeEventListener("click", handleCancelButtonDuringEdit); deleteFormData(); @@ -179,7 +194,7 @@ window.addEventListener("DOMContentLoaded", async () => { deleteButton.addEventListener("click", (async (id) => deleteExercise(id)).bind(undefined, exerciseId)); okButton.addEventListener("click", (async (id) => updateExercise(id)).bind(undefined, exerciseId)); return; - } + } //create setReadOnly(false, "#form-exercise"); @@ -189,4 +204,4 @@ window.addEventListener("DOMContentLoaded", async () => { okButton.addEventListener("click", async () => createExercise()); cancelButton.addEventListener("click", handleCancelButtonDuringCreate); -}); +}); \ No newline at end of file