${current_page+1}`
paginationElement.append(nextElement)
}
// ...
if(current_page+2<=end_page){
let secondDotElement = document.createElement('li')
secondDotElement.classList.add('uk-disabled')
secondDotElement.innerHTML = `…`;
paginationElement.append(secondDotElement)
}
//end
let endElement = document.createElement('li')
if(current_page>=end_page){
endElement.innerHTML = `${end_page}`;
endElement.classList.add('uk-disabled');
}else {
endElement.innerHTML = `${end_page}`;
}
paginationElement.append(endElement)
//next button
let nextElement = document.createElement('li')
if(current_page>=end_page){
nextElement.innerHTML = ``;
nextElement.classList.add('uk-disabled');
}else {
nextElement.innerHTML = ``;
}
paginationElement.append(nextElement)
}
async function setPage(pageNumber){
current_page = pageNumber;
await getItems()
await reloadCards()
}
async function updateTableElements(){
let items_list = document.getElementById("items_list");
items_list.innerHTML = "";
let main_table = document.createElement('table')
main_table.setAttribute('class', 'uk-table uk-table-striped')
let table_head = document.createElement('thead')
let head_row = document.createElement('tr')
let nameCell = document.createElement('th')
nameCell.innerHTML="Name"
let descriptionCell = document.createElement('th')
descriptionCell.innerHTML = 'Description'
descriptionCell.setAttribute('class', 'uk-visible@m')
let qtyUOMCell = document.createElement('th')
qtyUOMCell.innerHTML = 'QTY/UOM'
let opsCell = document.createElement('th')
opsCell.innerHTML = 'Operations'
head_row.append(nameCell, descriptionCell, qtyUOMCell, opsCell)
table_head.append(head_row)
main_table.append(table_head)
let table_body = document.createElement('tbody')
for (let i = 0; i < items.length; i++){
let table_row = document.createElement('tr')
let nameCell = document.createElement('td')
nameCell.innerHTML = items[i].item_name
nameCell.setAttribute('class', 'uk-width-1-4')
let descriptionCell = document.createElement('td')
descriptionCell.innerHTML = items[i].description
descriptionCell.setAttribute('class', 'uk-text-truncate uk-table-expand uk-visible@m')
let qtyUOMCell = document.createElement('td')
qtyUOMCell.innerHTML = `${parseFloat(items[i].total_qoh)} ${items[i].fullname}`
let opsCell = document.createElement('td')
opsCell.setAttribute('class', 'uk-width-1-4')
let buttonGroup = document.createElement('div')
buttonGroup.setAttribute('class', 'uk-button-group')
let viewOp = document.createElement('a')
viewOp.innerHTML = `edit `
viewOp.setAttribute('class', 'uk-button uk-button-default uk-button-small')
viewOp.href = `/item/${items[i].id}`
let historyOp = document.createElement('a')
historyOp.innerHTML = `history `
historyOp.setAttribute('class', 'uk-button uk-button-default uk-button-small')
historyOp.href = `/transactions/${items[i].id}`
buttonGroup.append(viewOp, historyOp)
opsCell.append(buttonGroup)
table_row.append(nameCell, descriptionCell, qtyUOMCell, opsCell)
table_body.append(table_row)
}
main_table.append(table_body)
items_list.append(main_table)
}
async function updateListElements(){
let items_list = document.getElementById("items_list");
items_list.innerHTML = "";
let main_list = document.createElement('div')
main_list.setAttribute('class', 'uk-child-width-1-3@m')
main_list.setAttribute('uk-grid', 'masonry: pack')
let placceholderDIV = document.createElement('div')
for (let i = 0; i < items.length; i++){
let outerShell = document.createElement('div')
let listItem = document.createElement('div');
listItem.classList.add('uk-card')
listItem.classList.add('uk-card-default')
listItem.classList.add('uk-card-small')
listItem.classList.add('uk-card-hover')
listItem.style = "border-radius: 10px;"
let header = document.createElement('div')
header.classList.add('uk-card-header')
header.style = "border-radius: 0px, 10px, 0px, 10px;"
header.innerHTML = `${items[i].item_name}
Quantity on Hand: ${parseFloat(items[i].total_qoh)} ${items[i].fullname}
`
let content = document.createElement('div')
content.classList.add('uk-card-body')
content.innerHTML = `${items[i].description}
`
let footer = document.createElement('div')
footer.classList.add('uk-card-footer')
footer.innerHTML = `edit
History`
listItem.append(header)
if(!items[i].description == ""){
listItem.append(content)
}
listItem.append(footer)
outerShell.append(listItem)
placceholderDIV.append(outerShell)
}
main_list.innerHTML = placceholderDIV.innerHTML
items_list.append(main_list)
}
let sort = "id"
async function setSort(sort_string) {
sort = sort_string
await getItems()
await reloadCards()
}
let order = "ASC"
async function setOrder(order_string) {
order = order_string
await getItems()
await reloadCards()
}
async function getItems(){
const url = new URL('/items/getItemsWithQOH', window.location.origin);
url.searchParams.append('page', current_page);
url.searchParams.append('limit', limit);
url.searchParams.append('search_text', searchText);
url.searchParams.append('sort', sort);
url.searchParams.append('order', order);
url.searchParams.append('view', view);
await fetch(url)
.then(response => response.json())
.then(data => {
items = data.items;
end_page = data.end;
})
};
async function openAddItemModal() {
UIkit.modal(document.getElementById('addItemModal')).show();
}
async function openAddPrefixModal() {
UIkit.modal(document.getElementById('addPrefixModal')).show();
}
async function addSKUPrefix() {
let uuid = `%${document.getElementById('addUUID').value}%`
let name = `${document.getElementById('addPrefixName').value}`
let description = `${document.getElementById('addPrefixDescription').value}`
const response = await fetch(`/items/addSKUPrefix`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
uuid: uuid,
name: name,
description: description,
}),
});
data = await response.json();
transaction_status = "success"
if (data.error){
transaction_status = "danger"
}
UIkit.notification({
message: data.message,
status: transaction_status,
pos: 'top-right',
timeout: 5000
});
UIkit.modal(document.getElementById('addPrefixModal')).hide();
}
async function addBlankItem() {
let barcode = `%${document.getElementById('addBarcode').value}%`
let name = `${document.getElementById('addName').value}`
let subtype = `${document.getElementById('subtype_select').value}`
const response = await fetch(`/items/addBlankItem`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
barcode: barcode,
name: name,
subtype: subtype,
}),
});
data = await response.json();
transaction_status = "success"
if (data.error){
transaction_status = "danger"
}
UIkit.notification({
message: data.message,
status: transaction_status,
pos: 'top-right',
timeout: 5000
});
UIkit.modal(document.getElementById('addItemModal')).hide();
}
async function changeSite(site){
console.log(site)
const response = await fetch(`/changeSite`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
site: site,
}),
});
data = await response.json();
transaction_status = "success"
if (data.error){
transaction_status = "danger"
}
UIkit.notification({
message: data.message,
status: transaction_status,
pos: 'top-right',
timeout: 5000
});
location.reload(true)
}