Sha256: 3d285fa86c91d8a864931fa7a8a88e2ed005be1eee610f3e2c5f8cd802ebd545
Contents?: true
Size: 1.57 KB
Versions: 5
Compression:
Stored size: 1.57 KB
Contents
$(() => { const info = ($target, msg) => { const $label = $target.closest("label") $label.find(".form-error").remove(); if (msg) { $('<span class="form-error"/>').text(msg).appendTo($label).show(); } }; const setLocating = ($button, enable) => { if (enable) { $button.addClass("loading-spinner"); $button.attr("disabled", true); } else { $button.removeClass("loading-spinner"); $button.attr("disabled", false); } } $(".user-device-location button").on("click", (e) => { const $this = $(e.target); if ($this.is(":disabled")) { return; } const $input = $(`#${e.target.dataset.input}`); const errorNoLocation = e.target.dataset.errorNoLocation; const errorUnsupported = e.target.dataset.errorUnsupported; const url = e.target.dataset.url; if (navigator.geolocation) { setLocating($this, true); navigator.geolocation.getCurrentPosition((position) => { const coordinates = [position.coords.latitude, position.coords.longitude]; // reverse geolocation $.post(url, { latitude: coordinates[0], longitude: coordinates[1] }, (data) => { $input.val(data.address) }) setLocating($this, false); $input.trigger( "geocoder-suggest-coordinates.decidim", [coordinates] ); }, (evt) => { info($input, `${errorNoLocation} ${evt.message}`); $this.attr("disabled", false); }, { enableHighAccuracy: true }); } else { info($input, errorUnsupported); } }); });
Version data entries
5 entries across 5 versions & 1 rubygems