// Address management functions
function refreshAdminAddresses(){
api('list_addresses').then(res=>{
if(!res || !res.ok) {
console.warn('Failed to load addresses', res);
return;
}
const tbody = document.querySelector('#addresses_table tbody');
if(!tbody) return;
tbody.innerHTML = '';
(res.addresses || []).forEach(a=>{
const tr = document.createElement('tr');
tr.innerHTML = [
`
${escapeHtml(a.address || '')} | `,
`${escapeHtml(a.type || '')} | `,
` | `
].join('');
tbody.appendChild(tr);
const editBtn = tr.querySelector('button[data-action="edit"]');
if(editBtn) editBtn.addEventListener('click', ()=> {
document.getElementById('address_edit_panel').style.display = 'block';
document.getElementById('edit_address_text').value = a.address || '';
document.getElementById('edit_address_type').value = a.type || '';
document.getElementById('save_address_edit').dataset.id = a.id;
});
const delBtn = tr.querySelector('button[data-action="delete"]');
if(delBtn) delBtn.addEventListener('click', ()=> {
if(confirm('Delete this address?')){
api('delete_address', {id: a.id}).then(r=>{
refreshAdminAddresses();
});
}
});
});
}).catch(err=> console.error('refreshAdminAddresses error', err));
}
document.getElementById('add_address_btn').addEventListener('click', function(){
const address = document.getElementById('add_address_text').value;
const type = document.getElementById('add_address_type').value;
api('create_address', {address, type}).then(res=>{
if(res.ok){
document.getElementById('address_add_status').textContent = 'Address added.';
document.getElementById('add_address_text').value = '';
document.getElementById('add_address_type').value = '';
refreshAdminAddresses();
}else{
document.getElementById('address_add_status').textContent = 'Error adding address.';
}
});
});
document.getElementById('save_address_edit').addEventListener('click', function(){
const id = this.dataset.id;
const address = document.getElementById('edit_address_text').value;
const type = document.getElementById('edit_address_type').value;
api('update_address', {id, address, type}).then(res=>{
if(res.ok){
document.getElementById('address_manage_status').textContent = 'Address updated.';
document.getElementById('address_edit_panel').style.display = 'none';
refreshAdminAddresses();
}else{
document.getElementById('address_manage_status').textContent = 'Error updating address.';
}
});
});
// Refresh addresses when tab is activated
document.querySelector('.tab[data-tab="addresses"]').addEventListener('click', refreshAdminAddresses);