From 859bca148b2b8d7628068e41936f1b77af9b33d2 Mon Sep 17 00:00:00 2001
From: Marc Vachon <vachon.marc@outlook.com>
Date: Wed, 7 Aug 2019 19:07:31 +0200
Subject: [PATCH] aller

---
 webapp/class/appointement/hash/hash.js        | 29 ++++++++++++++++
 webapp/class/db/db_request.js                 | 10 ++++++
 webapp/class/email/email.js                   |  7 ++++
 webapp/class/meetus.js                        | 14 +++++---
 webapp/package.json                           |  8 +++--
 webapp/ressources/router.js                   |  2 +-
 webapp/ressources/socket.js                   |  4 ++-
 webapp/views/create-meeting.ejs               |  2 +-
 webapp/views/elements/foot.inc.ejs            |  2 +-
 .../elements/{nav.inc.html => nav.inc.ejs}    | 34 +++++++++++--------
 webapp/views/index.ejs                        | 17 +++++-----
 webapp/views/meeting.ejs                      |  2 +-
 webapp/views/style/navbar.scss                |  7 ++--
 webapp/views/style/style.css                  | 19 +++--------
 webapp/views/style/style.css.map              |  2 +-
 webapp/views/style/style.scss                 |  7 ----
 webapp/views/style/vars.scss                  |  1 -
 17 files changed, 107 insertions(+), 60 deletions(-)
 create mode 100644 webapp/class/appointement/hash/hash.js
 create mode 100644 webapp/class/email/email.js
 rename webapp/views/elements/{nav.inc.html => nav.inc.ejs} (60%)

diff --git a/webapp/class/appointement/hash/hash.js b/webapp/class/appointement/hash/hash.js
new file mode 100644
index 0000000..2853533
--- /dev/null
+++ b/webapp/class/appointement/hash/hash.js
@@ -0,0 +1,29 @@
+"use strict"
+
+var objectHash = require('object-hash')
+var db = require('../../db/db_request')
+
+module.exports = {
+  generate_id: (data, callback) => {
+
+    var key = objectHash(data)
+
+    console.log("Id generated:", key);
+
+    collision_handler(key, function(){
+      callback(key)
+    })
+  }
+}
+
+function collision_handler(key, callback){
+  db.get_ids(function(ids){
+
+    for (var id in ids) {
+      if (key == id) {
+        console.log("existe deja c'est la merde");
+      }
+    }
+    callback()
+  })
+}
diff --git a/webapp/class/db/db_request.js b/webapp/class/db/db_request.js
index e92c8a1..e5ed6b3 100644
--- a/webapp/class/db/db_request.js
+++ b/webapp/class/db/db_request.js
@@ -18,6 +18,16 @@ module.exports = {
     })
   },
 
