Refactor to generate menu dynamically
This commit is contained in:
		
							parent
							
								
									41dca4f563
								
							
						
					
					
						commit
						b556ad66bb
					
				| @ -71,620 +71,156 @@ | ||||
|         </div> | ||||
|         <div class="column is-hidden is-4 is-4-desktop is-5-mobile is-pulled-right is-overlay has-background-white-ter" id="menu" | ||||
|             data-menu-target="menu" data-controller="layer"> | ||||
|             <!-- Template to build menu items dynamically --> | ||||
|             <template id="menu-item-template"> | ||||
|                     <li> | ||||
|                     <a class="is-block button" | ||||
|                     data-controller="marker" | ||||
|                     data-action="marker#go" | ||||
|                     data-marker-coords-value="" | ||||
|                     data-marker-group-value=""> | ||||
|                     <span class="label"></span> | ||||
|                     </a> | ||||
|                 </li> | ||||
|             </template> | ||||
|             <aside class="menu ml-4 mt-3"> | ||||
|                 <button title="Chiudi menu" class="delete is-pulled-right" data-action="menu#close"></button> | ||||
|                 <p class="menu-label is-size-5 mt-2 is-clickable" data-id="siti"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" title="Nascondi" data-layer-target="siti" data-action="click->layer#toggle"> | ||||
|                 <p class="menu-label is-size-5 mt-2 is-clickable" data-id="sites"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" title="Nascondi" data-layer-target="sites" data-action="click->layer#toggle"> | ||||
|                         <i class="fa fa-xs fa-eye-slash" data-layer-target="icon"></i> | ||||
|                     </span> | ||||
|                     <span class="icon pr-1"> | ||||
|                         <img class="image" src="img/icons/siti_menu.png"/> | ||||
|                     </span> | ||||
|                     <span data-action="click->menu#toggle" data-id="siti"> | ||||
|                     <span data-action="click->menu#toggle" data-id="sites"> | ||||
|                         Beni archeologici | ||||
|                         <span class="icon pl-2"> | ||||
|                             <i class="fa fa-chevron-right" data-menu-target="icon" data-id="siti"></i> | ||||
|                             <i class="fa fa-chevron-right" data-menu-target="icon" data-id="sites"></i> | ||||
|                         </span> | ||||
|                     </span> | ||||
|                 </p> | ||||
|                 <ul class="menu-list is-hidden" id="siti-list" data-menu-target="list" data-controller="marker"> | ||||
|                     <li> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="siti-anacapri-sub"> | ||||
|                 <ul class="menu-list is-hidden" id="sites-list" data-menu-target="list" data-controller="marker"> | ||||
|                     <li data-list-id="sites-anacapri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="sites-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" | ||||
|                                     data-action="marker#go" data-controller="marker" data-marker-coords-value="40.56094295 14.20573624" | ||||
|                                     data-marker-group-value="sites"> | ||||
|                                     Grotta Azzurra | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito Grotta del Pisco" | ||||
|                                     data-action="marker#go" data-controller="marker" data-marker-coords-value="40.543768 14.202657" | ||||
|                                     data-marker-group-value="sites"> | ||||
|                                     Grotta del Pisco | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito Lo Pozzo" | ||||
|                                     data-action="marker#go" data-controller="marker" data-marker-coords-value="40.556601 14.213642" | ||||
|                                     data-marker-group-value="sites"> | ||||
|                                     Località Lo Pozzo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito Scala Fenicia" | ||||
|                                     data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5562963 14.2285935" | ||||
|                                     data-marker-group-value="sites"> | ||||
|                                     Scala Fenicia | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito Villa di Damecuta" | ||||
|                                     data-action="marker#go" data-controller="marker" data-marker-coords-value="40.55906 14.20055" | ||||
|                                     data-marker-group-value="sites"> | ||||
|                                     Villa di Damecuta | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito Villa di Gradola" | ||||
|                                     data-action="marker#go" data-controller="marker" data-marker-coords-value="40.560834 14.205793" | ||||
|                                     data-marker-group-value="sites"> | ||||
|                                     Villa di Gradola | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito San Michele" | ||||
|                                     data-action="marker#go" data-controller="marker" data-marker-coords-value="40.55738 14.225806" | ||||
|                                     data-marker-group-value="sites"> | ||||
|                                     Villa San Michele | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                         </ul> | ||||
|                     </li> | ||||
|                     <li class="mt-3"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="siti-capri-sub"> | ||||
|                     <li class="mt-3" data-list-id="sites-capri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="sites-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 | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" | ||||
|                                 data-marker-coords-value="40.54972 14.24669" | ||||
|                                 data-marker-group-value="sites" | ||||
|                                 data-action="marker#go"> | ||||
|                                     Camerelle | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" | ||||
|                                 data-marker-group-value="sites" | ||||
|                                 data-marker-coords-value="40.54652 14.24288" data-action="marker#go"> | ||||
|                                     Grotta dell'Arsenale | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito Grotta di Matermania" data-controller="marker" | ||||
|                                 data-marker-group-value="sites" | ||||
|                                 data-marker-coords-value="40.54942 14.25583" data-action="marker#go"> | ||||
|                                     Grotta di Matermania | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito Grotta delle Felci" data-controller="marker" | ||||
|                                 data-marker-group-value="sites" | ||||
|                                 data-marker-coords-value="40.543644 14.230008" data-action="marker#go"> | ||||
|                                     Grotta delle Felci | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" title="Vai al sito Grotta del Castiglione" data-controller="marker" | ||||
|                                 data-marker-group-value="sites" | ||||
|                                 data-marker-coords-value="40.54687 14.24023" data-action="marker#go"> | ||||
|                                     Grotta del Castiglione | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" data-marker-coords-value="40.5515 14.24327" | ||||
|                                 data-marker-group-value="sites" | ||||
|                                 data-action="marker#go"> | ||||
|                                     Mura greche | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" data-marker-coords-value="40.55325 14.24761" data-action="marker#go"> | ||||
|                                     Monte San Michele | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" data-marker-coords-value="40.55641 14.23503" data-action="marker#go"> | ||||
|                                     San Costanzo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" data-marker-coords-value="40.549 14.24801" data-action="marker#go"> | ||||
|                                     Tragara (strada) | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" data-marker-coords-value="40.54695 14.24962" data-action="marker#go"> | ||||
|                                     Tragara (area residenziale) | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" data-marker-coords-value="40.543719 14.252836" data-action="marker#go"> | ||||
|                                     Tragara, approdo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-controller="marker" data-marker-coords-value="40.55791 14.26253" data-action="marker#go"> | ||||
|                                     Villa Jovis | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                         </ul> | ||||
|                     </li> | ||||
|                 </ul> | ||||
|                 <p class="menu-label is-size-5 is-clickable" data-id="non-conser"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" title="Nascondi" data-layer-target="non-conser" | ||||
|                 <p class="menu-label is-size-5 is-clickable" data-id="notConserved"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" title="Nascondi" data-layer-target="notConserved" | ||||
|                         data-action="click->layer#toggle" style="max-height: 10px"> | ||||
|                         <i class="fa fa-xs fa-eye-slash" data-layer-target="icon"></i> | ||||
|                     </span> | ||||
|                     <span class="icon pr-1"> | ||||
|                         <img class="image" src="img/icons/non_cons_menu.png"/> | ||||
|                     </span> | ||||
|                     <span data-action="click->menu#toggle" data-id="non-conser"> | ||||
|                     <span data-action="click->menu#toggle" data-id="notConserved"> | ||||
|                         Beni non conservati | ||||
|                         <span class="icon pl-2"> | ||||
|                             <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="notConserved"></i> | ||||
|                         </span> | ||||
|                     </span> | ||||
|                 </p> | ||||
|                 <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"> | ||||
|                 <ul class="menu-list is-hidden" id="notConserved-list" data-menu-target="list" data-controller="marker"> | ||||
|                     <li data-list-id="notConserved-anacapri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="notConserved-anacapri-sub"> | ||||
|                             Anacapri | ||||
|                             <span class="icon ml-2 is-small" data-list-id="noncons-anacapri-sub"> | ||||
|                             <span class="icon ml-2 is-small" data-list-id="notConserved-anacapri-sub"> | ||||
|                                 <i class="fa fa-chevron-right"></i> | ||||
|                             </span> | ||||
|                         </span> | ||||
|                         <ul id="noncons-anacapri-sub" class="is-hidden"> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5595565 14.2003896"> | ||||
|                                     Cala a mare - resti di ambienti | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.549026 14.196911"> | ||||
|                                     Punta Campetiello - scala | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5501214 14.2198544"> | ||||
|                                     Castagnaro - area funeraria | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.55129683 14.21261142"> | ||||
|                                     Ceselle - necropoli | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5533744 14.2178754"> | ||||
|                                     Località Piscina - complesso idraulico | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5546467 14.2092143"> | ||||
|                                     La Cera - ambienti voltati | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5495555 14.2108741"> | ||||
|                                     Cesa - complesso idraulico | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5575337 14.2027513"> | ||||
|                                     La Fabbrica - resti murari | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5543028 14.2129861"> | ||||
|                                     Le Boffe - Frammenti scultorei | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5530655 14.201767"> | ||||
|                                     Lupinaro - resti murari | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5399801 14.2092552"> | ||||
|                                     Migliara Belvedere - frammenti erratici | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5451791 14.2233019"> | ||||
|                                     Monte Solaro - vaso corinzio | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5523988 14.2087281"> | ||||
|                                     Monticello - “Vaso di Monticello” | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5521975 14.2107296"> | ||||
|                                     Monticello - “Villa di Monticello” | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5559514 14.2197966"> | ||||
|                                     Pastena - strutture murarie | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.546923 14.2173871"> | ||||
|                                     Petracquale - ruderi indeterminati | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.55666444 14.21446043"> | ||||
|                                     Timberino - impianto idraulico | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5590486 14.1984242"> | ||||
|                                     Vetereto - ambienti voltati | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.556597 14.214518"> | ||||
|                                     Veterino - complesso residenziale | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                         </ul> | ||||
|                     </li> | ||||
|                     <li class="mt-3" data-list-id="noncons-capri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="noncons-capri-sub"> | ||||
|                     <li class="mt-3" data-list-id="notConserved-capri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="notConserved-capri-sub"> | ||||
|                             Capri | ||||
|                             <span class="icon ml-2 is-small" data-list-id="noncons-capri-sub"> | ||||
|                             <span class="icon ml-2 is-small" data-list-id="notConserved-capri-sub"> | ||||
|                                 <i class="fa fa-chevron-right"></i> | ||||
|                             </span> | ||||
|                         </span> | ||||
|                         <ul id="noncons-capri-sub" class="is-hidden"> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5511089 14.2362655"> | ||||
|                                     Le Parate - necropoli | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5532513 14.2538048"> | ||||
|                                     Moneta - impianti idraulici e struttura residenziale a Moneta | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5533825 14.2385025"> | ||||
|                                     Sant'Antonio - necropoli | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5484525 14.2478183"> | ||||
|                                     Unghia Marina - complesso residenziale | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5473155 14.2405834"> | ||||
|                                     Villa Imperiale del Castiglione | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5480487 14.2420423"> | ||||
|                                     Villa imperiale del Castiglione, scavi Hadrawa | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5492126 14.2438121"> | ||||
|                                     Villa imperiale del Castiglione, Li Campi | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5493422 14.2430196"> | ||||
|                                     Villa imperiale del Castiglione, Località Valentino | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5489398 14.2408126"> | ||||
|                                     Villa imperiale del Castiglione, mura via Castello | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                         </ul> | ||||
|                     </li> | ||||
|                 </ul> | ||||
|                 <p class="menu-label is-size-5 is-clickable" data-id="rinv"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" data-layer-target="rinv" data-action="click->layer#toggle"> | ||||
|                 <p class="menu-label is-size-5 is-clickable" data-id="findings"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" data-layer-target="findings" data-action="click->layer#toggle"> | ||||
|                         <i class="fa fa-xs fa-eye-slash" data-layer-target="icon"></i> | ||||
|                     </span> | ||||
|                     <span class="icon pr-1"> | ||||
|                         <img class="image" src="img/icons/rinv_menu.png"/> | ||||
|                     </span> | ||||
|                     <span data-action="click->menu#toggle" data-id="rinv"> | ||||
|                     <span data-action="click->menu#toggle" data-id="findings"> | ||||
|                         Rinvenimenti | ||||
|                         <span class="icon pl-2"> | ||||
|                             <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="findings"></i> | ||||
|                         </span> | ||||
|                     </span> | ||||
|                 </p> | ||||
|                 <ul class="menu-list is-hidden" id="rinv-list" data-menu-target="list" data-controller="marker"> | ||||
|                 <ul class="menu-list is-hidden" id="findings-list" data-menu-target="list" data-controller="marker"> | ||||
|                     <li> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="rinv-anacapri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="findings-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" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.55939119 14.20064002" data-action="marker#go"> | ||||
|                                     Affresco di IV stile - Villa Damecuta | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.5596847 14.2013025" data-action="marker#go"> | ||||
|                                     Statua di fanciullo - Villa Damecuta | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.5595088 14.2008549" data-action="marker#go"> | ||||
|                                     Frammento di testa di Sileno - Villa Damecuta | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.5565536 14.2133073" data-action="marker#go"> | ||||
|                                     Base di candelabro - Lo Pozzo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.56061123 14.20569607" data-action="marker#go"> | ||||
|                                     Statua di Nettuno - Grotta Azzurra | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.56070704 14.20588946" data-action="marker#go"> | ||||
|                                     Statua di Tritone imberbe - Grotta Azzurra | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.56057044 14.20603369" data-action="marker#go"> | ||||
|                                     Statua di Tritone barbato - Grotta Azzurra | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.56048101 14.20591339" data-action="marker#go"> | ||||
|                                     Statua di Tritone - Grotta Azzurra | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-marker-target="coords" | ||||
|                                     data-controller="marker" data-marker-coords-value="40.5605702 14.20575881" data-action="marker#go"> | ||||
|                                     Statua di peplophoros - Grotta Azzurra | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                         </ul> | ||||
|                     </li> | ||||
|                 </ul> | ||||
|                 <p class="menu-label is-size-5 is-clickable" data-id="preist"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" title="Nascondi" data-layer-target="preist" data-action="click->layer#toggle"> | ||||
|                 <p class="menu-label is-size-5 is-clickable" data-id="prehistoric"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" title="Nascondi" data-layer-target="prehistoric" data-action="click->layer#toggle"> | ||||
|                         <i class="fa fa-xs fa-eye-slash" data-layer-target="icon"></i> | ||||
|                     </span> | ||||
|                     <span class="icon pr-1"> | ||||
|                         <img class="image" src="img/icons/preistorici.png"/> | ||||
|                     </span> | ||||
|                     <span data-action="click->menu#toggle" data-id="preist"> | ||||
|                     <span data-action="click->menu#toggle" data-id="prehistoric"> | ||||
|                         Aree di affioramento | ||||
|                         <span class="icon pl-2"> | ||||
|                             <i class="fa fa-chevron-right" data-menu-target="icon" data-id="preist"></i> | ||||
|                             <i class="fa fa-chevron-right" data-menu-target="icon" data-id="prehistoric"></i> | ||||
|                         </span> | ||||
|                     </span> | ||||
|                 </p> | ||||
|                 <ul class="menu-list is-hidden" id="preist-list" data-menu-target="list" data-controller="marker"> | ||||
|                     <li data-list-id="preist-anacapri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="preist-anacapri-sub"> | ||||
|                 <ul class="menu-list is-hidden" id="prehistoric-list" data-menu-target="list" data-controller="marker"> | ||||
|                     <li data-list-id="prehistoric-anacapri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="prehistoric-anacapri-sub"> | ||||
|                             Anacapri | ||||
|                             <span class="icon ml-2 is-small" data-list-id="preist-anacapri-sub"> | ||||
|                             <span class="icon ml-2 is-small" data-list-id="prehistoric-anacapri-sub"> | ||||
|                                 <i class="fa fa-chevron-right"></i> | ||||
|                             </span> | ||||
|                         </span> | ||||
|                         <ul id="preist-anacapri-sub" class="is-hidden"> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.548922 14.229593"> | ||||
|                                     Cetrella | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.554641 14.198711"> | ||||
|                                     Punta Capocchia | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.556512 14.198711"> | ||||
|                                     Punta del Miglio | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.549190 14.198606"> | ||||
|                                     Punta Campetiello | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5473633 14.1992508"> | ||||
|                                     Rio Latino - Cala di Mezzo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5469179 14.2022463"> | ||||
|                                     Località Pino | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                              | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.541755 14.197580"> | ||||
|                                     Punta del Pino | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5386677 14.1997139"> | ||||
|                                     Capo Ruglio-Limmo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5399062 14.2098143"> | ||||
|                                     Belvedere della Migliara | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5367431 14.1995263"> | ||||
|                                     Punta Carena-Limmo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.558507 14.200558"> | ||||
|                                     Punta dell'Arcera | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.542092 14.223073"> | ||||
|                                     Monte Solaro | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5425792 14.2299374"> | ||||
|                                     Punta Mulo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                         </ul> | ||||
|                     </li> | ||||
|                     <li class="mt-3" data-list-id="preist-capri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="preist-capri-sub"> | ||||
|                     <li class="mt-3" data-list-id="prehistoric-capri-sub"> | ||||
|                         <span class="is-clickable" data-action="click->menu#openSubList" data-list-id="prehistoric-capri-sub"> | ||||
|                             Capri | ||||
|                             <span class="icon ml-2 is-small" data-list-id="preist-capri-sub"> | ||||
|                             <span class="icon ml-2 is-small" data-list-id="prehistoric-capri-sub"> | ||||
|                                 <i class="fa fa-chevron-right"></i> | ||||
|                             </span> | ||||
|                         </span> | ||||
|                         <ul id="preist-capri-sub" class="is-hidden"> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.558602 14.2233"> | ||||
|                                     Artimo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.552006 14.2300939"> | ||||
|                                     Calcara | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5495598 14.2442728"> | ||||
|                                     Camerelle, Hotel Quisisana | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5512194 14.2487155"> | ||||
|                                     Croce | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5516843 14.2514713"> | ||||
|                                     Fondo Mongiardino  | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5489554 14.2347825"> | ||||
|                                     La Torina | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5500081 14.2377156"> | ||||
|                                     Le Parate | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.55918 14.259928"> | ||||
|                                     Lo Capo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5517999 14.2283005"> | ||||
|                                     L’Anginola | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5562267 14.2350889"> | ||||
|                                     Marina Grande, Chiesa di S. Costanzo | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5474502 14.2533369"> | ||||
|                                     Tragara | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5534825 14.2329379"> | ||||
|                                     Veruotto | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5504548 14.2340138"> | ||||
|                                     Via Aiano di Sopra | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.54917684 14.23908714"> | ||||
|                                     Via Castiglione snc | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                             <li> | ||||
|                                 <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.546096 14.240045"> | ||||
|                                     Via Krupp | ||||
|                                 </a> | ||||
|                             </li> | ||||
|                         </ul> | ||||
|                     </li> | ||||
|                 </ul> | ||||
|                 <p class="menu-label is-size-5 is-clickable" data-id="subacquei"> | ||||
|                 <p class="menu-label is-size-5 is-clickable" data-id="underwater"> | ||||
|                      <span class="icon pl-1 mr-2 is-small" title="Nascondi" data-layer-target="underwater" data-action="click->layer#toggle"> | ||||
|                         <i class="fa fa-xs fa-eye-slash" data-layer-target="icon"></i> | ||||
|                     </span> | ||||
|                     <span class="icon pr-1"> | ||||
|                         <img class="image" src="img/icons/subacquei_menu.png"/> | ||||
|                     </span> | ||||
|                     <span data-action="click->menu#toggle" data-id="subacquei"> | ||||
|                     <span data-action="click->menu#toggle" data-id="underwater"> | ||||
|                         Giacimenti subacquei | ||||
|                         <span class="icon pl-2"> | ||||
|                             <i class="fa fa-chevron-right" data-menu-target="icon" data-id="subacquei"></i> | ||||
|                             <i class="fa fa-chevron-right" data-menu-target="icon" data-id="underwater"></i> | ||||
|                         </span> | ||||
|                     </span> | ||||
|                 </p> | ||||
|                 <ul class="menu-list is-hidden" id="subacquei-list" data-menu-target="list" data-controller="marker"> | ||||
|                 <ul class="menu-list is-hidden" id="underwater-list" data-menu-target="list" data-controller="marker"> | ||||
|                     <li> | ||||
|                         <a class="button" data-action="marker#go" data-controller="marker" data-marker-coords-value="40.5511022 14.1910274"> | ||||
|                             Bocca Grande - relitto con carico | ||||
|  | ||||
| @ -12,17 +12,10 @@ export default class extends Controller { | ||||
|         let map = GisState.map; | ||||
|         let target = event.currentTarget; | ||||
|         const id = target.parentElement.getAttribute('data-id'); | ||||
|         const layers = { | ||||
|             'siti': GisState.layers.sites, | ||||
|             'non-conser': GisState.layers.notConserved, | ||||
|             'rinv': GisState.layers.findings, | ||||
|             'preist': GisState.layers.prehistoric, | ||||
|             'subacquei': GisState.layers.underwater, | ||||
|         } | ||||
| 
 | ||||
|         let group = layers[id]; | ||||
|         this.toggleIcon(event.currentTarget); | ||||
| 
 | ||||
|         let group = GisState.layers[id]; | ||||
| 
 | ||||
|         if (map.hasLayer(group)) { | ||||
|             map.removeLayer(group); | ||||
|             target.title = "Mostra"; | ||||
|  | ||||
| @ -5,30 +5,47 @@ export default class extends Controller { | ||||
|     static targets = ['list', 'menu', 'icon']; | ||||
| 
 | ||||
|     buildMenu() { | ||||
|         let ulAnacapri = document.createElement('ul'); | ||||
|         ulAnacapri.id = 'siti-anacapri-sub'; | ||||
|         ulAnacapri.className = 'is-hidden'; | ||||
|         const groups = Object.keys(GisState.markers); | ||||
|         const municipalities = ['Anacapri', 'Capri']; | ||||
| 
 | ||||
|         console.log(GisState.markers.sites); | ||||
| 
 | ||||
|         for (let key in GisState.markers.sites) { | ||||
|             if (GisState.markers.sites[key].options.municipality === 'Anacapri') { | ||||
|                 const li = document.createElement('li'); | ||||
|                 li.innerHTML = ` | ||||
|                     <a class="is-block button" | ||||
|                         data-action="marker#go" | ||||
|                         data-controller="marker" | ||||
|                         data-marker-coords-value="${key}" | ||||
|                         data-marker-group-value="sites"> | ||||
|                         ${GisState.markers.sites[key].options.label} | ||||
|                     </a> | ||||
|                 `;
 | ||||
| 
 | ||||
|                 ulAnacapri.appendChild(li); | ||||
|         // TODO refactor with Stimulus values?
 | ||||
|         for (let group of groups) { | ||||
|             for (let municipality of municipalities) { | ||||
|                 let ul = this.renderMenuItems(group, municipality); | ||||
|                 document.querySelector(`[data-list-id="${group}-${municipality.toLowerCase()}-sub"]`) | ||||
|                     ?.appendChild(ul); | ||||
|             } | ||||
|         } | ||||
|       | ||||
|         console.log(ulAnacapri); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      *  | ||||
|      * @param {String} group  | ||||
|      * @param {String} municipality  | ||||
|      */ | ||||
|     renderMenuItems(group, municipality) { | ||||
|         const ul = document.createElement('ul'); | ||||
|         ul.className = 'is-hidden'; | ||||
|         ul.id = `${group}-${municipality.toLowerCase()}-sub`; | ||||
| 
 | ||||
|         const template = document.getElementById('menu-item-template'); | ||||
| 
 | ||||
|         for (let key in GisState.markers[group]) { | ||||
|             const marker = GisState.markers[group][key]; | ||||
|             if (marker.options.municipality === municipality) { | ||||
|                 const clone = template.content.cloneNode(true); | ||||
|                 const link = clone.querySelector('a'); | ||||
|                 const labelSpan = clone.querySelector('.label'); | ||||
| 
 | ||||
|                 link.dataset.markerCoordsValue = key; | ||||
|                 link.dataset.markerGroupValue = group; | ||||
|                 labelSpan.textContent = marker.options.label; | ||||
| 
 | ||||
|                 ul.appendChild(clone); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return ul; | ||||
|     } | ||||
| 
 | ||||
|     toggleMenu() { | ||||
|  | ||||
| @ -112,7 +112,7 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) { | ||||
|     let layerVincoli = await this.loadGeoJSON('vincoli.geojson', optionsVincoli); | ||||
|     let layerPaesistici = await this.loadGeoJSON('paesistici.geojson', optionsPaesistici); | ||||
| 
 | ||||
|     this.addLayerGroups(map); | ||||
|     await this.addLayerGroups(map); | ||||
| 
 | ||||
|     const archeo = { | ||||
|         'Vincoli archeologici' : layerVincoli, | ||||
| @ -127,22 +127,22 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) { | ||||
| /** | ||||
|  * Add layer groups to map | ||||
|  */ | ||||
| GIS.addLayerGroups = function (map) { | ||||
| GIS.addLayerGroups = async function (map) { | ||||
|     // Can be included in Promise.all
 | ||||
|     // if it returns only one group...
 | ||||
|     this.sites().then(data => { | ||||
|         data.markers.addTo(map); | ||||
|         data.geom.addTo(map); | ||||
|     }); | ||||
|     Promise.all( | ||||
|     const sites = await this.sites(); | ||||
|     sites.markers.addTo(map); | ||||
|     sites.geom.addTo(map); | ||||
| 
 | ||||
|     const groups = await Promise.all( | ||||
|         [ | ||||
|             this.notConserved(), | ||||
|             this.findings(), | ||||
|             this.prehistoric(), | ||||
|             this.underwater(), | ||||
|         ] | ||||
|     ) | ||||
|     .then(groups => groups.forEach(group => group.addTo(map))); | ||||
|     ); | ||||
|     groups.forEach(group => group.addTo(map)); | ||||
| } | ||||
| /** | ||||
|  * Create markers for sites | ||||
| @ -195,13 +195,17 @@ GIS.notConserved = async function () { | ||||
|     let notConserved = L.markerClusterGroup(clusterOptions); | ||||
| 
 | ||||
|     for (let record of notConserData.records) { | ||||
|         const marker = L.marker(record.coordinates, {icon: Icons.notConserved}) | ||||
|         const marker = L.marker( | ||||
|                 record.coordinates, | ||||
|                 {icon: Icons.notConserved, label: record.label} | ||||
|             ) | ||||
|             .bindTooltip(record.denomination) | ||||
|             .on('click', () => UI.openNotConserModal(record, '#not-conser-data')); | ||||
|          | ||||
|         notConserved.addLayer(marker); | ||||
|         // Populate app state for reuse and avoid window.Sites etc.
 | ||||
|         const markerLabel = `${record.coordinates[0]} ${record.coordinates[1]}`; | ||||
|         marker.options.municipality = record.municipality; | ||||
|         GisState.markers.notConserved[markerLabel] = marker; | ||||
|     } | ||||
| 
 | ||||
| @ -222,7 +226,9 @@ GIS.findings = async function () { | ||||
|     ); | ||||
| 
 | ||||
|     for (let record of findingsData) { | ||||
|         const marker = L.marker(record.coordinates, {icon: Icons.finding} | ||||
|         const marker = L.marker( | ||||
|                 record.coordinates, | ||||
|                 {icon: Icons.finding, label: record.label} | ||||
|             ).bindTooltip(record.object) | ||||
|             .on( | ||||
|                 'click', | ||||
| @ -231,6 +237,7 @@ GIS.findings = async function () { | ||||
| 
 | ||||
|         findings.addLayer(marker); | ||||
|         const markerLabel = `${record.coordinates[0]} ${record.coordinates[1]}`; | ||||
|         marker.options.municipality = record.municipality; | ||||
|         GisState.markers.findings[markerLabel] = marker; | ||||
|     } | ||||
| 
 | ||||
| @ -253,7 +260,7 @@ GIS.prehistoric = async function () { | ||||
|     for (let record of data.records) { | ||||
|         const marker = L.marker( | ||||
|                 record.coordinates, | ||||
|                 {icon: Icons.prehistoric} | ||||
|                 {icon: Icons.prehistoric, label: record.label} | ||||
|             ).bindTooltip(record.denomination) | ||||
|             .on( | ||||
|                 'click', | ||||
| @ -261,6 +268,7 @@ GIS.prehistoric = async function () { | ||||
|             ); | ||||
| 
 | ||||
|         const markerLabel = `${record.coordinates[0]} ${record.coordinates[1]}`; | ||||
|         marker.options.municipality = record.municipality; | ||||
|         GisState.markers.prehistoric[markerLabel] = marker; | ||||
| 
 | ||||
|         prehistoric.addLayer(marker); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user