From 3fe22134fdb28de25a528db1fad8c4a40ea086cd Mon Sep 17 00:00:00 2001 From: Preston Doman Date: Tue, 29 Jan 2019 16:21:22 -0800 Subject: [PATCH] Refactor using callback functions --- front/static/js/viewHistory.js | 45 ++++++++++++++++++++++++++++++++++ front/static/view_history.html | 8 +++--- 2 files changed, 48 insertions(+), 5 deletions(-) diff --git a/front/static/js/viewHistory.js b/front/static/js/viewHistory.js index f7df1cb..d3d1e0c 100644 --- a/front/static/js/viewHistory.js +++ b/front/static/js/viewHistory.js @@ -25,6 +25,46 @@ function getEndpointDomain() { return domain; } +function getDataFromEndpoint(url, callback) { + const token = localStorage.getItem("token"); + const xhr = new XMLHttpRequest(); + + console.log(`Attempting a connection to the following endpoint: ${url}`); + + xhr.open("GET", url, true); + xhr.onreadystatechange = function() { + if (this.readyState === 4) { + if (this.status === 200) { + console.log("GET SUCCESS!"); + console.log(`Server response:\n${this.response}`); + parsedData = JSON.parse(this.response); + callback(parsedData); + } else { + console.log("GET FAILURE!"); + console.log(`Server status: ${this.status}`); + console.log(`Server response:\n${this.response}`); + } + } + }; + + xhr.onerror = function() { + alert("Connection error!"); + }; + + xhr.send(); +} + +function buildEditReportForm(parsedReport) { + const modalTitle = document.querySelector("#editReportModalLabel"); + console.log("In buildEditReportForm"); + console.log(JSON.stringify(parsedReport)); +} + +function editReportFormClickHandler(event) { + const url = getEndpointDomain() + "backend/get_report"; + getDataFromEndpoint(url, buildEditReportForm); +} + function displayListOfReports(listOfReports) { const cardBody = document.querySelector(".card-body"); const table = document.createElement("table"); @@ -50,6 +90,7 @@ function displayListOfReports(listOfReports) { actionButton.classList.add("btn-primary"); actionButton.innerHTML = "Edit"; actionButton.setAttribute("data-target", "#editReportModal"); + actionButton.addEventListener("click", editReportFormClickHandler); } else { // View button dateSubmitted = new Date(reports[i].date_submitted).toLocaleDateString("en-US"); @@ -115,6 +156,7 @@ function displayListOfReports(listOfReports) { } function getReportHistory(event) { + /* const token = localStorage.getItem("token"); const url = getEndpointDomain() + "backend/list_report"; const xhr = new XMLHttpRequest(); @@ -143,6 +185,9 @@ function getReportHistory(event) { }; xhr.send(); + */ + const url = getEndpointDomain() + "backend/list_report"; + getDataFromEndpoint(url, displayListOfReports); } document.addEventListener("DOMContentLoaded", getReportHistory); diff --git a/front/static/view_history.html b/front/static/view_history.html index 99a2da2..fcf4180 100644 --- a/front/static/view_history.html +++ b/front/static/view_history.html @@ -53,18 +53,16 @@ - -