132 lines
4.1 KiB
JavaScript
132 lines
4.1 KiB
JavaScript
export function showUsers(api) {
|
|
const tbody = document.getElementById("user-table").getElementsByTagName("tbody")[0];
|
|
const token = localStorage.getItem("token");
|
|
|
|
const requestOptions = {
|
|
method: 'post',
|
|
headers: {
|
|
'Accept': `application/json`,
|
|
'Content-Type': 'application/json',
|
|
'Authorization': 'Bearer ' + token,
|
|
},
|
|
};
|
|
|
|
fetch(api + "/api/admin/all-users", requestOptions)
|
|
.then(response => response.json())
|
|
.then(function (data) {
|
|
if (data) {
|
|
data.forEach(i => {
|
|
let newRow = tbody.insertRow();
|
|
let newCell = newRow.insertCell();
|
|
|
|
newCell.innerHTML = `<a href="/admin/all-users/${i.id}">${i.last_name}, ${i.first_name}</a>`;
|
|
|
|
newCell = newRow.insertCell();
|
|
let item = document.createTextNode(i.email);
|
|
newCell.appendChild(item);
|
|
});
|
|
} else {
|
|
let newRow = tbody.insertRow();
|
|
let newCell = newRow.insertCell();
|
|
newCell.setAttribute("colspan", "2");
|
|
newCell.innerHTML = "no data available";
|
|
}
|
|
});
|
|
}
|
|
|
|
export function showUser(api, userID) {
|
|
const token = localStorage.getItem("token");
|
|
let id = window.location.pathname.split("/").pop();
|
|
let delBtn = document.getElementById("deleteBtn");
|
|
|
|
if (id === "0") {
|
|
return
|
|
}
|
|
|
|
if (userID !== parseInt(id, 10)) {
|
|
delBtn.classList.remove("d-none")
|
|
}
|
|
const requestOptions = {
|
|
method: 'post',
|
|
headers: {
|
|
'Accept': `application/json`,
|
|
'Content-Type': 'application/json',
|
|
'Authorization': 'Bearer ' + token,
|
|
},
|
|
};
|
|
|
|
fetch(api + `/api/admin/all-users/${id}`, requestOptions)
|
|
.then(response => response.json())
|
|
.then(function (data) {
|
|
console.log(data);
|
|
document.getElementById("first_name").value = data.first_name;
|
|
document.getElementById("last_name").value = data.last_name;
|
|
document.getElementById("email").value = data.email;
|
|
});
|
|
|
|
delBtn.addEventListener("click", function () {
|
|
Swal.fire({
|
|
title: "Are you sure?",
|
|
text: "You won't be able to undo this!",
|
|
icon: "warning",
|
|
showCancelButton: true,
|
|
confirmButtonColor: "#3085d6",
|
|
cancelButtonColor: "#d33",
|
|
confirmButtonText: 'Delete User',
|
|
}).then((result) => {
|
|
console.log("would delete user id", id);
|
|
});
|
|
})
|
|
|
|
}
|
|
|
|
export function saveUser(api, event) {
|
|
const token = localStorage.getItem("token");
|
|
let form = document.getElementById("user_form");
|
|
let id = window.location.pathname.split("/").pop();
|
|
|
|
if (form.checkValidity() === false) {
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
form.classList.add("was-validated");
|
|
return;
|
|
}
|
|
|
|
form.classList.add("was-validated");
|
|
|
|
if (document.getElementById("password").value !== document.getElementById("verify_password").value) {
|
|
Swal.fire("Password do not match!");
|
|
return
|
|
}
|
|
|
|
let payload = {
|
|
id: parseInt(id),
|
|
first_name: document.getElementById("first_name").value,
|
|
last_name: document.getElementById("last_name").value,
|
|
email: document.getElementById("email").value,
|
|
password: document.getElementById("password").value,
|
|
}
|
|
|
|
const requestOptions = {
|
|
method: 'post',
|
|
headers: {
|
|
'Accept': `application/json`,
|
|
'Content-Type': 'application/json',
|
|
'Authorization': 'Bearer ' + token,
|
|
},
|
|
body: JSON.stringify(payload)
|
|
}
|
|
|
|
fetch(api + `/api/admin/all-users/edit/${id}`, requestOptions)
|
|
.then(response => response.json())
|
|
.then(function (data) {
|
|
console.log(data);
|
|
if (data.ok === false) {
|
|
Swal.fire("Error" + data.message)
|
|
} else {
|
|
location.href = "/admin/all-users"
|
|
}
|
|
});
|
|
|
|
}
|