addressbook/public/assets/js/functions.js

121 lines
4.0 KiB
JavaScript

/*
* Copyright (c) 2022. Micha Espey <tracer@24unix.net>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
*/
function addAddress(url) {
location.href = url
}
function editAddress(id) {
console.log("editButon")
if (document.getElementById('edit_button_' + id).value === 'Save') {
// save
console.log("save")
const url = "/address/update";
fetch(url, {
method: "POST",
body: JSON.stringify({
id: id,
owner: document.getElementById('owner_' + id).value,
first: document.getElementById('first_' + id).value,
last: document.getElementById('last_' + id).value,
street: document.getElementById('street_' + id).value,
zip: document.getElementById('zip_' + id).value,
city: document.getElementById('city_' + id).value,
phone: document.getElementById('phone_' + id).value,
})
})
.then(
response => response.text()
).then(
html => console.log(html)
);
document.getElementById('first_' + id).disabled = true
document.getElementById('last_' + id).disabled = true
document.getElementById('street_' + id).disabled = true
document.getElementById('zip_' + id).disabled = true
document.getElementById('city_' + id).disabled = true
document.getElementById('phone_' + id).disabled = true
document.getElementById('edit_button_' + id).value = 'Edit'
} else {
//switch to edit
console.log("switch to edit")
document.getElementById('first_' + id).disabled = false
document.getElementById('last_' + id).disabled = false
document.getElementById('street_' + id).disabled = false
document.getElementById('zip_' + id).disabled = false
document.getElementById('city_' + id).disabled = false
document.getElementById('phone_' + id).disabled = false
document.getElementById('edit_button_' + id).value = 'Save'
}
}
function deleteAddress(id) {
console.log("del")
if (confirm('Are you sure?')) {
const url = "/address/delete";
fetch(url, {
method: "POST",
body: JSON.stringify({
id: id
})
})
.then(
response => response.text()
).then(
html => console.log(html)
);
let row = document.getElementById('row_' + id)
row.parentNode.removeChild(row)
}
}
function sortBy(column) {
// switch direction on every call
let currentSortOrder = document.getElementById(column + '_sort')
if (currentSortOrder.innerHTML === 'asc') {
currentSortOrder.innerHTML = 'desc'
} else {
currentSortOrder.innerHTML = 'asc'
}
const table = document.getElementById('address_table');
let dirty = true;
// loop until clean
while (dirty) {
// assume we are finished
dirty = false
const rows = table.rows;
for (let i = 1; i < (rows.length - 2); i++) {
let x = rows[i]
let rowXId = x.id
let rowXNumber = rowXId.charAt(rowXId.length -1)
let valueX = document.getElementById(column + '_' + rowXNumber).value
let y = rows[i + 1]
let rowYId = y.id
let rowYNumber = rowYId.charAt(rowYId.length -1)
let valueY = document.getElementById(column + '_' + rowYNumber).value
let currentSortOrder = document.getElementById(column + '_sort')
let sortOrder = 0
if (currentSortOrder.innerHTML === 'asc') {
sortOrder = 1
} else {
sortOrder = -1
}
if (valueX.localeCompare(valueY) === sortOrder) {
x.parentNode.insertBefore(y, x);
dirty = true
}
}
}
}