From e1ce07e22a04145c165c66aed966349d965ef773 Mon Sep 17 00:00:00 2001 From: Alexis POYEN <punkylibre@localhost.localdomain> Date: Wed, 17 Jun 2020 09:59:59 +0200 Subject: [PATCH] Feat : display votes captured --- web/components/vote/votes.js | 90 +++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/web/components/vote/votes.js b/web/components/vote/votes.js index e5e957f..3847e8e 100644 --- a/web/components/vote/votes.js +++ b/web/components/vote/votes.js @@ -6,6 +6,8 @@ import * as AreaModel from "/services/model/area-model.js"; import * as SectionModel from "/services/model/section-model.js"; import * as DeskModel from "/services/model/desk-model.js"; import * as DeskRoundModel from "/services/model/deskRound-model.js"; +import * as VoteModel from "/services/model/vote-model.js"; +import * as CandidateListModel from "/services/model/candidateList-model.js"; export async function mount(parent) { const voteComponent = new Vote(parent); @@ -22,6 +24,8 @@ class Vote { this.SectionModel = SectionModel.getSectionModel(); this.DeskModel = DeskModel.getDeskModel(); this.DeskRoundModel = DeskRoundModel.getDeskRoundModel(); + this.VoteModel = VoteModel.getVoteModel(); + this.CandidateListModel = CandidateListModel.getCandidateListModel(); } async displayVotes(RoundID, AreaID, DeskRoundID) { @@ -31,6 +35,8 @@ class Vote { this.SectionModel.current_user = await Auth.GetUser(); this.DeskModel.current_user = await Auth.GetUser(); this.DeskRoundModel.current_user = await Auth.GetUser(); + this.VoteModel.current_user = await Auth.GetUser(); + this.CandidateListModel.current_user = await Auth.GetUser(); this.RoundID = RoundID; this.AreaID = AreaID; @@ -44,7 +50,7 @@ class Vote { </nav> </p> </header> - <div id="votes-tables" class="card-content"></div> + <div id="votes-table" class="card-content"></div> <nav class="level"> <div class="level-left"></div> <div class="level-right"> @@ -63,9 +69,28 @@ class Vote { this.handleDom(); await this.refreshBreadCrumb(); + await this.loadVotes(); + } + + voteTemplate(candidateList) { + return /* HTML */ ` + <tr id="votes-vote-${candidateList.ID}"> + <td> + ${candidateList.Name} + </td> + <td> + <input + class="input" + type="number" + id="${candidateList.ID}-vote-voice" + /> + </td> + </tr> + `; } handleDom() {} + async refreshBreadCrumb() { let round = await this.RoundModel.getRound(this.RoundID); let election = await this.ElectionModel.getElection(round.ElectionID); @@ -96,4 +121,67 @@ class Vote { el.innerHTML = "<a>" + desk.Name + "</a>"; breadcrumb.appendChild(el); } + + async loadVotes() { + document.getElementById("votes-table").innerHTML = /* HTML */ `<div + class="table-container" + > + <table class="table is-bordered is-narrow is-hoverable is-fullwidth"> + <thead> + <tr class="is-selected"> + <th>Liste</th> + <th>Nombre de voix</th> + </tr> + </thead> + <tbody id="votes-list"></tbody> + </table> + </div> `; + + let voteHandler = this; + let votes = await this.VoteModel.getVotes(); + votes = votes.filter((vote) => { + return vote.DeskRoundID == voteHandler.DeskRoundID; + }); + console.log(votes); + let candidateLists = await this.CandidateListModel.getCandidateLists(); + candidateLists = candidateLists.filter((candidateList) => { + return candidateList.AreaID == voteHandler.AreaID; + }); + + const markup = candidateLists + .map((vote) => this.voteTemplate(vote)) + .join(""); + document.getElementById("votes-list").innerHTML = markup; + document.getElementById("votes-list").innerHTML += /* HTML */ ` + <tr"> + <td>Votes blanc</td> + <td> + <input + class="input" + type="number" + id="blank-vote-voice" + /> + </td> + </tr> + `; + document.getElementById("votes-list").innerHTML += /* HTML */ ` + <tr> + <td>Votes nul</td> + <td> + <input class="input" type="number" id="null-vote-voice" /> + </td> + </tr> + `; + + votes.forEach((vote) => { + if (vote.Blank) { + document.getElementById("blank-vote-voice").value = vote.VoiceNumber; + } else if (vote.NullVote) { + document.getElementById("null-vote-voice").value = vote.VoiceNumber; + } else { + document.getElementById(vote.CandidateListID + "-vote-voice").value = + vote.VoiceNumber; + } + }); + } } -- GitLab