Update menu
TODO: coords for sites
This commit is contained in:
parent
211379b986
commit
7f4bd571f0
@ -46,27 +46,13 @@
|
|||||||
<span class="icon mr-2">
|
<span class="icon mr-2">
|
||||||
<i class="fa fa-list"></i>
|
<i class="fa fa-list"></i>
|
||||||
</span>
|
</span>
|
||||||
Apri menu
|
Elenco beni
|
||||||
</button>
|
</button>
|
||||||
<button class="button is-outlined is-rounded is-link mr-4 mt-1" id="howto" title="Istruzioni">
|
<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">
|
<span class="icon is-large has-text-link">
|
||||||
<i class="fas fa-question fa-lg"></i>
|
<i class="fas fa-question fa-lg"></i>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</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>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
<div class="wait-lg text-center is-hidden" style="clear: both;">
|
<div class="wait-lg text-center is-hidden" style="clear: both;">
|
||||||
@ -89,8 +75,13 @@
|
|||||||
</p>
|
</p>
|
||||||
<ul class="menu-list is-hidden" id="siti-list" data-menu-target="list">
|
<ul class="menu-list is-hidden" id="siti-list" data-menu-target="list">
|
||||||
<li>
|
<li>
|
||||||
|
<span class="is-clickable" data-action="click->menu#openSubList" data-list-id="siti-anacapri-sub">
|
||||||
Anacapri
|
Anacapri
|
||||||
<ul id="siti-anacapri-sub">
|
<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>
|
<li>
|
||||||
<a class="is-block button" title="Vai al sito Villa di Gradola" id="grotta_azzurra">
|
<a class="is-block button" title="Vai al sito Villa di Gradola" id="grotta_azzurra">
|
||||||
Grotta Azzurra
|
Grotta Azzurra
|
||||||
@ -123,9 +114,14 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li class="mt-3">
|
||||||
|
<span class="is-clickable" data-action="click->menu#openSubList" data-list-id="siti-capri-sub">
|
||||||
Capri
|
Capri
|
||||||
<ul id="siti-capri-sub">
|
<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>
|
<li>
|
||||||
<a class="button" id="tiberio">
|
<a class="button" id="tiberio">
|
||||||
Bagni di Tiberio
|
Bagni di Tiberio
|
||||||
@ -158,30 +154,105 @@
|
|||||||
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="non-conser"></i>
|
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="non-conser"></i>
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<ul class="menu-list is-hidden" id="non-conser-list" data-menu-target="list">
|
<ul class="menu-list is-hidden" id="non-conser-list" data-menu-target="list" data-controller="marker">
|
||||||
<li>
|
<li data-list-id="noncons-anacapri-sub">
|
||||||
|
<span class="is-clickable" data-action="click->menu#openSubList" data-list-id="noncons-anacapri-sub">
|
||||||
Anacapri
|
Anacapri
|
||||||
<ul id="noncons-anacapri-sub">
|
<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>
|
<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
|
Cala a mare - resti di ambienti
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="button" id="campetiello">
|
<a class="button" data-action="click->marker#go" data-coords="40.549026 14.196911">
|
||||||
Punta Campetiello - scala
|
Punta Campetiello - scala
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="button" id="castagnaro">
|
<a class="button" data-action="click->marker#go" data-coords="40.5501214 14.2198544">
|
||||||
Castagnaro - area funeraria
|
Castagnaro - area funeraria
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="button" id="ceselle">
|
<a class="button" data-action="click->marker#go" data-coords="40.55129683 14.21261142">
|
||||||
Ceselle - necropoli
|
Ceselle - necropoli
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</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>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -194,17 +265,24 @@
|
|||||||
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="rinv"></i>
|
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="rinv"></i>
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</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>
|
<li>
|
||||||
|
<span class="is-clickable" data-action="click->menu#openSubList" data-list-id="rinv-anacapri-sub">
|
||||||
Anacapri
|
Anacapri
|
||||||
<ul id="rinv-anacapri-sub">
|
<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>
|
<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
|
Affresco Villa di Damecuta
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<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
|
Base di candelabro
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</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');
|
this.menuTarget.classList.add('is-hidden');
|
||||||
}
|
}
|
||||||
|
|
||||||
openList(id) {
|
toggleList(id) {
|
||||||
document.querySelector(id).classList.remove('is-hidden');
|
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) {
|
toggle(event) {
|
||||||
|
@ -11,4 +11,3 @@ export default class extends Controller {
|
|||||||
this.modalTarget.classList.remove('is-active');
|
this.modalTarget.classList.remove('is-active');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ import UI from './ui.js';
|
|||||||
import { Application } from '@hotwired/stimulus';
|
import { Application } from '@hotwired/stimulus';
|
||||||
import MenuController from './controllers/menu_controller.js';
|
import MenuController from './controllers/menu_controller.js';
|
||||||
import ModalController from './controllers/modal_controller.js';
|
import ModalController from './controllers/modal_controller.js';
|
||||||
|
import MarkerController from './controllers/marker_controller.js';
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
// Register Stimulus controllers
|
// Register Stimulus controllers
|
||||||
@ -28,4 +29,5 @@ function initStimulus() {
|
|||||||
window.Stimulus = Application.start();
|
window.Stimulus = Application.start();
|
||||||
Stimulus.register("menu", MenuController);
|
Stimulus.register("menu", MenuController);
|
||||||
Stimulus.register("modal", ModalController);
|
Stimulus.register("modal", ModalController);
|
||||||
|
Stimulus.register("marker", MarkerController);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user