diff --git a/web/components/vote/desk-round.js b/web/components/vote/desk-round.js index e37ac2ef81d19397f5082089d9d088d5280cb556..aeaeb0a2d24c7b2e460c909b52ae73f0b0790e84 100644 --- a/web/components/vote/desk-round.js +++ b/web/components/vote/desk-round.js @@ -67,6 +67,14 @@ class DeskRoundSelector { </select> </div> </div> + <div class="field"> + <label>Section</label><br /> + <div class="control select"> + <select name="section-select" id="section-select"> + <option>Veuillez sélectionner une section</option> + </select> + </div> + </div> </div> </div> <div class="column"> @@ -106,6 +114,9 @@ class DeskRoundSelector { deskRoundHandler.loadAreas(event.target.value); } if (event.target.id === "area-select") { + deskRoundHandler.loadSections(event.target.value); + } + if (event.target.id === "section-select") { deskRoundHandler.loadDesks(event.target.value); } }, @@ -178,12 +189,34 @@ class DeskRoundSelector { selectArea.appendChild(el); }); - this.loadDesks(areas[0].ID); + this.loadSections(areas[0].ID); } - async loadDesks(AreaID) { + async loadSections(AreaID) { this.AreaID = AreaID; let deskRoundHandler = this; + let selectSection = document.getElementById("section-select"); + let sections = await this.SectionModel.getSections(); + sections = sections.filter((section) => { + return section.AreaID == deskRoundHandler.AreaID; + }); + + for (let i = selectSection.options.length - 1; i >= 0; i--) { + selectSection.remove(i); + } + sections.forEach((section) => { + let el = document.createElement("option"); + el.textContent = section.Name; + el.value = section.ID; + selectSection.appendChild(el); + }); + + this.loadDesks(sections[0].ID); + } + + async loadDesks(SectionID) { + this.SectionID = SectionID; + let deskRoundHandler = this; let deskRounds = await this.DeskRoundModel.getDeskRounds(); deskRounds = deskRounds.filter((deskRound) => { return deskRound.RoundID == deskRoundHandler.RoundID; @@ -191,10 +224,7 @@ class DeskRoundSelector { let deskRoundsFiltered = []; for (let deskRound of deskRounds) { let desk = await deskRoundHandler.DeskModel.getDesk(deskRound.DeskID); - let section = await deskRoundHandler.SectionModel.getSection( - desk.SectionID - ); - if (section.AreaID == deskRoundHandler.AreaID) + if (desk.SectionID == deskRoundHandler.SectionID) deskRoundsFiltered.push(deskRound); } deskRounds = deskRoundsFiltered;