From 098f9b2823edfa4f1853d2db21806d49eea7a5cb Mon Sep 17 00:00:00 2001 From: AlexisPoyen <apoyen@grandlyon.com> Date: Fri, 10 Jul 2020 09:12:00 +0200 Subject: [PATCH] Fix : prevent iterating on empty deskRounds --- web/components/vote/desk-round.js | 69 ++++++++++++++++--------------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/web/components/vote/desk-round.js b/web/components/vote/desk-round.js index 38a74b8..9055135 100644 --- a/web/components/vote/desk-round.js +++ b/web/components/vote/desk-round.js @@ -205,46 +205,49 @@ class DeskRoundSelector { let selectRound = document.getElementById("round-select"); if (selectRound.value == 0) { deskRounds = []; - } - let deskRoundsFiltered = []; - let selectArea = document.getElementById("area-select"); - if (selectArea.value != 0) { - let area = await this.AreaModel.getArea(selectArea.value); - for (let i in area.Sections) { + } else { + let deskRoundsFiltered = []; + let selectArea = document.getElementById("area-select"); + if (selectArea.value != 0) { + let area = await this.AreaModel.getArea(selectArea.value); + for (let i in area.Sections) { + for (let deskRound of deskRounds) { + let desk = await deskRoundHandler.DeskModel.getDesk( + deskRound.DeskID + ); + if (desk.SectionID == area.Sections[i].ID) + deskRoundsFiltered.push(deskRound); + } + } + deskRounds = deskRoundsFiltered; + } + deskRoundsFiltered = []; + let selectSection = document.getElementById("section-select"); + if (selectSection.value != 0) { for (let deskRound of deskRounds) { let desk = await deskRoundHandler.DeskModel.getDesk(deskRound.DeskID); - if (desk.SectionID == area.Sections[i].ID) + if (desk.SectionID == deskRoundHandler.SectionID) deskRoundsFiltered.push(deskRound); } + deskRounds = deskRoundsFiltered; } - deskRounds = deskRoundsFiltered; - } - deskRoundsFiltered = []; - let selectSection = document.getElementById("section-select"); - if (selectSection.value != 0) { - for (let deskRound of deskRounds) { + const markup = deskRounds + .map((deskRound) => this.deskRoundTemplate(deskRound)) + .join(""); + document.getElementById("select-desks").innerHTML = markup; + + deskRounds.map(async (deskRound) => { let desk = await deskRoundHandler.DeskModel.getDesk(deskRound.DeskID); - if (desk.SectionID == deskRoundHandler.SectionID) - deskRoundsFiltered.push(deskRound); - } - deskRounds = deskRoundsFiltered; + document.getElementById( + `deskrounds-deskround-desc-${deskRound.ID}` + ).innerHTML = desk.Name; + document + .getElementById(`deskrounds-deskround-${deskRound.ID}`) + .addEventListener("click", async function () { + deskRoundHandler.openVotes(deskRound); + }); + }); } - const markup = deskRounds - .map((deskRound) => this.deskRoundTemplate(deskRound)) - .join(""); - document.getElementById("select-desks").innerHTML = markup; - - deskRounds.map(async (deskRound) => { - let desk = await deskRoundHandler.DeskModel.getDesk(deskRound.DeskID); - document.getElementById( - `deskrounds-deskround-desc-${deskRound.ID}` - ).innerHTML = desk.Name; - document - .getElementById(`deskrounds-deskround-${deskRound.ID}`) - .addEventListener("click", async function () { - deskRoundHandler.openVotes(deskRound); - }); - }); } async openVotes(deskRound) { -- GitLab