From 4344f753c9844c4a902234cd7a03a46be862a799 Mon Sep 17 00:00:00 2001
From: Alexis POYEN <apoyen@grandlyon.com>
Date: Tue, 7 Jul 2020 09:27:07 +0200
Subject: [PATCH] Resolve "Hide useless element"

---
 web/components/management/area.js            |  6 +--
 web/components/management/candidate-lists.js |  8 ++--
 web/components/management/desk.js            |  1 +
 web/components/management/genericElection.js | 10 +++--
 web/components/management/party.js           |  2 +-
 web/components/management/round-desks.js     | 13 +++---
 web/components/management/round.js           | 47 +++++++++++++-------
 web/components/management/section.js         |  5 +--
 8 files changed, 57 insertions(+), 35 deletions(-)

diff --git a/web/components/management/area.js b/web/components/management/area.js
index 220dcd3..60eeb31 100644
--- a/web/components/management/area.js
+++ b/web/components/management/area.js
@@ -124,6 +124,7 @@ class Area {
   }
 
   async displayAreas() {
+    document.getElementById("areas").style.display = "block";
     document.getElementById("area-list").innerHTML = /* HTML */ `<button
       id="area-new"
       class="button large-button is-success"
@@ -168,9 +169,8 @@ class Area {
 
   emptyAreas() {
     this.election = null;
-    document.getElementById("area-title").innerHTML = "Circonscriptions";
-    document.getElementById("area-list").innerHTML =
-      "Veuillez sélectionner une élection";
+    document.getElementById("sections").style.display = "none";
+    document.getElementById("desks").style.display = "none";
   }
 
   areaTemplate(area) {
diff --git a/web/components/management/candidate-lists.js b/web/components/management/candidate-lists.js
index 4ab5d21..3de3f04 100644
--- a/web/components/management/candidate-lists.js
+++ b/web/components/management/candidate-lists.js
@@ -33,15 +33,15 @@ class CandidateList {
     this.CandidateModel.current_user = await Auth.GetUser();
     const mountpoint = where;
     document.getElementById(mountpoint).innerHTML = /* HTML */ `
-      <header class="card-header">
+      <header id="dropdown-candidate-lists" class="card-header clickable">
         <p id="candidate-list-title" class="card-header-title">
           Liste des candidats par circonscription
         </p>
-        <button id="dropdown-candidate-lists" class="button">
-          <span class="icon is-small">
+        <a>
+          <span class="icon is-large">
             <i class="fas fa-caret-down"></i>
           </span>
-        </button>
+        </a>
       </header>
       <div id="candidate-lists-dropdown-content" class="columns card-content">
         <div class="column">
diff --git a/web/components/management/desk.js b/web/components/management/desk.js
index af07485..c268ced 100644
--- a/web/components/management/desk.js
+++ b/web/components/management/desk.js
@@ -121,6 +121,7 @@ class Desk {
   }
 
   async displayDesks() {
+    document.getElementById("desks").style.display = "block";
     document.getElementById("desk-list").innerHTML = /* HTML */ `<button
       id="desk-new"
       class="button large-button is-success"
diff --git a/web/components/management/genericElection.js b/web/components/management/genericElection.js
index a15bd3f..bb65aca 100644
--- a/web/components/management/genericElection.js
+++ b/web/components/management/genericElection.js
@@ -23,13 +23,17 @@ class GenericElection {
           <div id="election" class="card-no-hover"></div>
         </div>
         <div class="column">
-          <div id="areas" class="card-no-hover"></div>
+          <div id="areas" class="card-no-hover" style="display: none ;"></div>
         </div>
         <div class="column">
-          <div id="sections" class="card-no-hover"></div>
+          <div
+            id="sections"
+            class="card-no-hover"
+            style="display: none ;"
+          ></div>
         </div>
         <div class="column">
-          <div id="desks" class="card-no-hover"></div>
+          <div id="desks" class="card-no-hover" style="display: none ;"></div>
         </div>
       </div>
 
diff --git a/web/components/management/party.js b/web/components/management/party.js
index b366615..c104a3f 100644
--- a/web/components/management/party.js
+++ b/web/components/management/party.js
@@ -116,8 +116,8 @@ class Party {
         <div class="content">
           <nav class="level">
             <div class="level-left" style="color:${party.Color}">
-              ${party.Name} &nbsp&nbsp
               <p style="background-color:${party.Color}">Couleur</p>
+              &nbsp&nbsp ${party.Name}
             </div>
             <div class="level-right">
               <a
diff --git a/web/components/management/round-desks.js b/web/components/management/round-desks.js
index d32c75b..b1d4367 100644
--- a/web/components/management/round-desks.js
+++ b/web/components/management/round-desks.js
@@ -30,15 +30,15 @@ class RoundDesk {
     this.SectionModel.current_user = await Auth.GetUser();
     const mountpoint = where;
     document.getElementById(mountpoint).innerHTML = /* HTML */ `
-      <header class="card-header">
+      <header id="dropdown-round-desks" class="card-header clickable">
         <p id="desk-round-title" class="card-header-title">
           Bureaux de votes
         </p>
-        <button id="dropdown-round-desks" class="button">
-          <span class="icon is-small">
+        <a>
+          <span class="icon is-large">
             <i class="fas fa-caret-down"></i>
           </span>
-        </button>
+        </a>
       </header>
       <div id="desk-rounds-dropdown-content" class="columns card-content">
         <div class="column">
@@ -112,7 +112,10 @@ class RoundDesk {
 
   deskRoundTemplate(deskRound) {
     return /* HTML */ `<div class="card card-list">
-      <div id="deskrounds-deskround-${deskRound.ID}" class="card-content clickable">
+      <div
+        id="deskrounds-deskround-${deskRound.ID}"
+        class="card-content clickable"
+      >
         <div class="content">
           <nav class="level">
             <div
diff --git a/web/components/management/round.js b/web/components/management/round.js
index 2b6f7a5..6f7c3a1 100644
--- a/web/components/management/round.js
+++ b/web/components/management/round.js
@@ -54,24 +54,39 @@ class Round {
     let dropdownCandidateList = document.getElementById(
       "dropdown-candidate-lists"
     );
-    dropdownRoundDesks.addEventListener("click", function () {
-      document.getElementById("desk-rounds-dropdown-content").style.display =
-        "flex";
-      document.getElementById("round-desks").style.height = "70vh";
-      document.getElementById(
-        "candidate-lists-dropdown-content"
-      ).style.display = "none";
-      document.getElementById("candidate-lists").style.height = "auto";
+
+    dropdownRoundDesks.addEventListener("click", () => {
+      if (document.getElementById("round-desks").style.height == "auto") {
+        this.hideCandidateLists();
+      } else {
+        this.hideDesks();
+      }
     });
 
-    dropdownCandidateList.addEventListener("click", function () {
-      document.getElementById("desk-rounds-dropdown-content").style.display =
-        "none";
-      document.getElementById("round-desks").style.height = "auto";
-      document.getElementById(
-        "candidate-lists-dropdown-content"
-      ).style.display = "flex";
-      document.getElementById("candidate-lists").style.height = "70vh";
+    dropdownCandidateList.addEventListener("click", () => {
+      if (document.getElementById("round-desks").style.height == "auto") {
+        this.hideCandidateLists();
+      } else {
+        this.hideDesks();
+      }
     });
   }
+
+  hideDesks() {
+    document.getElementById("desk-rounds-dropdown-content").style.display =
+      "none";
+    document.getElementById("round-desks").style.height = "auto";
+    document.getElementById("candidate-lists-dropdown-content").style.display =
+      "flex";
+    document.getElementById("candidate-lists").style.height = "70vh";
+  }
+
+  hideCandidateLists() {
+    document.getElementById("desk-rounds-dropdown-content").style.display =
+      "flex";
+    document.getElementById("round-desks").style.height = "70vh";
+    document.getElementById("candidate-lists-dropdown-content").style.display =
+      "none";
+    document.getElementById("candidate-lists").style.height = "auto";
+  }
 }
diff --git a/web/components/management/section.js b/web/components/management/section.js
index 653664c..a262d7d 100644
--- a/web/components/management/section.js
+++ b/web/components/management/section.js
@@ -126,6 +126,7 @@ class Section {
   }
 
   async displaySections() {
+    document.getElementById("sections").style.display = "block";
     document.getElementById("section-list").innerHTML = /* HTML */ `<button
       id="section-new"
       class="button large-button is-success"
@@ -175,9 +176,7 @@ class Section {
 
   emptySections() {
     this.area = null;
-    document.getElementById("section-title").innerHTML = "Sections";
-    document.getElementById("section-list").innerHTML =
-      "Veuillez sélectionner une circonscription";
+    document.getElementById("desks").style.display = "none";
   }
 
   sectionTemplate(section) {
-- 
GitLab