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;