Update menu
TODO: coords for sites
This commit is contained in:
parent
211379b986
commit
7f4bd571f0
@ -46,27 +46,13 @@
|
||||
<span class="icon mr-2">
|
||||
<i class="fa fa-list"></i>
|
||||
</span>
|
||||
Apri menu
|
||||
Elenco beni
|
||||
</button>
|
||||
<button class="button is-outlined is-rounded is-link mr-4 mt-1" id="howto" title="Istruzioni">
|
||||
<span class="icon is-large has-text-link">
|
||||
<i class="fas fa-question fa-lg"></i>
|
||||
</span>
|
||||
</button>
|
||||
<!--
|
||||
<button class="navbar-item button is-size-5 is-white" role="button"
|
||||
data-action="click->menu#toggleMenu" data-id="siti">
|
||||
Beni archeologici
|
||||
</button>
|
||||
<button class="navbar-item button is-size-5 is-white" role="button"
|
||||
data-action="click->menu#toggleMenu" data-id="non-conser">
|
||||
Beni non conservati
|
||||
</button>
|
||||
<button class="navbar-item button is-size-5 is-white mr-3" role="button"
|
||||
data-action="click->menu#toggleMenu" data-id="rinv">
|
||||
Rinvenimenti
|
||||
</button>
|
||||
-->
|
||||
</div>
|
||||
</nav>
|
||||
<div class="wait-lg text-center is-hidden" style="clear: both;">
|
||||
@ -89,8 +75,13 @@
|
||||
</p>
|
||||
<ul class="menu-list is-hidden" id="siti-list" data-menu-target="list">
|
||||
<li>
|
||||
Anacapri
|
||||
<ul id="siti-anacapri-sub">
|
||||
<span class="is-clickable" data-action="click->menu#openSubList" data-list-id="siti-anacapri-sub">
|
||||
Anacapri
|
||||
<span class="icon ml-2">
|
||||
<i class="fa fa-chevron-right" data-menu-target="icon"></i>
|
||||
</span>
|
||||
</span>
|
||||
<ul id="siti-anacapri-sub" class="is-hidden">
|
||||
<li>
|
||||
<a class="is-block button" title="Vai al sito Villa di Gradola" id="grotta_azzurra">
|
||||
Grotta Azzurra
|
||||
@ -123,9 +114,14 @@
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
Capri
|
||||
<ul id="siti-capri-sub">
|
||||
<li class="mt-3">
|
||||
<span class="is-clickable" data-action="click->menu#openSubList" data-list-id="siti-capri-sub">
|
||||
Capri
|
||||
<span class="icon ml-2">
|
||||
<i class="fa fa-chevron-right" data-menu-target="icon"></i>
|
||||
</span>
|
||||
</span>
|
||||
<ul id="siti-capri-sub" class="is-hidden">
|
||||
<li>
|
||||
<a class="button" id="tiberio">
|
||||
Bagni di Tiberio
|
||||
@ -158,30 +154,105 @@
|
||||
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="non-conser"></i>
|
||||
</span>
|
||||
</p>
|
||||
<ul class="menu-list is-hidden" id="non-conser-list" data-menu-target="list">
|
||||
<li>
|
||||
Anacapri
|
||||
<ul id="noncons-anacapri-sub">
|
||||
<ul class="menu-list is-hidden" id="non-conser-list" data-menu-target="list" data-controller="marker">
|
||||
<li data-list-id="noncons-anacapri-sub">
|
||||
<span class="is-clickable" data-action="click->menu#openSubList" data-list-id="noncons-anacapri-sub">
|
||||
Anacapri
|
||||
<span class="icon ml-2 is-small" data-list-id="noncons-anacapri-sub">
|
||||
<i class="fa fa-chevron-right"></i>
|
||||
</span>
|
||||
</span>
|
||||
<ul id="noncons-anacapri-sub" class="is-hidden">
|
||||
<li>
|
||||
<a class="button" id="cala">
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5595565 14.2003896">
|
||||
Cala a mare - resti di ambienti
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" id="campetiello">
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.549026 14.196911">
|
||||
Punta Campetiello - scala
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" id="castagnaro">
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5501214 14.2198544">
|
||||
Castagnaro - area funeraria
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" id="ceselle">
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.55129683 14.21261142">
|
||||
Ceselle - necropoli
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5533744 14.2178754">
|
||||
Località Piscina - complesso idraulico
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5546467 14.2092143">
|
||||
La Cera - ambienti voltati
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5495555 14.2108741">
|
||||
Cesa - complesso idraulico
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5575337 14.2027513">
|
||||
La Fabbrica - resti murari
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5530655 14.201767">
|
||||
Lupinaro - resti murari
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5399801 14.2092552">
|
||||
Migliara Belvedere - frammenti erratici
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5451791 14.2233019">
|
||||
Monte Solaro - vaso corinzio
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5523988 14.2087281">
|
||||
Monticello - “Vaso di Monticello”
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5521975 14.2107296">
|
||||
Monticello - “Villa di Monticello”
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5559514 14.2197966">
|
||||
Pastena - strutture murarie
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.546923 14.2173871">
|
||||
Petracquale - ruderi indeterminati
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.55666444 14.21446043">
|
||||
Timberino - impianto idraulico
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.5590486 14.1984242">
|
||||
Vetereto - ambienti voltati
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" data-action="click->marker#go" data-coords="40.556597 14.214518">
|
||||
Veterino - complesso residenziale
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -194,17 +265,24 @@
|
||||
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="rinv"></i>
|
||||
</span>
|
||||
</p>
|
||||
<ul class="menu-list is-hidden" id="rinv-list" data-menu-target="list">
|
||||
<ul class="menu-list is-hidden" id="rinv-list" data-menu-target="list" data-controller="marker">
|
||||
<li>
|
||||
Anacapri
|
||||
<ul id="rinv-anacapri-sub">
|
||||
<span class="is-clickable" data-action="click->menu#openSubList" data-list-id="rinv-anacapri-sub">
|
||||
Anacapri
|
||||
<span class="icon ml-2">
|
||||
<i class="fa fa-chevron-right" data-menu-target="icon"></i>
|
||||
</span>
|
||||
</span>
|
||||
<ul id="rinv-anacapri-sub" class="is-hidden">
|
||||
<li>
|
||||
<a class="button" id="affresco_dame">
|
||||
<a class="button" id="affresco_dame" data-marker-target="coords"
|
||||
data-coords="40.55939119 14.20064002" data-action="click->marker#go">
|
||||
Affresco Villa di Damecuta
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" id="candelabro">
|
||||
<a class="button" id="candelabro" data-marker-target="coords"
|
||||
data-coords="40.5565536 14.2133073" data-action="click->marker#go">
|
||||
Base di candelabro
|
||||
</a>
|
||||
</li>
|
||||
|
42
webgis/js/controllers/marker_controller.js
Normal file
42
webgis/js/controllers/marker_controller.js
Normal file
@ -0,0 +1,42 @@
|
||||
import { Controller } from "@hotwired/stimulus"
|
||||
|
||||
export default class extends Controller {
|
||||
static targets = ['coords'];
|
||||
mapAnimate = {
|
||||
animate: true,
|
||||
duration: 1,
|
||||
easeLinearity: 0.25
|
||||
};
|
||||
|
||||
go(event) {
|
||||
let map = window.LMap;
|
||||
const coords = event.currentTarget.getAttribute('data-coords').split(' ');
|
||||
|
||||
map.setView(
|
||||
coords,
|
||||
19,
|
||||
this.mapAnimate
|
||||
);
|
||||
|
||||
let marker = this.getMarker(map, coords);
|
||||
marker.openTooltip();
|
||||
}
|
||||
|
||||
getMarker(map, coords) {
|
||||
let marker;
|
||||
map.eachLayer(l => {
|
||||
if (l instanceof L.Marker) {
|
||||
const latLng = l.getLatLng();
|
||||
const lat = latLng['lat'];
|
||||
const lng = latLng['lng'];
|
||||
if (lat === Number(coords[0]) && lng === Number(coords[1])) {
|
||||
marker = l;
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return marker;
|
||||
}
|
||||
}
|
||||
|
@ -19,8 +19,16 @@ export default class extends Controller {
|
||||
this.menuTarget.classList.add('is-hidden');
|
||||
}
|
||||
|
||||
openList(id) {
|
||||
document.querySelector(id).classList.remove('is-hidden');
|
||||
toggleList(id) {
|
||||
document.querySelector(`#${id}`).classList.toggle('is-hidden');
|
||||
}
|
||||
|
||||
openSubList(event) {
|
||||
const target = event.currentTarget;
|
||||
const targetIcon = target.querySelector('.fa');
|
||||
const id = target.getAttribute('data-list-id');
|
||||
this.toggleList(id);
|
||||
this.toggleIcon(targetIcon);
|
||||
}
|
||||
|
||||
toggle(event) {
|
||||
|
@ -11,4 +11,3 @@ export default class extends Controller {
|
||||
this.modalTarget.classList.remove('is-active');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ import UI from './ui.js';
|
||||
import { Application } from '@hotwired/stimulus';
|
||||
import MenuController from './controllers/menu_controller.js';
|
||||
import ModalController from './controllers/modal_controller.js';
|
||||
import MarkerController from './controllers/marker_controller.js';
|
||||
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
// Register Stimulus controllers
|
||||
@ -28,4 +29,5 @@ function initStimulus() {
|
||||
window.Stimulus = Application.start();
|
||||
Stimulus.register("menu", MenuController);
|
||||
Stimulus.register("modal", ModalController);
|
||||
Stimulus.register("marker", MarkerController);
|
||||
}
|
Loading…
Reference in New Issue
Block a user