diff --git a/src/routes.rs b/src/routes.rs index 0527969..91f1219 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -89,8 +89,8 @@ async fn update_place(mut db: Connection, place: Json) -> ResultTienda
+ URL: + +
Descripción: > { @@ -24,7 +25,8 @@ function toFeature(place: PlaceModel): Feature { "address": place.address, "open_hours": place.open_hours, "icon": place.icon, - "description": place.description + "description": place.description, + "url": place.url, }, "geometry": { "type": "Point", @@ -68,6 +70,8 @@ function getPlaceFromForm(): PlaceModel { (document.getElementById("lat") as HTMLInputElement).value); const longitude = parseFloat( (document.getElementById("long") as HTMLSelectElement).value); + const url = + (document.getElementById("url") as HTMLInputElement).value; return { id: id, @@ -78,6 +82,7 @@ function getPlaceFromForm(): PlaceModel { description: description, latitude: latitude, longitude: longitude, + url: url, }; } @@ -88,6 +93,7 @@ function clearForm(): void { const longInput = (document.getElementById("long") as HTMLInputElement); const nameInput = (document.getElementById("name") as HTMLInputElement); const addressInput = (document.getElementById("address") as HTMLInputElement); + const urlInput = (document.getElementById("url") as HTMLInputElement); const openHoursArea = (document.getElementById("open_hours") as HTMLTextAreaElement); const descriptionArea = (document.getElementById("description") as HTMLTextAreaElement); @@ -97,6 +103,7 @@ function clearForm(): void { longInput.value = ""; nameInput.value = ""; addressInput.value = ""; + urlInput.value = ""; openHoursArea.value = ""; descriptionArea.value = ""; @@ -168,6 +175,14 @@ async function getAddressReverse(lat: number, long: number): Promise { return `${address.road} ${address.house_number}, ${address.city}`; } +function toLink(url: string): string { + let content = url; + const m = url.match("https://instagram.com/(.*)"); + if (m) { + content = `@${m[1]}`; + } + return `${content}` +} async function setupMap(): Promise { /* Create/Edit form */ const modal = document.getElementById("modal"); @@ -204,6 +219,7 @@ async function setupMap(): Promise { /*Get the form elements*/ const idInput = (document.getElementById("id") as HTMLInputElement); const nameInput = (document.getElementById("name") as HTMLInputElement); + const urlInput = (document.getElementById("url") as HTMLInputElement); const openHoursArea = (document.getElementById("open_hours") as HTMLTextAreaElement); const iconSelect = (document.getElementById("icon") as HTMLSelectElement); const descriptionArea = (document.getElementById("description") as HTMLTextAreaElement); @@ -212,6 +228,7 @@ async function setupMap(): Promise { idInput.value = place.id.toString(); nameInput.value = place.name; addressInput.value = place.address; + urlInput.value = place.url; openHoursArea.value = place.open_hours; iconSelect.value = place.icon; descriptionArea.value = place.description; @@ -287,19 +304,22 @@ async function setupMap(): Promise { function onEachFeature(feature: Feature, layer: L.Layer) { if (feature.properties) { - let popupStr = "" + feature.properties.name + ""; + let popupStr = `${feature.properties.name}`; popupStr += "" if (feature.properties.address) - popupStr += "Dirección: " + feature.properties.address + ""; + popupStr += `Dirección:${feature.properties.address}`; if (feature.properties.open_hours) - popupStr += "Horario: " + feature.properties.open_hours + ""; + popupStr += `Horario:${feature.properties.open_hours}`; if (feature.properties.description) - popupStr += "" + feature.properties.description + ""; + popupStr += `${feature.properties.description}`; + if (feature.properties.url) + popupStr += `${toLink(feature.properties.url)}`; const lnglat = (feature.geometry as Point).coordinates; - popupStr += "GMaps" + const lng = lnglat[0]; + const lat = lnglat[0]; + popupStr += `GMaps` popupStr += ""; layer.bindPopup(popupStr);