inventory-thing/static/add.js

209 lines
6.1 KiB
JavaScript

async function add_asset() {
let serial = document.getElementById("add-asset-serial");
let tag = document.getElementById("add-asset-tag");
let category = document.getElementById("add-asset-category");
let model = document.getElementById("add-asset-model");
if (serial.value == "") {
alert("Add asset error:\nThe seiral field cannot be empty!");
return;
}
let serial_data = (serial.value == "") ? null : serial.value;
let tag_data = (tag.value == "") ? null : tag.value;
let category_data = (category.value == "N/A") ? null : category.value;
let model_data = (model.value == "N/A") ? null : model.value;
let data = {
"tag": tag_data,
"serial": serial_data,
"category": category_data,
"model": model_data
}
await fetch("/add_asset", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
})
.then(response => response.text())
.then(data => {
console.log(data);
})
serial.value = "";
tag.value = "";
category.value = "N/A";
model.value = "N/A";
}
async function add_user() {
let id = document.getElementById("add-user-id");
let username = document.getElementById("add-user-name");
let asset = document.getElementById("add-assigned-asset");
let card = document.getElementById("add-assigned-card");
if (username.value == "") {
alert("Add user error:\nUser name field cannot be null!");
return;
}
let id_data = (id.value == "") ? null : id.value;
let username_data = (username.value == "") ? null : username.value;
let asset_data = (asset.value == "null") ? null : asset.value;
let card_data = (card.value == "null") ? null : card.value;
let data = {
"id": id_data,
"name": username_data,
"asset": asset_data,
"card": card_data
}
await fetch("/add_user", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
})
.then(response => response.text())
.then(data => {
console.log(data);
})
id.value = "";
username.value = "";
asset.value = "";
card.value = "";
await populate_data();
}
async function add_card() {
let display = document.getElementById("add-display-number");
let card = document.getElementById("add-card-number");
if (card.value == "") {
alert("Add card error:\nCard number field cannot be null");
return;
}
let display_data = (display.value == "") ? null : parseInt(display.value);
let card_data = (card.value == "") ? null : parseInt(card.value);
if (existing_cards.includes(card_data)) {
console.log("alert thrown");
alert("Add card error\nCard number: " + card_data + " already exists!");
return;
}
// For card validation
await fetch('/card_list')
.then(response => response.json())
.then(data => {
if (data.includes(card_data)) {
console.log("alert thrown");
alert("Add card error\nCard number: " + card_data + " already exists!");
return;
}
});
data = {
"card_number": card_data,
"display_number": display_data
}
await fetch("/add_card", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
})
.then(response => response.text())
.then(data => {
console.log(data);
});
display.value = "";
await get_next_card();
}
function post_data_format(argsObject) {
args = []
for (let property in argsObject) {
args.push(`${property}=${argsObject[property]}`)
}
return "?" + args.join('&');
}
async function populate_available_assets() {
let elements = document.getElementsByClassName("available-asset-list-data");
while (elements[0]) {
elements[0].remove();
}
await fetch('/get_available_assets')
.then(response => response.json())
.then(data => {
let add_asset_list = document.getElementById("add-assigned-asset");
let mod_asset_list = document.getElementById("modify-assigned-asset");
for (let entry of data) {
let option = document.createElement("option");
option.innerHTML = entry;
option.value = entry;
option.classList.add("available-asset-list-data");
mod_asset_list.appendChild(option.cloneNode(true));
add_asset_list.appendChild(option);
}
});
}
async function populate_available_cards() {
let elements = document.getElementsByClassName("available-card-list-data");
while (elements[0]) {
elements[0].remove();
}
existing_cards = [];
await fetch('/get_available_cards')
.then(response => response.json())
.then(data => {
let add_card_list = document.getElementById("add-assigned-card");
let mod_card_list = document.getElementById("modify-assigned-card");
for (let entry of data) {
let option = document.createElement("option");
option.innerHTML = entry;
option.value = entry;
option.classList.add("available-card-list-data");
mod_card_list.appendChild(option.cloneNode(true));
add_card_list.appendChild(option);
existing_cards.push(entry);
}
});
}
async function get_next_card() {
await fetch('/card_list')
.then(response => response.json())
.then(data => {
console.log(data);
let next_card = parseInt(data.slice(-1)) + 1;
document.getElementById('add-card-number')
.value = next_card;
});
}
async function populate_data() {
await populate_available_assets();
await populate_available_cards();
await get_next_card();
}
let existing_cards = [];
populate_data();