minor: community addresses implementation with Nominatim
This commit is contained in:
parent
f5e7be99c1
commit
1bb70effa5
@ -183,7 +183,8 @@
|
|||||||
"noPermission": "You don't have access to this page",
|
"noPermission": "You don't have access to this page",
|
||||||
"tableHeader1": "Address line 1",
|
"tableHeader1": "Address line 1",
|
||||||
"tableHeader2": "Address line 2",
|
"tableHeader2": "Address line 2",
|
||||||
"buttonDelete": "Delete"
|
"buttonDelete": "Delete",
|
||||||
|
"buttonAdd": "Add"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"project": {
|
"project": {
|
||||||
|
@ -183,7 +183,8 @@
|
|||||||
"noPermission": "No tiene permiso",
|
"noPermission": "No tiene permiso",
|
||||||
"tableHeader1": "Dirección línea 1",
|
"tableHeader1": "Dirección línea 1",
|
||||||
"tableHeader2": "Dirección línea 2",
|
"tableHeader2": "Dirección línea 2",
|
||||||
"buttonDelete": "Eliminar"
|
"buttonDelete": "Eliminar",
|
||||||
|
"buttonAdd": "Añadir"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"project": {
|
"project": {
|
||||||
|
@ -181,7 +181,8 @@
|
|||||||
"noPermission": "Vous n'avez pas la permission",
|
"noPermission": "Vous n'avez pas la permission",
|
||||||
"tableHeader1": "Adresse ligne 1",
|
"tableHeader1": "Adresse ligne 1",
|
||||||
"tableHeader2": "Adresse ligne 2",
|
"tableHeader2": "Adresse ligne 2",
|
||||||
"buttonDelete": "Effacer"
|
"buttonDelete": "Effacer",
|
||||||
|
"buttonAdd": "Ajouter"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"project": {
|
"project": {
|
||||||
|
33
src/scripts/hubl-geocoord.js
Normal file
33
src/scripts/hubl-geocoord.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
Geocoord helper using Nominatim
|
||||||
|
Usage:
|
||||||
|
const madrid = await hubl.geocoord('Madrid');
|
||||||
|
madrid == ["-3.7035825", "40.4167047"]
|
||||||
|
*/
|
||||||
|
window.hubl.geocoord = async (address = false) => {
|
||||||
|
if (address) {
|
||||||
|
const nominatim = await fetch('https://nominatim.openstreetmap.org/?format=geocodejson&limit=1&q=' + encodeURI(address));
|
||||||
|
const response = await nominatim.json();
|
||||||
|
if (response.features[0]) {
|
||||||
|
const coords = response.features[0].geometry.coordinates;
|
||||||
|
if (coords[0] && coords[1]) {
|
||||||
|
return [String(coords[0]), String(coords[1])];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error("Address not found");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.error("Missing address");
|
||||||
|
}
|
||||||
|
return ["-47.15", "-123.716667"];
|
||||||
|
}
|
||||||
|
|
||||||
|
window.hubl.geocalc = (element) => {
|
||||||
|
const editionForm = element.parentElement.parentElement.parentElement.parentElement;
|
||||||
|
window.hubl.geocoord(editionForm.querySelector('input[name="address_line1"]').value + " " + editionForm.querySelector('input[name="address_line2"]').value).then(coords => {
|
||||||
|
editionForm.querySelector('input[name="lat"]').value = coords[0];
|
||||||
|
editionForm.querySelector('input[name="lng"]').value = coords[1];
|
||||||
|
editionForm.querySelector('input[type="submit"]').click();
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
@ -133,7 +133,7 @@ div.bg-color-white
|
|||||||
solid-form.form.table-body.edit-address(
|
solid-form.form.table-body.edit-address(
|
||||||
bind-resources
|
bind-resources
|
||||||
nested-field="addresses"
|
nested-field="addresses"
|
||||||
fields="segment1(address_line1), segment2(address_line2), segment3(deleteButton)"
|
fields="segment1(address_line1), segment2(address_line2), lat, lng, segment3(addButton)"
|
||||||
|
|
||||||
placeholder-address_line1=""
|
placeholder-address_line1=""
|
||||||
placeholder-address_line2=""
|
placeholder-address_line2=""
|
||||||
@ -145,12 +145,15 @@ div.bg-color-white
|
|||||||
class-address_line1="segment full text-small"
|
class-address_line1="segment full text-small"
|
||||||
class-address_line2="segment full text-small"
|
class-address_line2="segment full text-small"
|
||||||
|
|
||||||
|
class-lat="hidden"
|
||||||
|
class-lng="hidden"
|
||||||
|
|
||||||
widget-community="solid-form-hidden"
|
widget-community="solid-form-hidden"
|
||||||
widget-address_line1="solid-form-placeholder-text"
|
widget-address_line1="solid-form-placeholder-text"
|
||||||
widget-address_line2="solid-form-placeholder-text"
|
widget-address_line2="solid-form-placeholder-text"
|
||||||
|
widget-lat="solid-form-hidden"
|
||||||
action-deleteButton=""
|
widget-lng="solid-form-hidden"
|
||||||
widget-deleteButton=`hubl-communities-edit-delete-button`
|
widget-addButton=`hubl-communities-edit-add-button`
|
||||||
|
|
||||||
data-trans="placeholder-address_line1=communities.edit.labelAddressLine1;placeholder-address_line2=communities.edit.labelAddressLine2"
|
data-trans="placeholder-address_line1=communities.edit.labelAddressLine1;placeholder-address_line2=communities.edit.labelAddressLine2"
|
||||||
)
|
)
|
||||||
|
@ -22,6 +22,7 @@ include widgets/hubl-circle-team-contact.pug
|
|||||||
include widgets/hubl-circle-user-admin.pug
|
include widgets/hubl-circle-user-admin.pug
|
||||||
include widgets/hubl-communities-counter-alternate.pug
|
include widgets/hubl-communities-counter-alternate.pug
|
||||||
include widgets/hubl-communities-edit-button.pug
|
include widgets/hubl-communities-edit-button.pug
|
||||||
|
include widgets/hubl-communities-edit-add-button.pug
|
||||||
include widgets/hubl-communities-edit-email.pug
|
include widgets/hubl-communities-edit-email.pug
|
||||||
include widgets/hubl-communities-edit-website.pug
|
include widgets/hubl-communities-edit-website.pug
|
||||||
include widgets/hubl-communities-logo.pug
|
include widgets/hubl-communities-logo.pug
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
if componentSet.has('communities') && getRoute('communities')
|
||||||
|
solid-widget(name='hubl-communities-edit-add-button')
|
||||||
|
template
|
||||||
|
div(
|
||||||
|
class="segment text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-color-secondary bordered"
|
||||||
|
)
|
||||||
|
button.form-sub(
|
||||||
|
data-trans="communities.edit.buttonAdd"
|
||||||
|
type="button"
|
||||||
|
onclick="window.hubl.geocalc(this);"
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user