From d7a6e0cc06397db16ac1a74476d4ad5598068ab4 Mon Sep 17 00:00:00 2001
From: MaximeOLIVA <maxime.oliva@etu.univ-cotedazur.fr>
Date: Thu, 2 Feb 2023 12:30:13 +0100
Subject: [PATCH] FINAL

---
 .DS_Store        | Bin 6148 -> 6148 bytes
 Lab1/client.html |   4 +--
 Lab1/client.js   |  66 +++++++++++++++++++++++++++++------------------
 3 files changed, 43 insertions(+), 27 deletions(-)

diff --git a/.DS_Store b/.DS_Store
index 6e4b79216ef0ca9ebca81be0a4b36094013fe7e0..34edbad0626b2e2a561256315e0938a2cbb00343 100644
GIT binary patch
delta 64
zcmZoMXfc@J&&aVcU^g=($7UXuDkfzX1|Nn*h9m|f&z$_^q@4UD1_lNJ1_nl11_lPb
Q|6s7OFphCEJI7ys04sMBivR!s

delta 28
kcmZoMXfc@J&&a+pU^g=(`(_@NDyEGkjf|VwIsWnk0DqPU%K!iX

diff --git a/Lab1/client.html b/Lab1/client.html
index 6d6c052..182620e 100644
--- a/Lab1/client.html
+++ b/Lab1/client.html
@@ -72,7 +72,7 @@
                 </div>
                 <div id="BP_Message_area" class="browsecontent">
                     <textarea id="BP_Message" name="story" rows="7" cols="55" placeholder="Write something here"></textarea>
-                    <div><button id="BP_post_message" onclick="BP_message_management();">Post message</button></div>
+                    <div><button id="BP_post_message" onclick="message_management('BP');">Post message</button></div>
                 </div>
                 <button id="BP_Reload_wall" class="browsecontent" onclick="display_wall(localStorage.getItem('browsed_email'), 'BP');">Reload wall</button>
                 <div id="BP_Wall_all">
@@ -91,7 +91,7 @@
                 </div>
                 <div id="Message_area">
                     <textarea id="HP_Message" name="story" rows="7" cols="55" placeholder="Write something here"></textarea>
-                    <div><button id="post_message" onclick="HP_message_management();">Post message</button></div>
+                    <div><button id="post_message" onclick="message_management('HP');">Post message</button></div>
                 </div>
                 <div id = "Wall">
                     <button id="HP_Reload_wall" onclick="display_wall(localStorage.getItem('email_username'), 'HP');">Reload wall</button>
diff --git a/Lab1/client.js b/Lab1/client.js
index cc9dacb..c0bdf3f 100644
--- a/Lab1/client.js
+++ b/Lab1/client.js
@@ -1,4 +1,5 @@
-let data_user = null;
+let data_user_browse = null;
+let data_user_home = null;
 
 window.onload = function() {
   if(localStorage.getItem("token") != null) {
@@ -139,6 +140,7 @@ function signOut() {
     displayWelcomeView();
     localStorage.removeItem("tab");
     localStorage.removeItem("token");
+    localStorage.removeItem("browsed_email");
     document.getElementById("displayprofil").innerHTML = "";
     document.getElementById("displaywelcome").innerHTML = document.getElementById("welcomeview").innerHTML;
     document.body.style.backgroundColor = "#0F98B7";
@@ -150,26 +152,24 @@ function signOut() {
 
 //---------------------------------------MESSAGE MANAGEMENT---------------------------------------
 
-function HP_message_management(){
-  let message = document.getElementById("HP_Message").value;
-  let textaera = document.getElementById("HP_Message");
-
-  if(message.length > 0) {
-    serverstub.postMessage(localStorage.getItem("token"), message, localStorage.getItem("email_username"));
-    display_wall(localStorage.getItem("email_username"), "HP");
+function message_management(tab){
+  let message = document.getElementById(tab + "_Message").value;
+  let textaera = document.getElementById(tab +  "_Message");
+  let email;
+
+  switch(tab) {
+    case "HP":
+      email = localStorage.getItem("email_username");
+      break;
+    default:
+      email = localStorage.getItem("browsed_email");
   }
-  textaera.value = "";
-}
-
-
-function BP_message_management(){
-  let message = document.getElementById("BP_Message").value;
-  let textaera = document.getElementById("BP_Message");
-
+ 
   if(message.length > 0) {
-    serverstub.postMessage(localStorage.getItem("token"), document.getElementById("BP_Message").value,localStorage.getItem("browsed_email"));
-    display_wall(localStorage.getItem("browsed_email"), "BP");
+    serverstub.postMessage(localStorage.getItem("token"), message, email);
+    display_wall(email, tab);
   }
+
   textaera.value = "";
 }
 
@@ -189,7 +189,6 @@ function openTab(tabName) {
   // Declare all variables
   var i, tabcontent, tablinks;
   localStorage.setItem("tab", tabName);
-
   
   if(tabName != "browsePage") {
     if(!(serverstub.getUserMessagesByEmail(localStorage.getItem("token"), localStorage.getItem("browsed_email")).success)) {
@@ -211,7 +210,7 @@ function openTab(tabName) {
 
   if(tabName == "homePage") {
     display_wall_info(localStorage.getItem("email_username"), "HP");
-  } else if ((tabName == "browsePage") && (localStorage.getItem("browsed_email") != "1")) {
+  } else if (tabName == "browsePage") {
     display_wall_info(localStorage.getItem("browsed_email"), "BP");
   }
 
@@ -224,11 +223,7 @@ function openTab(tabName) {
 
 function display_wall_info(email, tab) {
   //check if we already have the data stored of if we have to call the server
-  /*if((localStorage.getItem("browsed_email") === null) || localStorage.getItem("browsed_email") != email || data_user === null) {
-    data_user = serverstub.getUserDataByEmail(localStorage.getItem("token"), email);
-  }*/
-  
-  data_user = serverstub.getUserDataByEmail(localStorage.getItem("token"), email);
+  let data_user = get_user_info(email, tab);
   
   if(data_user.success) {
     if(tab == "BP") {
@@ -250,6 +245,27 @@ function display_wall_info(email, tab) {
   }
 }
 
+function get_user_info(email, tab) {
+  //call the server if data aren't already stored
+  if((tab == "BP") && (localStorage.getItem("browsed_email") != email || data_user_browse == null)) {
+    data_user_browse = serverstub.getUserDataByEmail(localStorage.getItem("token"), email);
+  } else if ((tab == "HP") && (data_user_home == null)) {
+    data_user_home = serverstub.getUserDataByEmail(localStorage.getItem("token"), email);
+  }
+
+  let data_user;
+  switch(tab) {
+    case "HP" :
+      data_user = data_user_home;
+      break;
+    default :
+      data_user = data_user_browse;
+      break;
+  }
+
+  return data_user;
+}
+
 function display_wall(email, tab) {
   let messages = serverstub.getUserMessagesByEmail(localStorage.getItem("token"), email);
 
-- 
GitLab