83 lines
3 KiB
JavaScript
83 lines
3 KiB
JavaScript
function displayListOfReports(listOfReports) {
|
|
const cardBody = document.querySelector(".card-body");
|
|
const table = document.createElement("table");
|
|
const reports = listOfReports.reports;
|
|
let rowsInserted = 0;
|
|
|
|
for (let i = 0; i < reports.length; i++) {
|
|
let title = reports[i].title;
|
|
let dateCreated = new Date(reports[i].date_created).toLocaleDateString("en-US");
|
|
let state = reports[i].state;
|
|
let dateSubmitted = (state === "created") ? "TBD": new Date(reports[i].date_submitted).toLocaleDateString("en-US");
|
|
let bodyRow = table.insertRow(i);
|
|
|
|
bodyRow.insertCell(0).innerHTML = title;
|
|
bodyRow.insertCell(1).innerHTML = dateCreated;
|
|
bodyRow.insertCell(2).innerHTML = state;
|
|
bodyRow.insertCell(3).innerHTML = dateSubmitted;
|
|
rowsInserted++;
|
|
}
|
|
|
|
if (rowsInserted === 0) {
|
|
// Empty report list
|
|
const p = document.createElement("p");
|
|
p.innerHTML = "No reports found.";
|
|
cardBody.appendChild(p);
|
|
} else {
|
|
// Create table header, add to table, and append result to the card body
|
|
const thead = document.createElement("thead");
|
|
const tr = document.createElement("tr");
|
|
|
|
const headTitle = document.createElement("th");
|
|
headTitle.innerHTML = "Title";
|
|
tr.appendChild(headTitle);
|
|
|
|
const headDateCreated = document.createElement("th");
|
|
headDateCreated.innerHTML = "Date Created";
|
|
tr.appendChild(headDateCreated);
|
|
|
|
const headState = document.createElement("th");
|
|
headState.innerHTML = "State";
|
|
tr.appendChild(headState);
|
|
|
|
const headDateSubmitted = document.createElement("th")
|
|
headDateSubmitted.innerHTML = "Date Submitted";
|
|
tr.appendChild(headDateSubmitted);
|
|
|
|
thead.appendChild(tr);
|
|
table.prepend(thead);
|
|
table.classList.add("table", "table-striped", "table-responsive-sm");
|
|
cardBody.appendChild(table);
|
|
}
|
|
}
|
|
|
|
function getReportHistory(event) {
|
|
const token = localStorage.getItem("token");
|
|
const url = "https://localhost:8444/backend/list_report"
|
|
const xhr = new XMLHttpRequest();
|
|
|
|
xhr.open("GET", url, true);
|
|
xhr.setRequestHeader("Authorization", `Token ${token}`);
|
|
xhr.onreadystatechange = function() {
|
|
if (this.readyState === 4) {
|
|
if (this.status === 200) {
|
|
console.log("GET list_report SUCCESS!");
|
|
console.log(`Server response:\n${this.response}`);
|
|
listOfReports = JSON.parse(this.response);
|
|
displayListOfReports(listOfReports);
|
|
} else {
|
|
console.log("GET list_report FAILURE!");
|
|
console.log(`Server status: ${this.status}`);
|
|
console.log(`Server response:\n${this.response}`);
|
|
}
|
|
}
|
|
};
|
|
|
|
xhr.onerror = function() {
|
|
alert("Connection error!");
|
|
};
|
|
|
|
xhr.send();
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", getReportHistory);
|