// 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);