Move some UI to Stimulus + Lo Pozzo geojson
This commit is contained in:
parent
8ef3331b25
commit
211379b986
@ -154,6 +154,7 @@ a:visited {
|
||||
/* Menu overlay */
|
||||
#menu {
|
||||
z-index: 1000;
|
||||
overflow-y: auto;
|
||||
}
|
||||
/* Content in tabs */
|
||||
.docs-title {
|
||||
|
8
webgis/geojson/lopozzo.geojson
Normal file
8
webgis/geojson/lopozzo.geojson
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"type": "FeatureCollection",
|
||||
"name": "lopozzo",
|
||||
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
|
||||
"features": [
|
||||
{ "type": "Feature", "properties": { "id": 1, "denominaz": "area residenziale e complesso idraulico in località Lo Pozzo" }, "geometry": { "type": "Point", "coordinates": [ 14.213643789607119, 40.556601906452713 ] } }
|
||||
]
|
||||
}
|
@ -41,21 +41,32 @@
|
||||
</div>
|
||||
<hr class="navbar-divider">
|
||||
<div class="navbar-end pb-1 pt-1" id="nav-menu">
|
||||
<button class="navbar-item button is-size-5 is-white" role="button" id="siti"
|
||||
data-action="click->menu#toggleMenu" data-id="siti">
|
||||
Beni archeologici
|
||||
</button>
|
||||
<button class="navbar-item button is-size-5 is-white" role="button" id="non-conserv">
|
||||
Beni non conservati
|
||||
</button>
|
||||
<button class="navbar-item button is-size-5 is-white mr-3" role="button" id="rinvenimenti">
|
||||
Rinvenimenti
|
||||
<button class="navbar-item button is-size-5 is-white mr-3" role="button"
|
||||
data-action="click->menu#toggleMenu">
|
||||
<span class="icon mr-2">
|
||||
<i class="fa fa-list"></i>
|
||||
</span>
|
||||
Apri menu
|
||||
</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;">
|
||||
@ -65,15 +76,15 @@
|
||||
<div class="main columns">
|
||||
<div class="column is-hidden is-4 is-4-desktop is-5-mobile is-overlay has-background-white-ter" id="menu"
|
||||
data-menu-target="menu">
|
||||
<aside class="menu ml-4">
|
||||
<button title="Chiudi menu" class="delete is-pulled-right" id="close-menu"></button>
|
||||
<aside class="menu ml-4 mt-3">
|
||||
<button title="Chiudi menu" class="delete is-pulled-right" data-action="click->menu#close"></button>
|
||||
<p class="menu-label is-size-5 mt-2 is-clickable" data-action="click->menu#toggle" data-id="siti">
|
||||
<span class="icon pr-2">
|
||||
<img class="image" src="img/icons/siti_menu.png"/>
|
||||
</span>
|
||||
Beni archeologici
|
||||
<span class="icon pl-2">
|
||||
<i class="fa fa-chevron-right"></i>
|
||||
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="siti"></i>
|
||||
</span>
|
||||
</p>
|
||||
<ul class="menu-list is-hidden" id="siti-list" data-menu-target="list">
|
||||
@ -138,33 +149,54 @@
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="menu-label is-size-5 is-clickable">
|
||||
<p class="menu-label is-size-5 is-clickable" data-action="click->menu#toggle" data-id="non-conser">
|
||||
<span class="icon pr-2">
|
||||
<img class="image" src="img/icons/non_cons_menu.png"/>
|
||||
</span>
|
||||
Beni non conservati
|
||||
<span class="icon pl-2">
|
||||
<i class="fa fa-chevron-right"></i>
|
||||
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="non-conser"></i>
|
||||
</span>
|
||||
</p>
|
||||
<ul class="menu-list is-hidden" id="not-conserved-list" data-menu-target="list">
|
||||
|
||||
<ul class="menu-list is-hidden" id="non-conser-list" data-menu-target="list">
|
||||
<li>
|
||||
Anacapri
|
||||
<ul id="noncons-anacapri-sub">
|
||||
<li>
|
||||
<a class="button" id="cala">
|
||||
Cala a mare - resti di ambienti
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" id="campetiello">
|
||||
Punta Campetiello - scala
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" id="castagnaro">
|
||||
Castagnaro - area funeraria
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="button" id="ceselle">
|
||||
Ceselle - necropoli
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="menu-label is-size-5 is-clickable">
|
||||
<p class="menu-label is-size-5 is-clickable" data-action="click->menu#toggle" data-id="rinv">
|
||||
<span class="icon pr-2">
|
||||
<img class="image" src="img/icons/rinv_menu.png"/>
|
||||
</span>
|
||||
Rinvenimenti
|
||||
<span class="icon pl-2">
|
||||
<i class="fa fa-chevron-right"></i>
|
||||
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="rinv"></i>
|
||||
</span>
|
||||
</p>
|
||||
<ul class="menu-list is-hidden" id="rinvenimenti-list">
|
||||
<ul class="menu-list is-hidden" id="rinv-list" data-menu-target="list">
|
||||
<li>
|
||||
Anacapri
|
||||
<span class="icon is-small">
|
||||
<i class="fa fa-plus"></i>
|
||||
</span>
|
||||
<ul id="rinv-anacapri-sub">
|
||||
<li>
|
||||
<a class="button" id="affresco_dame">
|
||||
@ -188,8 +220,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- Sites data modal -->
|
||||
<div class="modal" id="site-data">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal" id="site-data" data-controller="modal" data-modal-target="modal">
|
||||
<div class="modal-background" data-action="click->modal#close"></div>
|
||||
<div class="modal-content has-background-white" style="min-height: 95vh;">
|
||||
<div class="tabs is-centered">
|
||||
<ul>
|
||||
@ -232,19 +264,19 @@
|
||||
<div class="data-tabs is-hidden" id="photos"></div>
|
||||
<div class="data-tabs is-hidden" id="documents"></div>
|
||||
</div>
|
||||
<button class="modal-close is-large" aria-label="close"></button>
|
||||
<button class="modal-close is-large" aria-label="close" data-action="click->modal#close"></button>
|
||||
</div>
|
||||
<!-- Not conserved modal -->
|
||||
<div class="modal" id="not-conser-data">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal" id="not-conser-data" data-controller="modal" data-modal-target="modal">
|
||||
<div class="modal-background" data-action="click->modal#close"></div>
|
||||
<div class="modal-content has-background-white" style="min-height: 95vh;">
|
||||
<div id="not-conser-sheet"></div>
|
||||
</div>
|
||||
<button class="modal-close is-large" aria-label="close"></button>
|
||||
<button class="modal-close is-large" aria-label="close" data-action="click->modal#close"></button>
|
||||
</div>
|
||||
<!-- Not conserved modal -->
|
||||
<div class="modal" id="finding-data">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal" id="finding-data" data-controller="modal" data-modal-target="modal">
|
||||
<div class="modal-background" data-action="click->modal#close"></div>
|
||||
<div class="modal-content has-background-white" style="min-height: 95vh;">
|
||||
<div class="tabs is-centered">
|
||||
<ul>
|
||||
@ -269,7 +301,7 @@
|
||||
<div class="data-tabs" id="finding-sheet"></div>
|
||||
<div class="data-tabs is-hidden" id="photos"></div>
|
||||
</div>
|
||||
<button class="modal-close is-large" aria-label="close"></button>
|
||||
<button class="modal-close is-large" aria-label="close" data-action="click->modal#close"></button>
|
||||
</div>
|
||||
<!-- Spherical photo modal -->
|
||||
<div class="modal" id="spherical-modal">
|
||||
|
@ -1,17 +1,22 @@
|
||||
import { Controller } from "@hotwired/stimulus"
|
||||
|
||||
export default class extends Controller {
|
||||
static targets = ['list', 'menu'];
|
||||
static targets = ['list', 'menu', 'icon'];
|
||||
|
||||
toggleMenu(event) {
|
||||
toggleMenu() {
|
||||
/*
|
||||
const target = event.currentTarget;
|
||||
const id = target.getAttribute('data-id');
|
||||
const icon = this.iconTargets.find(i => i.getAttribute('data-id') === id);
|
||||
*/
|
||||
|
||||
this.menuTarget.classList.toggle('is-hidden');
|
||||
//this.toggleIcon(icon);
|
||||
//this.openList(`#${id}-list`);
|
||||
}
|
||||
|
||||
this.openList(`#${id}-list`);
|
||||
|
||||
console.log(this.menuTarget);
|
||||
close() {
|
||||
this.menuTarget.classList.add('is-hidden');
|
||||
}
|
||||
|
||||
openList(id) {
|
||||
|
14
webgis/js/controllers/modal_controller.js
Normal file
14
webgis/js/controllers/modal_controller.js
Normal file
@ -0,0 +1,14 @@
|
||||
import { Controller } from "@hotwired/stimulus"
|
||||
|
||||
export default class extends Controller {
|
||||
static targets = ['close', 'modal'];
|
||||
|
||||
open() {
|
||||
this.modalTarget.classList.add('is-active');
|
||||
}
|
||||
|
||||
close() {
|
||||
this.modalTarget.classList.remove('is-active');
|
||||
}
|
||||
}
|
||||
|
@ -72,6 +72,7 @@ const MARKER_NAMES = {
|
||||
'san_michele' : 'Villa San Michele',
|
||||
'scala_fenicia' : 'Scala Fenicia',
|
||||
'grotta_azzurra' : 'Grotta Azzurra',
|
||||
'lopozzo' : 'Località Lo Pozzo',
|
||||
},
|
||||
};
|
||||
|
||||
@ -150,6 +151,9 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) {
|
||||
archeo,
|
||||
).addTo(map);
|
||||
|
||||
// TEMP!! Remove point for Lo Pozzo...
|
||||
map.removeLayer(sitesGroup.customGetLayer('lopozzo'));
|
||||
|
||||
// TODO Horrible?
|
||||
return {map: map, sites: sitesGroup};
|
||||
}
|
||||
@ -295,6 +299,7 @@ GIS.initLayers = async function(map) {
|
||||
let layerTiberio = await this.loadLayer('tiberio.geojson', optionsSiti, false);
|
||||
let layerScala = await this.loadLayer('scala_fenicia.geojson', optionsSiti, false);
|
||||
let layerGrotta = await this.loadLayer('grotta_azzurra.geojson', optionsGrotta, false);
|
||||
let layerLopozzo = await this.loadLayer('lopozzo.geojson', optionsSiti, false);
|
||||
|
||||
layerMater.id = 'matermania';
|
||||
layerMaterArea.id = 'matermania_area';
|
||||
@ -308,6 +313,7 @@ GIS.initLayers = async function(map) {
|
||||
layerTiberio.id = 'tiberio';
|
||||
layerScala.id = 'scala_fenicia';
|
||||
layerGrotta.id = 'grotta_azzurra';
|
||||
layerLopozzo.id = 'lopozzo';
|
||||
|
||||
let osmap = new L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
maxNativeZoom : 22,
|
||||
@ -339,6 +345,7 @@ GIS.initLayers = async function(map) {
|
||||
layerTiberio,
|
||||
layerScala,
|
||||
layerGrotta,
|
||||
layerLopozzo
|
||||
]);
|
||||
const baseGroup = new L.LayerGroup([osmap]);
|
||||
baseGroup.addTo(map);
|
||||
|
@ -30,6 +30,6 @@ Icons.finding = L.icon(
|
||||
}
|
||||
);
|
||||
|
||||
Icons.camera = L.divIcon({className: 'fa fa-2x fa-camera'});
|
||||
Icons.camera = L.divIcon({className: 'fa fa-camera'});
|
||||
|
||||
export default Icons;
|
@ -2,6 +2,7 @@ import GIS from './gis.js';
|
||||
import UI from './ui.js';
|
||||
import { Application } from '@hotwired/stimulus';
|
||||
import MenuController from './controllers/menu_controller.js';
|
||||
import ModalController from './controllers/modal_controller.js';
|
||||
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
// Register Stimulus controllers
|
||||
@ -17,17 +18,14 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||
GIS.toggleSpherical(map);
|
||||
|
||||
UI.addCenterMapControl(map, GIS.CENTER_COORDS, GIS.INIT_ZOOM);
|
||||
//UI.toggleMenu('siti', 'siti-list');
|
||||
//UI.toggleMenu('rinvenimenti', 'rinvenimenti-list');
|
||||
UI.toggleBurger('navbar-burger');
|
||||
UI.sitesMenu('.menu-list', map, sites);
|
||||
|
||||
document.querySelector('#close-menu').addEventListener('click', () => {
|
||||
document.querySelector('#menu').classList.add('is-hidden');
|
||||
})
|
||||
window.LMap = map;
|
||||
});
|
||||
|
||||
function initStimulus() {
|
||||
window.Stimulus = Application.start();
|
||||
Stimulus.register("menu", MenuController);
|
||||
Stimulus.register("modal", ModalController);
|
||||
}
|
@ -106,8 +106,6 @@ UI.openSiteModal = async function (data, selector) {
|
||||
for (let tab of dataTabs) {
|
||||
tab.innerHTML = '';
|
||||
}
|
||||
//tabs.classList.remove('is-hidden');
|
||||
|
||||
let siteSheet = new SiteSheet();
|
||||
siteSheet.siteData = data;
|
||||
|
||||
@ -161,12 +159,6 @@ UI.openSiteModal = async function (data, selector) {
|
||||
});
|
||||
|
||||
modal.classList.add('is-active');
|
||||
const closeBtn = modal.querySelector('.modal-close');
|
||||
const modalBg = modal.querySelector('.modal-background');
|
||||
const closeModal = () => modal.classList.remove('is-active');
|
||||
// CLose modal when clicking either on the X button or on the background
|
||||
closeBtn.addEventListener('click', () => closeModal());
|
||||
modalBg.addEventListener('click', () => closeModal());
|
||||
|
||||
this.imageGallery('gallery-1', surveys);
|
||||
this.imageGallery('gallery-2', photos);
|
||||
@ -199,13 +191,6 @@ UI.openNotConserModal = async function (data, selector) {
|
||||
});
|
||||
|
||||
modal.classList.add('is-active');
|
||||
const closeBtn = modal.querySelector('.modal-close');
|
||||
const modalBg = modal.querySelector('.modal-background');
|
||||
const closeModal = () => modal.classList.remove('is-active');
|
||||
// CLose modal when clicking either on the X button or on the background
|
||||
closeBtn.addEventListener('click', () => closeModal());
|
||||
modalBg.addEventListener('click', () => closeModal());
|
||||
|
||||
}
|
||||
/**
|
||||
* @param {object} data The data retrieved from the DB to display as modal content
|
||||
@ -268,12 +253,6 @@ UI.openFindingModal = async function (data, selector) {
|
||||
}
|
||||
});
|
||||
modal.classList.add('is-active');
|
||||
const closeBtn = modal.querySelector('.modal-close');
|
||||
const modalBg = modal.querySelector('.modal-background');
|
||||
const closeModal = () => modal.classList.remove('is-active');
|
||||
// CLose modal when clicking either on the X button or on the background
|
||||
closeBtn.addEventListener('click', () => closeModal());
|
||||
modalBg.addEventListener('click', () => closeModal());
|
||||
}
|
||||
/**
|
||||
* @param {string} menuListSel Menu list selector
|
||||
@ -281,7 +260,6 @@ UI.openFindingModal = async function (data, selector) {
|
||||
* @param {L.LayerGroup} sites
|
||||
*/
|
||||
UI.sitesMenu = function (menuListSel, map, sites) {
|
||||
// Close menu if arrow button is clicked...
|
||||
let markers = [];
|
||||
|
||||
map.eachLayer(layer => {
|
||||
|
Loading…
Reference in New Issue
Block a user