76 lines
2.8 KiB
JavaScript
76 lines
2.8 KiB
JavaScript
import { formatCurrency, paginator } from "./common.js"
|
|
|
|
//TODO: This should be put into the localStorage if we click into a sale and
|
|
//get back, we may want to stay at the same page before.
|
|
export let currentPage = 1;
|
|
|
|
export function showTable(api, ps, cp) {
|
|
const token = localStorage.getItem("token");
|
|
const tbody = document.getElementById("sales-table").getElementsByTagName("tbody")[0];
|
|
|
|
// reset tbody
|
|
tbody.innerHTML = ``
|
|
|
|
const body = {
|
|
page_size: parseInt(ps, 10),
|
|
page: parseInt(cp, 10),
|
|
};
|
|
|
|
const requestOptions = {
|
|
method: 'post',
|
|
headers: {
|
|
'Accept': `application/json`,
|
|
'Content-Type': 'application/json',
|
|
'Authorization': 'Bearer ' + token,
|
|
},
|
|
body: JSON.stringify(body),
|
|
};
|
|
|
|
fetch(api + "/api/admin/all-sales", requestOptions)
|
|
.then(response => response.json())
|
|
.then(function (data) {
|
|
if (data.orders) {
|
|
data.orders.forEach(function (i) {
|
|
let newRow = tbody.insertRow();
|
|
let newCell = newRow.insertCell();
|
|
|
|
newCell.innerHTML = `<a href="#!">Order ${i.id}</a>`;
|
|
newCell.addEventListener("click", function (evt) {
|
|
// put the current_page into sessionStorage
|
|
sessionStorage.setItem("cur-page", data.current_page);
|
|
|
|
// redirect
|
|
location.href = `/admin/sales/${i.id}`;
|
|
});
|
|
|
|
newCell = newRow.insertCell();
|
|
let item = document.createTextNode(i.customer.last_name + ", " + i.customer.first_name);
|
|
newCell.appendChild(item)
|
|
|
|
newCell = newRow.insertCell();
|
|
item = document.createTextNode(i.widget.name);
|
|
newCell.appendChild(item)
|
|
|
|
let cur = formatCurrency(i.transaction.amount)
|
|
newCell = newRow.insertCell();
|
|
item = document.createTextNode(cur);
|
|
newCell.appendChild(item)
|
|
|
|
newCell = newRow.insertCell();
|
|
if (i.status_id != 1) {
|
|
newCell.innerHTML = `<span class="badge bg-danger">Refunded</span>`
|
|
} else {
|
|
newCell.innerHTML = `<span class="badge bg-success">Charged</span>`
|
|
}
|
|
paginator(api, data.last_page, data.current_page, showTable)
|
|
});
|
|
} else {
|
|
let newRow = tbody.insertRow();
|
|
let newCell = newRow.insertCell();
|
|
newCell.setAttribute("colspan", "5");
|
|
newCell.innerHTML = "No data available";
|
|
}
|
|
});
|
|
}
|
|
|