diff --git a/frontend/www/scripts/myathletes.js b/frontend/www/scripts/myathletes.js index e3c24bc13beb5481dd7bb29534f065a34df4e8e3..c59b38f27e5e3ae8f4083d7a2abd270b27793f5d 100644 --- a/frontend/www/scripts/myathletes.js +++ b/frontend/www/scripts/myathletes.js @@ -53,7 +53,7 @@ function createFilledRow(templateFilledAthlete, inputValue, controls, disabled) async function getDietInstances() { let response = await sendRequest("GET", `${HOST}/api/diet-instances/`); - return await response.json(); + return response.json(); } function createDiet(templateFile, name) { @@ -63,7 +63,32 @@ function createDiet(templateFile, name) { return aDiet; } - +async function createDietFiles(dietInstances, templateDiet) { + for (let diet of dietInstances.results) { + let dietURL = diet.diet + let userURL = diet.user; + let dietRes = await sendRequest("GET", `${dietURL}`); + let userRes = await sendRequest("GET", `${userURL}`); + let dietData = await dietRes.json(); + let userData = await userRes.json(); + + if (userData.id === athlete.id) { + assignBtn.disabled = true; + + let deleteBtn = selectionClone.querySelector("#delete-diet-button"); + deleteBtn.id = `diet-delete-button-${athlete.username}`; + deleteBtn.addEventListener("click", async () => { + deleteDietInstance(diet); + }); + + tabPanel.append(deleteBtn); + + let tabP = tabPanel.querySelector("#dietfile"); + let aDiet = createDiet(templateDiet, dietData.name); + tabP.appendChild(aDiet); + } + } +} async function displayFiles() { let user = await getCurrentUser(); @@ -118,30 +143,9 @@ async function displayFiles() { tabPanel.prepend(assignBtn); tabPanel.prepend(dietSelection); - for (let diet of dietInstances.results) { - let dietURL = diet.diet - let userURL = diet.user; - let dietRes = await sendRequest("GET", `${dietURL}`); - let userRes = await sendRequest("GET", `${userURL}`); - let dietData = await dietRes.json(); - let userData = await userRes.json(); - - if (userData.id === athlete.id) { - assignBtn.disabled = true; - - let deleteBtn = selectionClone.querySelector("#delete-diet-button"); - deleteBtn.id = `diet-delete-button-${athlete.username}`; - deleteBtn.addEventListener("click", async () => { - deleteDietInstance(diet); - }); - - tabPanel.append(deleteBtn); + createDietFiles(dietInstances, templateDiet); - let tabP = tabPanel.querySelector("#dietfile"); - let aDiet = createDiet(templateDiet, dietData.name); - tabP.appendChild(aDiet); - } - } + } @@ -301,14 +305,8 @@ async function submitRoster() { body.athletes.push(athlete.id); } else { // create offer - let offerBody = { 'status': 'p', 'recipient': athlete.url }; - let offerResponse = await sendRequest("POST", `${HOST}/api/offers/`, offerBody); - if (!offerResponse.ok) { - let data = await response.json(); - let alert = createAlert("Could not create offer!", data); - document.body.prepend(alert); + await createOffer(athlete) } - } } else { let data = await response.json(); let alert = createAlert(`Could not retrieve user ${rosterInput.value}!`, data); @@ -320,6 +318,16 @@ async function submitRoster() { location.reload(); } +async function createOffer(athlete) { + let offerBody = { 'status': 'p', 'recipient': athlete.url }; + let offerResponse = await sendRequest("POST", `${HOST}/api/offers/`, offerBody); + if (!offerResponse.ok) { + let data = await offerResponse.json(); + let alert = createAlert("Could not create offer!", data); + document.body.prepend(alert); + } +} + async function uploadFiles(event, athlete) { let form = event.currentTarget.parentElement; let inputFormData = new FormData(form);