+  get_ids: (callback) => {
+    let query = "SELECT idMeeting FROM t_meeting"
+
+    db.query(query, (error, results, fields) => {
+        if (error) throw error;
+
+        callback(results)
+    })
+  },
+
   reset_meeting: (idMeeting, callback) => {
     let query = "UPDATE t_meeting SET data = JSON_SET(data, '$.percentage', 0, '$.location', '', '$.date', CAST('{}' AS JSON)) WHERE idMeeting = ?"
 
diff --git a/webapp/class/email/email.js b/webapp/class/email/email.js
new file mode 100644
index 0000000..9f7beda
--- /dev/null
+++ b/webapp/class/email/email.js
@@ -0,0 +1,7 @@
+"use strict"
+
+module.exports = {
+  send: (type) => {
+
+  }
+}
diff --git a/webapp/class/meetus.js b/webapp/class/meetus.js
index 10cbe53..dc86c18 100644
--- a/webapp/class/meetus.js
+++ b/webapp/class/meetus.js
@@ -7,16 +7,22 @@ var appointement = require('./appointement/appointement')
 var journey = require('./journey/journey')
 var user = require('./user/user')
 var search = require('./appointement/search_cities')
+var hash = require('./appointement/hash/hash')
 
 module.exports = {
   create_meeting: (id, data) => {
 
-    //validate data
-    // create id with hash
+    // !!! validate data !!!
 
-    db.create_meeting(id, JSON.stringify(data), function(result){
-      console.log(result);
+    hash.generate_id(data, function(id){
+
+      console.log("Id received:", id);
+
+      db.create_meeting(id, JSON.stringify(data), function(result){
+        console.log(result);
+      })
     })
+
   },
 
   remove_meeting: (callback) => {
diff --git a/webapp/package.json b/webapp/package.json
index 1f63155..769774c 100644
--- a/webapp/package.json
+++ b/webapp/package.json
@@ -12,7 +12,7 @@
   "dependencies": {
     "array-async": "^3.0.0",
     "cities.json": "^1.1.5",
-    "ejs": "^2.6.1",
+    "ejs": "^2.6.2",
     "express": "^4.17.1",
     "foreachasync": "^5.1.3",
     "http": "0.0.0",
@@ -20,9 +20,11 @@
     "jsdom": "^15.1.1",
     "mysql": "^2.17.1",
     "nodemon": "^1.19.1",
+    "object-hash": "^1.3.1",
     "request": "^2.88.0",
     "require-env": "^0.2.1",
-    "sass": "^1.20.3",
-    "socket.io": "^2.2.0"
+    "sass": "^1.22.9",
+    "socket.io": "^2.2.0",
+    "string-hash": "^1.1.3"
   }
 }
diff --git a/webapp/ressources/router.js b/webapp/ressources/router.js
index 1ed3594..d1492be 100644
--- a/webapp/ressources/router.js
+++ b/webapp/ressources/router.js
@@ -7,7 +7,7 @@ module.exports = function (app) {
     res.render("index.ejs");
   });
 
-  app.get('/meeting-:id', function (req, res) {
+  app.get('/meeting/:id', function (req, res) {
 
     db_request.check_id(req.params.id, function(resp){
       if(resp){
diff --git a/webapp/ressources/socket.js b/webapp/ressources/socket.js
index 73a69a2..959db17 100644
--- a/webapp/ressources/socket.js
+++ b/webapp/ressources/socket.js
@@ -6,6 +6,7 @@ var db = require('../class/db/db_request')
 var journey = require('../class/journey/journey')
 var appointement = require('../class/appointement/appointement')
 var meetus = require('../class/meetus')
+var hash = require('../class/appointement/hash/hash')
 
 var config = require('../config/config.json')
 
@@ -66,8 +67,9 @@ module.exports = function(server){
     })
 
     socket.on('test_class', function(){
-      meetus.load_cities()
+      //meetus.load_cities()
       //meetus.update_journeys()
+      hash.generate_id()
     })
 
 
diff --git a/webapp/views/create-meeting.ejs b/webapp/views/create-meeting.ejs
index d421d70..0682c60 100644
--- a/webapp/views/create-meeting.ejs
+++ b/webapp/views/create-meeting.ejs
@@ -41,7 +41,7 @@
 }
 </script>
 
-<%- include('elements/nav.inc.html') %>
+<%- include('elements/nav.inc.ejs') %>
 <div class="col-lg-8 offset-lg-2">
 
   <div class="card">
diff --git a/webapp/views/elements/foot.inc.ejs b/webapp/views/elements/foot.inc.ejs
index 8a87a12..8c720e6 100644
--- a/webapp/views/elements/foot.inc.ejs
+++ b/webapp/views/elements/foot.inc.ejs
@@ -1,4 +1,4 @@
-</div>
+
 </div> <!-- END CONTAINER -->
 
 </section>
diff --git a/webapp/views/elements/nav.inc.html b/webapp/views/elements/nav.inc.ejs
similarity index 60%
rename from webapp/views/elements/nav.inc.html
rename to webapp/views/elements/nav.inc.ejs
index 07808b6..561979b 100644
--- a/webapp/views/elements/nav.inc.html
+++ b/webapp/views/elements/nav.inc.ejs
@@ -6,7 +6,7 @@
   </div>
   <div class="justify-content-center">
     <a class="nav-link" href="/">
-      <h2 class="title">MeetUs <small class="text-warning"> beta</small></h2>
+      <h2 class="title">MeetUs</h2>
     </a>
   </div>
   <div class="justify-content-end">
@@ -25,28 +25,34 @@
   </ul>
 </div>
 
-<main class="row mx-0">
-  <nav class="sidebar position-fixed d-none d-lg-block pt-5 px-0">
-    <h1 class="main-title font-weight-bold mb-5 px-3">
-      <a class="text-decoration-none" href="/">Meet Us <small class="text-warning"> beta</small></a>
+
+
+<nav class="navbar navbar-computer d-none d-lg-block px-0 mb-5">
+  <div class="container">
+
+    <h1 class="main-title">
+      <a class="text-decoration-none" href="/">Meet Us</a>
     </h1>
 
-    <ul class="nav flex-column mb-5 text-center">
+    <ul class="nav text-center">
       <li class="nav-item">
-        <a class="nav-link py-4" href="/"><i class="fas fa-home fa-2x"></i></a>
+        <a class="nav-link" href="/"><i class="fas fa-home"></i> Accueil</a>
       </li>
       <li class="nav-item">
-        <a class="nav-link py-4" href="/create-meeting"><i class="fas fa-address-book fa-2x"></i></a>
+        <a class="nav-link" href="/create-meeting"><i class="fas fa-address-book"></i> Creer Meeting</a>
       </li>
       <li class="nav-item">
-        <button class="btn btn-hidden moon"><i class="far fa-moon fa-2x fa-flip-horizontal text-primary"></i></button>
+        <button class="btn btn-hidden moon"><i class="far fa-moon fa-flip-horizontal text-primary"></i></button>
       </li>
-
     </ul>
 
-  </nav>
+  </div>
+</nav>
+
+
+
+<main class="row mx-0">
 
-  <section class="content pt-5 px-lg-5">
-    <div class="container">
+  <section class="container">
 
-      <div class="row">
+    <div class="row">
diff --git a/webapp/views/index.ejs b/webapp/views/index.ejs
index 1392627..941b300 100644
--- a/webapp/views/index.ejs
+++ b/webapp/views/index.ejs
@@ -15,7 +15,7 @@
 
     socket.on('check_id', function(resp){
       if(resp){
-        window.location.href = "/meeting-" + id;
+        window.location.href = "/meeting/" + id;
       }else{
         $('#msg').removeClass('d-none')
         .addClass('d-block')
@@ -25,26 +25,27 @@
 
   }
   </script>
-  <%- include('elements/nav.inc.html') %>
-  <div class="col-sm-6 text-center mb-4">
+  <%- include('elements/nav.inc.ejs') %>
+  <div class="col-sm-6 mb-4">
 
     <div class="card">
       <div class="card-body">
         <h1 class="mb-5">Load meeting</h1>
-        <div class="mb-4" style="height: 50px">
-          <p class="alert alert-danger d-none" id="msg"></p>
-        </div>
 
         <form class="mb-4">
-          <input type="number" value="0" placeholder="0" id="id_meeting">
+          <input class="w-100" type="text" value="0" placeholder="0" id="id_meeting">
         </form>
         <button class="btn btn-primary" type="button" name="button" onclick="check_id()">Search</button>
+
+        <div class="mb-4" style="height: 50px">
+          <p class="alert alert-danger d-none" id="msg"></p>
+        </div>
       </div>
     </div>
 
   </div>
 
-  <div class="col-sm-6 text-center mb-4">
+  <div class="col-sm-6 mb-4">
 
     <div class="card">
       <div class="card-body">
diff --git a/webapp/views/meeting.ejs b/webapp/views/meeting.ejs
index 1fa4e36..3966149 100644
--- a/webapp/views/meeting.ejs
+++ b/webapp/views/meeting.ejs
@@ -14,7 +14,7 @@
 
   <%- include('include/add_user.ejs') %>
 
-  <%- include('elements/nav.inc.html') %>
+  <%- include('elements/nav.inc.ejs') %>
 
   <div class="w-100 d-flex mt-4 mb-3">
     <div class="d-flex justify-content-end">
diff --git a/webapp/views/style/navbar.scss b/webapp/views/style/navbar.scss
index 2697e98..80c94ac 100644
--- a/webapp/views/style/navbar.scss
+++ b/webapp/views/style/navbar.scss
@@ -1,7 +1,8 @@
-.sidebar{
+.navbar-computer{
   background-color: var(--bg-element);
-  height: 100vh;
-  width: var(--navbar-width);
+  .main-title{
+    font-weight: bold;
+  }
   .nav-link{
     &:hover{
       background-color: var(--bg-main);
diff --git a/webapp/views/style/style.css b/webapp/views/style/style.css
index 4ceed39..61ba17a 100644
--- a/webapp/views/style/style.css
+++ b/webapp/views/style/style.css
@@ -1,6 +1,5 @@
 :root {
   /* ------- SIZES ------- */
-  --navbar-width: 130px;
   /* ------- COLORS ------- */
   /* Light mode */
   --white: white;
@@ -16,12 +15,13 @@
   --color-primary: purple;
 }
 
-.sidebar {
+.navbar-computer {
   background-color: var(--bg-element);
-  height: 100vh;
-  width: var(--navbar-width);
 }
-.sidebar .nav-link:hover {
+.navbar-computer .main-title {
+  font-weight: bold;
+}
+.navbar-computer .nav-link:hover {
   background-color: var(--bg-main);
 }
 
@@ -108,15 +108,6 @@ body {
   color: var(--txt-main);
 }
 
-.content {
-  width: 100%;
-}
-@media (min-width: 992px) {
-  .content {
-    margin-left: var(--navbar-width);
-  }
-}
-
 .shadow-smooth {
   box-shadow: 0 0 6px #e6e6e6;
 }
diff --git a/webapp/views/style/style.css.map b/webapp/views/style/style.css.map
index 1be6740..0b7dfc1 100644
--- a/webapp/views/style/style.css.map
+++ b/webapp/views/style/style.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["vars.scss","navbar.scss","add-user.scss","style.scss"],"names":[],"mappings":"AAAA;AACE;EACA;AAEA;AACA;EACA;EACA;AAEA;EACA;EACA;EACA;EAGA;EACA;EAEA;EAEA;EAEA;;;ACtBF;EACE;EACA;EACA;;AAEE;EACE;;;AAKJ;EACE;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;;;AAIF;EACE;EACA;;;AAGJ;EAEI;IACE;;;EAGJ;IACE;;;AClDJ;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;;AAGF;EACE;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACE;;AACF;EACE;;AAGJ;EACE;;AACA;EACE;;AAGJ;EACE;EACA;;;AC5BN;EACE;EACA;;;AAGF;EACE;;AACA;EAFF;IAGI;;;;AAKJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA","file":"style.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["vars.scss","navbar.scss","add-user.scss","style.scss"],"names":[],"mappings":"AAAA;AACE;AAEA;AACA;EACA;EACA;AAEA;EACA;EACA;EACA;EAGA;EACA;EAEA;EAEA;EAEA;;;ACrBF;EACE;;AACA;EACE;;AAGA;EACE;;;AAKJ;EACE;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;;;AAIF;EACE;EACA;;;AAGJ;EAEI;IACE;;;EAGJ;IACE;;;ACnDJ;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;;AAGF;EACE;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACE;;AACF;EACE;;AAGJ;EACE;;AACA;EACE;;AAGJ;EACE;EACA;;;AC5BN;EACE;EACA;;;AAIF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA","file":"style.css"}
\ No newline at end of file
diff --git a/webapp/views/style/style.scss b/webapp/views/style/style.scss
index a2df2e1..2675515 100644
--- a/webapp/views/style/style.scss
+++ b/webapp/views/style/style.scss
@@ -8,13 +8,6 @@ body{
   color: var(--txt-main);
 }
 
-.content{
-  width: 100%;
-  @media (min-width: 992px){
-    margin-left: var(--navbar-width);
-  }
-}
-
 
 .shadow-smooth{
   box-shadow: 0 0 6px darken(white, 10%);
diff --git a/webapp/views/style/vars.scss b/webapp/views/style/vars.scss
index deb4e13..7063880 100644
--- a/webapp/views/style/vars.scss
+++ b/webapp/views/style/vars.scss
@@ -1,6 +1,5 @@
 :root{
   /* ------- SIZES ------- */
-  --navbar-width: 130px;
 
   /* ------- COLORS ------- */
   /* Light mode */
-- 
GitLab