'use strict'; /** * @namespace UI */ const UI = {}; const centerIcon = ``; /** * Add a control to center the map * @param {Map} map * @param {LatLngExpression} centerCoords * @param {number} zoom Zoom level */ UI.addCenterMapControl = function (map, centerCoords, zoom) { L.Control.CenterControl = L.Control.extend({ options: { position: 'topleft' }, onAdd: function (map) { let controlDiv = L.DomUtil.create('div', 'leaflet-draw-toolbar leaflet-bar'); L.DomEvent .addListener(controlDiv, 'click', L.DomEvent.stopPropagation) .addListener(controlDiv, 'click', L.DomEvent.preventDefault) .addListener(controlDiv, 'click', function () { map.setView(centerCoords, zoom, {animate: true}); } ); let controlUI = L.DomUtil.create('a', 'leaflet-draw-edit-remove', controlDiv); controlUI.title = 'Centra la mappa'; controlUI.href = '#'; controlUI.innerHTML = centerIcon; return controlDiv; } }); let centerCtr = new L.Control.CenterControl(); map.addControl(centerCtr); } /** * * @param {string} triggerId The ID of the trigger element */ UI.toggleMenu = function (triggerId) { const trigger = document.querySelector(`#${triggerId}`); trigger.addEventListener('click', () => { const menu = document.querySelector('#menu'); menu.classList.toggle('is-hidden'); menu.classList.toggle('is-2'); document.querySelector('#map').parentElement.classList.toggle('is-full'); }) } /** * Open a modal with DB data * @param {object} data The data retrieved from the DB to display as modal content */ UI.openModal = async function (data) { const modal = document.querySelector('.modal'); // DEBUG modal.querySelector('.modal-content').innerHTML = `
Denominazione | ${data.denominazione} |
---|---|
Località | ${data.localita} |
Indirizzo | ${data.indirizzo} |
Comune | ${data.comune} |
Localizzazione | ${data.localizzazione} |
Definizione | ${data.definizione} |
Periodo | ${data.periodo} |
Fase | ${data.fase} |
Cronologia | ${data.cronologia} |
Motivazione cronologia | ${data.motivazione_cron} |
Ritrovamento | ${data.ritrovamento} |
Materiali rinvenuti | ${data.materiali_rinv} |
Luogo custodia materiali | ${data.luogo_custodia_mat} |
Tutela vigente | ${data.tutela_vigente} |
Descrizione | ${data.descrizione} |