diff --git a/app/static/js/contacts.js b/app/static/js/contacts.js index e2b1933..c4aa776 100644 --- a/app/static/js/contacts.js +++ b/app/static/js/contacts.js @@ -974,13 +974,23 @@ function createExistingContactCard(contact, index) { copyBtn.innerHTML = ' Copy Key'; copyBtn.onclick = () => copyContactKey(contact.public_key_prefix, copyBtn); + actionsDiv.appendChild(copyBtn); + + // Map button (only if GPS coordinates available) + if (contact.adv_lat && contact.adv_lon && (contact.adv_lat !== 0 || contact.adv_lon !== 0)) { + const mapBtn = document.createElement('button'); + mapBtn.className = 'btn btn-sm btn-outline-primary'; + mapBtn.innerHTML = ' Map'; + mapBtn.onclick = () => openGoogleMaps(contact.adv_lat, contact.adv_lon); + actionsDiv.appendChild(mapBtn); + } + // Delete button const deleteBtn = document.createElement('button'); deleteBtn.className = 'btn btn-sm btn-outline-danger'; deleteBtn.innerHTML = ' Delete'; deleteBtn.onclick = () => showDeleteModal(contact); - actionsDiv.appendChild(copyBtn); actionsDiv.appendChild(deleteBtn); // Assemble card @@ -1014,6 +1024,14 @@ function copyContactKey(publicKeyPrefix, buttonEl) { }); } +function openGoogleMaps(lat, lon) { + // Create Google Maps URL with coordinates + const mapsUrl = `https://www.google.com/maps?q=${lat},${lon}`; + + // Open in new tab + window.open(mapsUrl, '_blank'); +} + function showDeleteModal(contact) { contactToDelete = contact;