From dab084f4b1deb30d858a20bad0f66c65aefcc05f Mon Sep 17 00:00:00 2001 From: Alexis POYEN <apoyen@grandlyon.com> Date: Mon, 6 Jul 2020 10:55:06 +0200 Subject: [PATCH] Resolve "Number of votes" --- .../visualization/results-general.js | 13 ++++-- .../visualization/results-section.js | 12 ----- web/components/visualization/results-zone.js | 8 ++-- web/components/vote/votes.js | 45 ++++++++++--------- web/services/common/common.js | 14 +++++- 5 files changed, 50 insertions(+), 42 deletions(-) diff --git a/web/components/visualization/results-general.js b/web/components/visualization/results-general.js index 84348c7..3a99b68 100644 --- a/web/components/visualization/results-general.js +++ b/web/components/visualization/results-general.js @@ -3,6 +3,7 @@ import * as Auth from "/services/auth/auth.js"; import * as PartyModel from "/services/model/party-model.js"; import * as CandidateListModel from "/services/model/candidateList-model.js"; import * as AreaModel from "/services/model/area-model.js"; +import * as Common from "/services/common/common.js"; export async function mount(where, parent) { const resultGeneralComponent = new ResultGeneralComponent(parent); @@ -73,28 +74,32 @@ class ResultGeneralComponent { electeds ); } + this.displayRoundDetailedResults(); } else { if (this.parent.results.status == "no_results") { document.getElementById( "round-results" - ).innerHTML = this.parent.showWarningResults( + ).innerHTML = Common.warningMessage( + "Pas de résultats", "Aucun résultats n'ont étaient saisis sur cette zone" ); } else if (this.parent.results.status == "incompleted") { document.getElementById( "round-results" - ).innerHTML = this.parent.showWarningResults( + ).innerHTML = Common.warningMessage( + "Pas complets", "Les résultats pour cette zone ne sont pas complets" ); } else if (this.parent.results.status == "not validated") { document.getElementById( "round-results" - ).innerHTML = this.parent.showWarningResults( + ).innerHTML = Common.warningMessage( + "Non validé", "Les résultats pour cette zone n'ont pas étaient validés" ); } + document.getElementById("round-detaileds-results").innerHTML = ""; } - this.displayRoundDetailedResults(); } async displayRoundDetailedResults() { diff --git a/web/components/visualization/results-section.js b/web/components/visualization/results-section.js index 9327497..c01de45 100644 --- a/web/components/visualization/results-section.js +++ b/web/components/visualization/results-section.js @@ -87,18 +87,6 @@ class ResultComponent { </div>`; } - showWarningResults(text) { - return /* HTML */ `<br /> - <article class="message is-warning"> - <div class="message-header"> - <p>Warning</p> - </div> - <div class="message-body"> - ${text} - </div> - </article>`; - } - handleDom() { let resultHandler = this; document diff --git a/web/components/visualization/results-zone.js b/web/components/visualization/results-zone.js index 254f0b5..53780d5 100644 --- a/web/components/visualization/results-zone.js +++ b/web/components/visualization/results-zone.js @@ -1,10 +1,10 @@ // Imports import * as Auth from "/services/auth/auth.js"; -import * as results from "/services/election/calculate-election-generic.js"; import * as PartyModel from "/services/model/party-model.js"; import * as CandidateListModel from "/services/model/candidateList-model.js"; import * as AreaModel from "/services/model/area-model.js"; import * as Scroller from "/services/common/scroller.js"; +import * as Common from "/services/common/common.js"; export async function mount(where, parent) { const resultZoneComponent = new ResultZoneComponent(parent); @@ -348,19 +348,19 @@ class ResultZoneComponent { if (zone.status == "no_results") { document.getElementById( "zone-results" - ).innerHTML = this.parent.showWarningResults( + ).innerHTML = Common.warningMessage("Pas de résultats", "Aucun résultats n'ont étaient saisis sur cette zone" ); } else if (zone.status == "incompleted") { document.getElementById( "zone-results" - ).innerHTML = this.parent.showWarningResults( + ).innerHTML = Common.warningMessage("Pas complets", "Les résultats pour cette zone ne sont pas complets" ); } else if (zone.status == "not validated") { document.getElementById( "zone-results" - ).innerHTML = this.parent.showWarningResults( + ).innerHTML = Common.warningMessage("Non validé", "Les résultats pour cette zone n'ont pas étaient validés" ); } diff --git a/web/components/vote/votes.js b/web/components/vote/votes.js index 73ac057..f7d1623 100644 --- a/web/components/vote/votes.js +++ b/web/components/vote/votes.js @@ -8,6 +8,7 @@ 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"; +import * as Common from "/services/common/common.js"; export async function mount(parent) { const voteComponent = new Vote(parent); @@ -52,7 +53,8 @@ class Vote { </header> <div id="votes-table"></div> <nav class="level"> - <div class="level-left" id="votes-stats"></div> + <div class="level-left" id="votes-stats" style="margin: auto; + width: 100%;"></div> <div class="level-right"> <button id="votes-return" class="button level-item"> Retour @@ -74,18 +76,12 @@ class Vote { await this.refreshBreadCrumb(); await this.loadVotes(); - let deskRound = await this.DeskRoundModel.getDeskRound(this.DeskRoundID); - if (deskRound.Validated) { - document.getElementById("votes-table").innerHTML = /* HTML */ `<article - class="message is-warning" - > - <div class="message-header"> - <p>Votes validés</p> - </div> - <div class="message-body"> - Les votes ont étaient validés et ne peuvent plus être modifiés - </div> - </article>`; + this.deskRound = await this.DeskRoundModel.getDeskRound(this.DeskRoundID); + if (this.deskRound.Validated) { + document.getElementById("votes-table").innerHTML = Common.warningMessage( + "Votes validés", + "Les votes ont étaient validés et ne peuvent plus être modifiés" + ); document.getElementById("votes-stats").innerHTML = ""; document.getElementById(`votes-cancel`).setAttribute("disabled", "true"); document.getElementById(`votes-save`).setAttribute("disabled", "true"); @@ -139,8 +135,8 @@ class Vote { let election = await this.ElectionModel.getElection(round.ElectionID); let area = await this.AreaModel.getArea(this.AreaID); let deskRound = await this.DeskRoundModel.getDeskRound(this.DeskRoundID); - let desk = await this.DeskModel.getDesk(deskRound.DeskID); - let section = await this.SectionModel.getSection(desk.SectionID); + this.desk = await this.DeskModel.getDesk(deskRound.DeskID); + let section = await this.SectionModel.getSection(this.desk.SectionID); let breadcrumb = document.getElementById("vote-breadcrumb"); let el = document.createElement("li"); @@ -161,7 +157,7 @@ class Vote { el.innerHTML = "<a>" + section.Name + "</a>"; breadcrumb.appendChild(el); el = document.createElement("li"); - el.innerHTML = "<a>" + desk.Name + "</a>"; + el.innerHTML = "<a>" + this.desk.Name + "</a>"; breadcrumb.appendChild(el); } @@ -222,11 +218,18 @@ class Vote { vote.VoiceNumber; } }); - document.getElementById("votes-stats").innerHTML = - "Suffrages total : " + - totalVotes + - ", Suffrages exprimés : " + - votesExpressed; + if (this.desk.Subscribed < totalVotes) { + document.getElementById("votes-stats").innerHTML = Common.warningMessage( + "Erreur de saisie", + "Il y a plus de votes saisis que d'inscrits sur le bureau de vote." + ); + } else { + document.getElementById("votes-stats").innerHTML = + "Suffrages total : " + + totalVotes + + ", Suffrages exprimés : " + + votesExpressed; + } } async saveVotes() { diff --git a/web/services/common/common.js b/web/services/common/common.js index 658c53b..bd32659 100644 --- a/web/services/common/common.js +++ b/web/services/common/common.js @@ -14,7 +14,8 @@ export let GID = (obj, id) => { export function RandomString(length) { let text = ""; - const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + const possible = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (let i = 0; i < length; i++) { text += possible.charAt(Math.floor(Math.random() * possible.length)); } @@ -35,3 +36,14 @@ export function toggleModal(modalID, cardID) { AnimateCSS(card, "zoomIn"); } } +export function warningMessage(title, text) { + return /* HTML */ `<br /> + <article class="message is-warning"> + <div class="message-header"> + <p>${title}</p> + </div> + <div class="message-body"> + ${text} + </div> + </article>`; +} -- GitLab