diff --git a/api/api.go b/api/api.go index 2e0a268c..7e61ea0c 100644 --- a/api/api.go +++ b/api/api.go @@ -103,8 +103,15 @@ func apiGetDistrict(w http.ResponseWriter, r *http.Request) { render.Render(w, r, errRender(fmt.Errorf("Failed to get district: %w", err))) return } + if district == nil { + http.NotFound(w, r) + return + } d := ResponseDistrict{ - Agency: district.Agency.GetOr(""), + Agency: district.Agency.GetOr(""), + Manager: district.GeneralMG.GetOr(""), + Phone: district.Phone1.GetOr(""), + Website: district.Website.GetOr(""), } if err := render.Render(w, r, d); err != nil { render.Render(w, r, errRender(err)) diff --git a/api/types.go b/api/types.go index b511b456..1f23fdc9 100644 --- a/api/types.go +++ b/api/types.go @@ -63,7 +63,10 @@ type NoteAudioPayload struct { } type ResponseDistrict struct { - Agency string `json:"agency"` + Agency string `json:"agency"` + Manager string `json:"manager"` + Phone string `json:"phone"` + Website string `json:"website"` } type ResponseMosquitoSource struct { diff --git a/sync/template/district.html b/sync/template/district.html index c9c6aaec..b1cf612c 100644 --- a/sync/template/district.html +++ b/sync/template/district.html @@ -40,8 +40,23 @@ async function fetchDistrict(lng, lat) { try { const url = `/api/district?lat=${lat}&lng=${lng}` const response = await fetch(url); + var agencyEl = document.querySelector("#district-agency"); + var managerEl = document.querySelector("#district-manager"); + var phoneEl = document.querySelector("#district-phone"); + var websiteEl = document.querySelector("#district-website"); + if (response.status == 404) { + agencyEl.innerHTML = "no matching district"; + managerEl.innerHTML = "-"; + phoneEl.innerHTML = "-"; + websiteEl.innerHTML = "-"; + return + } const data = await response.json(); console.log("district", data); + agencyEl.innerHTML = data.agency; + managerEl.innerHTML = data.manager; + phoneEl.innerHTML = data.phone; + websiteEl.innerHTML = data.website; } catch (error) { console.error('Error fetching geocoding suggestions:', error); } @@ -117,17 +132,20 @@ function onLoad() { addressSuggestionEnable(address, suggestionsContainer);*/ const addressDisplay = document.querySelector("address-display"); const addressInput = document.querySelector("address-input"); - const mapComponent = document.querySelector("map-component"); addressInput.addEventListener("address-selected", (event) => { const l = event.detail.location; // Center map on selected address - //mapComponent.jumpTo(coordinates); + map.jumpTo({ + center: l.geometry.coordinates, + zoom: 14, + }); // Add marker for selected address - /*mapComponent.addMarker(coordinates, { - title: event.detail.address - });*/ + const marker = new mapboxgl.Marker({ + color: "#FF0000", + draggable: false + }).setLngLat(l.geometry.coordinates).addTo(map); addressDisplay.show(l); fetchDistrict(l.geometry.coordinates[0], l.geometry.coordinates[1]); @@ -139,6 +157,13 @@ document.addEventListener("DOMContentLoaded", onLoad); body { background-color: #f8f9fa; } +.detail-label { + font-size: 0.8rem; + text-transform: uppercase; + color: #6c757d; + margin-bottom: 2px; + font-weight: 600; +} .dashboard-container { padding: 20px 0; } @@ -225,8 +250,35 @@ body {
-
- +
+
+
+ +
+
+
+
+
District Details
+
+
+
Agency
+
-
+
+
+
Manager
+
-
+
+
+
Phone
+
-
+
+
+
Website
+
-
+
+
+
+
{{end}}