From 10a2dd8358bdb9abee8c0998fd6772ea56fbbcc1 Mon Sep 17 00:00:00 2001
From: Alexandre Bourlier <alexandre@happy-dev.fr>
Date: Sun, 13 May 2018 18:31:52 +0200
Subject: [PATCH] Bootstrap modal steals focus and so can't be used as the
 search view. Had to implement my own.

---
 src/html/dependencies-dev.php  |  2 +-
 src/html/dependencies-prod.php |  2 +-
 src/html/menu.html             |  4 ++--
 src/html/search.html           |  8 +++-----
 src/js/hd-app.js               | 14 +++++++++-----
 src/scss/_menu.scss            | 12 +++++++++---
 src/scss/_search.scss          | 23 +++++++++++++----------
 src/scss/_variables.scss       |  2 +-
 8 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/src/html/dependencies-dev.php b/src/html/dependencies-dev.php
index 9de2adab..88c48cca 100644
--- a/src/html/dependencies-dev.php
+++ b/src/html/dependencies-dev.php
@@ -7,7 +7,7 @@
     <script type="text/javascript" src="<?php echo $dn; ?>/node_modules/jquery/dist/jquery.min.js"></script>
     <script type="text/javascript" src="<?php echo $dn; ?>/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
     <script type="text/javascript" src="<?php echo $dn; ?>/dist/lib/webcomponentsjs/webcomponents-loader.js"></script>
-    <script type="text/javascript" src="<?php echo $dn; ?>/src/js/hd-app.js"></script>
+    <script type="text/javascript" src="<?php echo $dn; ?>/src/js/hd-app.js?v=<?php echo $v ?>"></script>
 
     <!-- Web components -->
     <link rel="import" href="<?php echo $dn; ?>/dist/lib/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
diff --git a/src/html/dependencies-prod.php b/src/html/dependencies-prod.php
index 63d7b62c..adfcc21f 100644
--- a/src/html/dependencies-prod.php
+++ b/src/html/dependencies-prod.php
@@ -8,7 +8,7 @@
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.2.0/webcomponents-loader.js" integrity="sha256-fUVqCtpScUF69qkFkeuHmcShr2N2UleRQJhRG4etHds=" crossorigin="anonymous"></script>
-    <script type="text/javascript" src="<?php echo $dn; ?>/dist/js/hd-app.js"></script>
+    <script type="text/javascript" src="<?php echo $dn; ?>/dist/js/hd-app.js?v=<?php echo $v ?>"></script>
 
     <!-- Web components -->
     <link rel="import" href="https://cdn.happy-dev.fr/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
diff --git a/src/html/menu.html b/src/html/menu.html
index 73e1c0de..91570b1a 100644
--- a/src/html/menu.html
+++ b/src/html/menu.html
@@ -5,7 +5,7 @@
       HAPPY DEV
     </ldp-route>
 
-    <div id="menu-items" class="col-7 col-md-10">
+    <div id="menu-items" class="col-7 col-md-7">
       <ldp-route class="nav-item pb-2 active align-self-stretch text-center text-md-left" name="members">
         <i class="fa fa-users" aria-hidden="true"></i>
         <span class="d-none d-md-inline"> Membres</span>
@@ -36,6 +36,6 @@
 
   <div id="search-bar">
     <input id="search-input" class="form-control" type="search" placeholder="ctrl + k"/>
-    <i id="search-icon" class="fa fa-search" aria-hidden="true" data-toggle="modal" data-target="#search-view"></i>
+    <i id="search-icon" class="fa fa-search" aria-hidden="true"></i>
   </div>
 </nav>
diff --git a/src/html/search.html b/src/html/search.html
index f1d281cc..2703e17e 100644
--- a/src/html/search.html
+++ b/src/html/search.html
@@ -1,7 +1,5 @@
-<div class="modal fade" id="search-view" tabindex="-1" role="dialog" aria-labelledby="Search results" aria-hidden="true">
-  <div class="modal-dialog" role="document">
-    <div class="modal-content">
-      Search results here
-    </div>
+<div id="search-view">
+  <div class="content">
+    Search results here
   </div>
 </div>
diff --git a/src/js/hd-app.js b/src/js/hd-app.js
index 4309585e..d58e4739 100644
--- a/src/js/hd-app.js
+++ b/src/js/hd-app.js
@@ -1,7 +1,8 @@
 document.addEventListener("DOMContentLoaded", function(event) {
   // Constants declaration
-  const navBar    = document.querySelector("#navbar");
-  const searchBar = navBar.querySelector("#search-bar");
+  const navBar      = document.querySelector("#navbar");
+  const searchBar   = navBar.querySelector("#search-bar");
+  const searchView  = document.querySelector("#search-view");
 
 
   // Shortcuts
@@ -18,9 +19,12 @@ document.addEventListener("DOMContentLoaded", function(event) {
   });
 
 
-  // Toggle the search bar via touch / click
-  searchBar.querySelector("#search-icon").addEventListener("click", function(e) {
+  // Open the search bar via touch / click
+  searchBar.querySelector("#search-icon").addEventListener("click", openSearchBar);
+
+  function openSearchBar(e) {
     navBar.classList.add("search-mode");
     searchBar.querySelector("#search-input").focus();
-  });
+    searchView.classList.add("search-mode");
+  }
 });
diff --git a/src/scss/_menu.scss b/src/scss/_menu.scss
index fb5a5bea..8ad5a542 100644
--- a/src/scss/_menu.scss
+++ b/src/scss/_menu.scss
@@ -12,7 +12,7 @@
       font-family:  bebas;
       color:        $hd-color;
       font-size:    $menu-font-size;
-      text-align:   center;
+      text-align:   left;
       padding:      0px;
     }
 
@@ -66,10 +66,16 @@
     i {
       position:         relative;
       z-index:          9999;
-      padding-top:      7px;
-      color:            $twitter-color;
       padding:          10px;
+      padding-top:      9px;
+      padding-bottom:   11px;
+      color:            $twitter-color;
       border-radius:    0 0.25rem 0.25rem 0;
+      cursor:           pointer;
+
+      &:hover {
+        color:  $hd-color;
+      }
     }
   }
 
diff --git a/src/scss/_search.scss b/src/scss/_search.scss
index f9e940af..f8f52d7c 100644
--- a/src/scss/_search.scss
+++ b/src/scss/_search.scss
@@ -1,12 +1,15 @@
-.modal-dialog {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-}
+#search-view {
+  position:           absolute;
+  top:                0px;
+  bottom:             0px;
+  left:               0px;
+  right:              0px;
+  z-index:            8888;
+  display:            none;
+  padding-top:        $menu-height;
+  background-color:   white;
 
-.modal-content {
-  height: auto;
-  min-height: 100%;
-  border-radius: 0;
+  &.search-mode {
+    display:  block;
+  }
 }
diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss
index d18c79c8..b82659d2 100644
--- a/src/scss/_variables.scss
+++ b/src/scss/_variables.scss
@@ -3,7 +3,7 @@ $hd-color-faded: rgba(253, 200, 21, 0.8);
 $twitter-color: #1DA1F2;
 
 $menu-height:           46px;
-$menu-font-size:        17px;
+$menu-font-size:        16px;
 $vertical-menu-width:   50px;
 $sm-with:               576px;
 $md-with:               768px;
-- 
GitLab