diff --git a/frontend/www/scripts/diet.js b/frontend/www/scripts/diet.js index 268dfcd02f5bbf2bbab22c301143f3c1d44dacb1..e08460c646a94481de97d17302209ef4031169ba 100644 --- a/frontend/www/scripts/diet.js +++ b/frontend/www/scripts/diet.js @@ -47,39 +47,42 @@ async function retrieveDiet(id) { let mealtypeTypeResponse = await sendRequest("GET", `${HOST}/api/mealtypes/`); let mealtypeTypes = await mealtypeTypeResponse.json(); - //TODO: This should be in its own method. - for (let i = 0; i < dietData.mealtype_instances.length; i++) { - let templateMealtype = document.querySelector("#template-mealtype"); - let divMealtypeContainer = templateMealtype.content.firstElementChild.cloneNode(true); - - let mealtypeTypeLabel = divMealtypeContainer.querySelector('.mealtype-type'); - mealtypeTypeLabel.for = `inputMealtypeType${i}`; - - let mealtypeTypeSelect = divMealtypeContainer.querySelector("select"); - mealtypeTypeSelect.id = `inputMealtypeType${i}`; - mealtypeTypeSelect.disabled = true; - - let splitUrl = dietData.mealtype_instances[i].mealtype.split("/"); - let currentMealtypeTypeId = splitUrl[splitUrl.length - 2]; - let currentMealtypeType = ""; - - for (let j = 0; j < mealtypeTypes.count; j++) { - let option = document.createElement("option"); - option.value = mealtypeTypes.results[j].id; - if (currentMealtypeTypeId == mealtypeTypes.results[j].id) { - currentMealtypeType = mealtypeTypes.results[j]; - } - option.innerText = mealtypeTypes.results[j].name; - mealtypeTypeSelect.append(option); - } + addMealtypeOptions(mealtypeTypes); + + return dietData; +} + +function addMealtypeOptions(mealtypeTypes) { + for (let i = 0; i < dietData.mealtype_instances.length; i++) { + let templateMealtype = document.querySelector("#template-mealtype"); + let divMealtypeContainer = templateMealtype.content.firstElementChild.cloneNode(true); + + let mealtypeTypeLabel = divMealtypeContainer.querySelector('.mealtype-type'); + mealtypeTypeLabel.for = `inputMealtypeType${i}`; - mealtypeTypeSelect.value = currentMealtypeType.id; + let mealtypeTypeSelect = divMealtypeContainer.querySelector("select"); + mealtypeTypeSelect.id = `inputMealtypeType${i}`; + mealtypeTypeSelect.disabled = true; - let mealtypesDiv = document.querySelector("#div-mealtypes"); - mealtypesDiv.appendChild(divMealtypeContainer); + let splitUrl = dietData.mealtype_instances[i].mealtype.split("/"); + let currentMealtypeTypeId = splitUrl[splitUrl.length - 2]; + let currentMealtypeType = ""; + + for (let j = 0; j < mealtypeTypes.count; j++) { + let option = document.createElement("option"); + option.value = mealtypeTypes.results[j].id; + if (currentMealtypeTypeId == mealtypeTypes.results[j].id) { + currentMealtypeType = mealtypeTypes.results[j]; + } + option.innerText = mealtypeTypes.results[j].name; + mealtypeTypeSelect.append(option); } + + mealtypeTypeSelect.value = currentMealtypeType.id; + + let mealtypesDiv = document.querySelector("#div-mealtypes"); + mealtypesDiv.appendChild(divMealtypeContainer); } - return dietData; } function handleCancelDuringDietEdit() {