diff --git a/.DS_Store b/.DS_Store index 04392a84bad9a9be07ab1469c240ba2659f2e948..18547431fc88e200671c46bab96e8eeb767dc026 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Lab 1/client.js b/Lab 1/client.js index f6630080272c9e5917f299c64d09678058a56c4e..ad5855e6b7e943f2528b63138a6d0e200351acad 100644 --- a/Lab 1/client.js +++ b/Lab 1/client.js @@ -225,7 +225,7 @@ function reloadWall(who) { return false; } -// - - - - - Changing another's wall - - - - - // +// Changing another's wall function searchAnotherUser(event){ let token = localStorage.getItem("currentUser"); let email = event.target["searchInput"].value; diff --git a/Lab_3/Twidder/static/client.html b/Lab_3/Twidder/static/client.html index 8ebd769443e0a5c90d0f268f0c563c4c13051edb..7834b2f76a8137d4b6ef69e7ec94a4a722cdac9b 100644 --- a/Lab_3/Twidder/static/client.html +++ b/Lab_3/Twidder/static/client.html @@ -5,7 +5,7 @@ <meta charset="utf-8"> <link href="static/client.css" type="text/css" rel="stylesheet"> <script src="static/client.js"></script> - <script src="static/serverstub.js"></script> + <!-- <script src="static/serverstub.js"></script> --> <!-- <script src="server.py"></script> --> <script type="text/view" id="welcomeview"> @@ -171,9 +171,7 @@ </head> <body> - <div id="windowDiv"> - haha hoho - </div> + <div id="windowDiv"></div> </body> </html> diff --git a/Lab_3/Twidder/static/client.js b/Lab_3/Twidder/static/client.js index bfb01184f0b7b37f9456cc00af09f843d1db0cc5..103980459c111384131443e3820d56a932cec583 100644 --- a/Lab_3/Twidder/static/client.js +++ b/Lab_3/Twidder/static/client.js @@ -14,11 +14,12 @@ var signInRequest = new XMLHttpRequest(); signInRequest.onreadystatechange = function() { if (this.readyState == 4) { - let errorMess = document.getElementById("error"); + let errorMessage = document.getElementById("error"); if (this.status == 204) { - errorMess.innerHTML = "You are signed in"; + errorMessage.innerHTML = "You are signed in"; let token = this.getResponseHeader("Authorization") localStorage.setItem("currentUser", token); + // Changes the view to profile view an loads user info displayView(); @@ -29,15 +30,15 @@ signInRequest.onreadystatechange = function() { } else if (this.status == 400) { // Todo - implement - console.log('git this: 400') + console.log('got this: 400') } else if (this.status == 404) { // Todo - implement - console.log('git this: 404') + console.log('got this: 404') } else if (this.status == 401) { // Todo - implement - console.log('git this: 401') + console.log('got this: 401') } else { // Todo - implement @@ -54,13 +55,136 @@ signOutRequest.onreadystatechange = function() { // Reset token in the localStorage localStorage.setItem("currentUser", ""); + localStorage.setItem("homeEmail", ""); + localStorage.setItem("browseEmail", ""); // Changes the view to welcome view displayView(); } else if (this.status == 401) { // Todo - implement - console.log('git this: 401') + console.log('got this: 401') + } + else { + // Todo - implement + console.log('unknown error -_-') + } + } +}; + +// Todo - implement +// Change Password + +// Get use data by token +var dataByTokenRequest = new XMLHttpRequest(); +dataByTokenRequest.onreadystatechange = function() { + if (this.readyState == 4) { + if (this.status == 200) { + + let userDataArray = JSON.parse(this.responseText); + + // Putting the user data we retrieved from server to the corresponding html table + let userTable = document.getElementById("homeUserInfo"); + userTable.rows[0].cells[1].innerHTML = userDataArray["data"].email; + userTable.rows[1].cells[1].innerHTML = userDataArray["data"].firstname; + userTable.rows[2].cells[1].innerHTML = userDataArray["data"].familyname; + userTable.rows[3].cells[1].innerHTML = userDataArray["data"].gender; + userTable.rows[4].cells[1].innerHTML = userDataArray["data"].city; + userTable.rows[5].cells[1].innerHTML = userDataArray["data"].country; + + localStorage.setItem("homeEmail", userDataArray["data"].email); + } + else if (this.status == 401) { + // Todo - implement + console.log('got this: 401') + } + else if (this.status == 400) { + // Todo - implement + console.log('got this: 400') + } + else if (this.status == 404) { + // Todo - implement + console.log('got this: 404') + } + else { + // Todo - implement + console.log('unknown error -_-') + } + } +}; + +// Get use data by email +var dataByEmailRequest = new XMLHttpRequest(); +dataByEmailRequest.onreadystatechange = function() { + if (this.readyState == 4) { + + let errorMessage = document.getElementById("searchMessage"); + if (this.status == 200) { + + let userDataArray = JSON.parse(this.responseText); + + // Putting the user data we retrieved from server to the corresponding html table + let userTable = document.getElementById("browseUserInfo"); + userTable.rows[0].cells[1].innerHTML = userDataArray["data"].email; + userTable.rows[1].cells[1].innerHTML = userDataArray["data"].firstname; + userTable.rows[2].cells[1].innerHTML = userDataArray["data"].familyname; + userTable.rows[3].cells[1].innerHTML = userDataArray["data"].gender; + userTable.rows[4].cells[1].innerHTML = userDataArray["data"].city; + userTable.rows[5].cells[1].innerHTML = userDataArray["data"].country; + + localStorage.setItem("browseEmail", userDataArray["data"].email); + } + else if (this.status == 401) { + // Todo - implement + console.log('got this: 401') + //errorMessage.innerHTML = "something"; + localStorage.setItem("browseEmail", ""); + } + else if (this.status == 400) { + // Todo - implement + console.log('got this: 400') + localStorage.setItem("browseEmail", ""); + } + else if (this.status == 404) { + // Todo - implement + console.log('got this: 404') + localStorage.setItem("browseEmail", ""); + } + else { + // Todo - implement + console.log('unknown error -_-') + localStorage.setItem("browseEmail", ""); + } + } +}; + +// Todo - implement +// Get Messages By Token + + + +// Get Messages By Email +var messagesByEmailRequest = new XMLHttpRequest(); +messagesByEmailRequest.onreadystatechange = function() { + if (this.readyState == 4) { + + if (this.status == 200 || this.status == 204) { + + let resultObj = JSON.parse(this.responseText); + // Todo - implement + + } + else if (this.status == 401) { + // Todo - implement + console.log('got this: 401') + } + else if (this.status == 400) { + // Todo - implement + console.log('got this: 400') + } + else if (this.status == 404) { + // Todo - implement + console.log('got this: 404') } else { // Todo - implement @@ -69,6 +193,10 @@ signOutRequest.onreadystatechange = function() { } }; +// Todo - implement +// Post Message + + // - - - - - Init functions - - - - - // @@ -84,6 +212,7 @@ displayView = function(){ // - - - - - The function when page loads - - - - - // + window.onload = function () { // Todo - Delete when done - används för att hoppa tillbaka till rtt view under utveckling @@ -93,6 +222,10 @@ window.onload = function () { // If first time? check this: if (localStorage.getItem("currentUser") == null) localStorage.setItem("currentUser", ""); + if (localStorage.getItem("homeEmail") == null) + localStorage.setItem("homeEmail", ""); + if (localStorage.getItem("browseEmail") == null) + localStorage.setItem("browseEmail", ""); // Initialize div objects (global variables) welcomeDiv = document.getElementById("welcomeview"); @@ -103,30 +236,36 @@ window.onload = function () { displayView(); // Load user details to home page and browse page + // Todo - kan bli problem om dess inte innehåller giltig email setUserDetails("home"); setUserDetails("browse"); }; -//Function for setting user details +// Function for setting user details, either for yourself or for some other user function setUserDetails(who) { + // "who" could be either home or browse, this way know which info we are displaying and where let token = localStorage.getItem("currentUser"); if (token != null && token != "" ){ let userTable = document.getElementById(who + "UserInfo"); let email = localStorage.getItem(who + "Email"); - - // Todo - //let userDataArray = serverstub.getUserDataByEmail(token, email); - let userDataArray = server.get_user_data_by_email(email); - // Putting the user data we retrieved from server to the corresponding html table - if (userDataArray["success"]) { - userTable.rows[0].cells[1].innerHTML = userDataArray["data"].email; - userTable.rows[1].cells[1].innerHTML = userDataArray["data"].firstname; - userTable.rows[2].cells[1].innerHTML = userDataArray["data"].familyname; - userTable.rows[3].cells[1].innerHTML = userDataArray["data"].gender; - userTable.rows[4].cells[1].innerHTML = userDataArray["data"].city; - userTable.rows[5].cells[1].innerHTML = userDataArray["data"].country; + // Display my own info + if (who == 'home') { + // Send request to server about receiving the info + dataByTokenRequest.open("GET", url + "getDataByToken", true); + dataByTokenRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); + dataByTokenRequest.setRequestHeader("Authorization", token) + dataByTokenRequest.send(); + } + + // Display the info about the searched user + else if (who == 'browse' && email != null && email != "") { + // Send request to server about receiving the info + dataByEmailRequest.open("GET", url + "getDataByEmail/" + email, true); + dataByEmailRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); + dataByEmailRequest.setRequestHeader("Authorization", token) + dataByEmailRequest.send(); } } } @@ -226,7 +365,8 @@ function sign_out(){ // - - - - - Changing tabs - - - - - // -function showPage(ourEvent, name){ +function showPage(ourEvent, name) { + // - - Fixing the tabs - - // // Unselect all let tabcontent = document.getElementById("tabDiv"); @@ -237,6 +377,7 @@ function showPage(ourEvent, name){ let div = ourEvent.target; div.style.backgroundColor = "lightgreen"; + // - - Fixing the content - - // // Unselect all let allPages = document.getElementsByClassName("tabcontent"); @@ -317,19 +458,18 @@ function reloadWall(who) { return false; } -// - - - - - Changing another's wall - - - - - // +// Changing another's wall function searchAnotherUser(event){ let token = localStorage.getItem("currentUser"); - let email = event.target["searchInput"].value; - let error = document.getElementById("searchMessage"); - // Todo - let user_obj = serverstub.getUserMessagesByEmail(token, email); + // Todo - download the wall of the user we searched for ? + // let user_obj = serverstub.getUserMessagesByEmail(token, email); - error.innerHTML = user_obj["message"]; + if(token != "") { - // Check that we succeeded with finding a wall - if(token != "" && user_obj['success']){ + // Store the searched email in localStorage so that it can be reached in "setUserDetails()" + let email = event.target["searchInput"].value; + localStorage.setItem("browseEmail", email); setUserDetails("browse"); } return false;