templates/home/index.html.twig line 1

  1. {% extends 'base.html.twig' %}
  2. {% block body %}
  3. <!-- Spinner de carga de capas -->
  4. <div id="loading-overlay" class="loading-overlay">
  5.     <div class="loading-content">
  6.         <div class="spinner-layers"></div>
  7.         <p></p>
  8.     </div>
  9. </div>
  10. <div id="map" class="map"></div>
  11. <script>
  12.     var objSig = new uiSig();
  13.     objSig.initMap();
  14.     // Función para mostrar el spinner de capas
  15.     function showLoading(mensaje) {
  16.         let overlay = document.getElementById('loading-overlay');
  17.         let texto = overlay.querySelector('p');
  18.         texto.innerHTML = mensaje;
  19.         overlay.style.display = 'flex';
  20.     }
  21.     // Función para ocultar el spinner de capas
  22.     function hideLoading() {
  23.         let overlay = document.getElementById('loading-overlay');
  24.         let contenido = overlay.querySelector('.loading-content');        
  25.         // Ocultar overlay
  26.         overlay.style.display = 'none';        
  27.         // Restaurar el contenido original (spinner + párrafo vacío)
  28.         contenido.innerHTML = '<div class="spinner-layers"></div><p></p>';
  29.     }
  30.     document.addEventListener("DOMContentLoaded", function(event) {        
  31.         {% if default_project_id %}
  32.             showLoading('Cargando el nombre de las capas... <br/> Cuando finalice elige una comarca para empezar');
  33.             // Cargar directamente el proyecto por defecto
  34.             console.log('Cargando proyecto por defecto: {{ default_project_name }} (ID: {{ default_project_id }})');
  35.             objSig.getLayersProject({{ default_project_id }});
  36.         {% else %}
  37.             console.error('No se ha configurado un proyecto por defecto en el .env');
  38.             alert('No se ha configurado un proyecto por defecto. Contacte con el administrador.');
  39.         {% endif %}
  40.         //add click event listener to button search
  41.         let btnSearch = document.getElementById('btnSearch');
  42.         
  43.         btnSearch.addEventListener("click", function() { 
  44.             //pass parameter content input search to function search
  45.             let contentSearch = document.getElementById('searchFeatures').value;
  46.             if (contentSearch != '')
  47.                 objSig.search(contentSearch);
  48.             else
  49.                 alert('Debe introducir un valor para realizar la búsqueda');          
  50.         });
  51.         //lanzar evento click de btnSearch para que se ejecute la busqueda al pulsar enter en el input search searchFeatures
  52.         document.getElementById('searchFeatures').addEventListener('keydown', function(event) {
  53.             if (event.keyCode === 13) {
  54.                 event.preventDefault();
  55.                 btnSearch.click();
  56.             }
  57.         });
  58.         //add click event listener to button btnLimpiar
  59.         let btnLimpiar = document.getElementById('btnLimpiar');
  60.         btnLimpiar.addEventListener("click", function() { 
  61.             let ctlContentSearch = document.getElementById('searchFeatures');
  62.             ctlContentSearch.value = '';
  63.             objSig.clear();          
  64.         });
  65.     });
  66.     // Función global para que uiSig pueda llamarla cuando termine la carga de capas
  67.     window.onLayersLoaded = function() {
  68.         console.log('Capas cargadas correctamente')
  69.         hideLoading();
  70.         console.log('Capas cargadas correctamente');
  71.     };
  72.     window.onLayersLoading = function(mensaje) {
  73.         console.log('>>> onLayersLoading ejecutado:', mensaje);
  74.         showLoading(mensaje);
  75.     };
  76. </script>
  77. {% endblock %}