{% extends 'Common/base.html.twig' %}
{% import 'Common/parts/functions.html.twig' as function %}
{% block title %}{{ 'admin.whater_point.map.title'|trans }} | {{ parent() }}{% endblock %}
{% block stylesheets %}
{{ parent() }}
{{ encore_entry_link_tags('select2_styles') }}
{{ encore_entry_link_tags('leaflet_styles') }}
{% endblock stylesheets %}
{% block javascripts %}
{{ parent() }}
{{ encore_entry_script_tags('select2_js') }}
{{ encore_entry_script_tags('leaflet_js') }}
{{ encore_entry_script_tags('wt_whater_point_map') }}
{% endblock javascripts %}
{% block contents %}
<div class="container whater-map" ng-controller="mapWhaterpointsCtrl">
<nav class="mb-2" aria-label="breadcrumb">
<ol class="breadcrumb mb-0">
<li class="breadcrumb-item"><a href="{{path('web_init')}}">Inicio</a></li>
{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
<li class="breadcrumb-item"><a href="{{path('web_app_user_dashboard')}}">Mi cuenta</a></li>
{% endif %}
<li class="breadcrumb-item active" aria-current="page">Mapa</li>
</ol>
</nav>
<div class="mb-2">
<div class="border-bottom mb-3 mx-n3 px-2 mx-lg-n6 px-lg-6">
<div class="row g-3 flex-between-end align-items-center mb-5">
<div class="col-auto me-auto">
<h2 >{{ 'admin.whater_point.map.title'|trans }}</h2>
</div>
<div class="col-auto ms-auto">
{% if is_granted('IS_AUTHENTICATED_FULLY') and (app.user.user.activeRole.type == 'ROLE_ADMIN') %}
<a href="{{ url('web_admin_whater_point_list') }}" class="btn btn-phoenix-secondary mb-2 me-2 mb-sm-0">Listado</a>
{% endif %}
<a href="{{ url('web_app_whater_point_register') }}" class="btn btn-phoenix-secondary mb-2 me-2 mb-sm-0">Nuevo</a>
</div>
</div>
</div>
</div>
{{ function.showFlashes() }}
<ul class="nav nav-links mb-3 mb-lg-2 mx-n3">
<li class="nav-item">
<div class="nav-link active text-decoration-underline" id="link-whaterpoints" aria-current="page" ng-click="clickFilterLinkWhaterpoints()">
Mostrar Whaterpoints
</div>
</li>
<li class="nav-item">
<div class="nav-link" id="link-establishments" ng-click="clickFilterLinkEstablishments()">
Mostrar Establecimientos
</div>
</li>
<li class="nav-item">
<div class="nav-link" id="link-distribution-networks" ng-click="clickFilterLinkDistributionNetworks()">
Mostrar Redes de Distribución
</div>
</li>
</ul>
{% set disable_filters = true %}
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
{% set disable_filters = not (app.user.user.activeRole.type == 'ROLE_ADMIN' or app.user.user.whaterOrganization != NULL) %}
<div ng-init="initActiveLicense(1)"></div>
{% endif %}
<div class="row">
<div class="col-6 col-md-4 col-lg-3 mb-1">
<label class="form-label" for="whater_name">Nombre</label>
<input type="text" id="whater_name" class="form-control mb-3" ng-init="initWhaterName()"/>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-1" ng-init="initSelectCountries()">
<label class="form-label" for="whater_country_select">Pais</label>
<select id="whater_country_select" class="form-select mb-3" >
{% for country in countries %}
<option {{country.isoCode3() == "ESP" ? "selected" : ""}} value="{{ country.isoCode3() }}">{{ country.name() }}</option>
{% endfor %}
</select>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-1" ng-init="initSelectTowns()">
<label class="form-label" for="whater_town_select">Ciudad/Municipio</label>
<select id="whater_town_select" class="form-select mb-3"
data-search-town-url="{{ url('web_api_public_zones_town_list', {'list_town[orderParameter]':'name','list_town[orderValue]':'asc','list_town[filterParameter]':'country_iso3,tablesearch'}) }}">
</select>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-1 " >
<label class="form-label"> </label>
<div>
<a class="btn btn-link text-900 fs--1"
data-bs-toggle="collapse" href="#advanced_filters" role="button"
aria-expanded="false" aria-controls="advanced_filters" >Filtros Avanzados</a>
</div>
</div>
</div>
<div class="collapse row" id="advanced_filters">
<div class="col-6 col-md-4 col-lg-3 mb-1" ng-init="initSelectWhaterStatus()">
<label class="form-label" for="whater_status_input">Estado del agua</label>
<select placeholder="Estado"
id="whater_status_input"
class="form-select mb-3"
{% if disable_filters %}disabled="disabled"{% endif %} >
<option selected value="ALL">Todos los estados</option>
<option value="WP_STATUS_SUITABLE">Apta para el consumo</option>
<option value="WP_STATUS_WITH_RESTRICTIONS">Apta con restricciones</option>
<option value="WP_STATUS_NOT_SUITABLE">No apta para el consumo</option>
<option value="WP_STATUS_UNKNOWN">Sin datos</option>
</select>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-1 select-whaterpoint-type" ng-init="initSelectWhaterType()">
<label class="form-label" for="whater_type_input">Tipo de agua</label>
<select placeholder="Estado"
id="whater_type_input"
class="form-select mb-3"
{% if disable_filters %}disabled="disabled"{% endif %} >
<option selected value="ALL">Todos los tipos</option>
<option value="WP_TYPE_FOUNTAIN">{{'whaterpoint.type.WP_TYPE_FOUNTAIN' | trans }}</option>
<option value="WP_TYPE_TAP">{{'whaterpoint.type.WP_TYPE_TAP' | trans }}</option>
<option value="WP_TYPE_DEPOSIT">{{'whaterpoint.type.WP_TYPE_DEPOSIT' | trans }}</option>
<option value="WP_TYPE_BOTTLED">{{'whaterpoint.type.WP_TYPE_BOTTLED' | trans }}</option>
<option value="WP_TYPE_SPRING">{{'whaterpoint.type.WP_TYPE_SPRING' | trans }}</option>
<option value="WP_TYPE_TREATED">{{'whaterpoint.type.WP_TYPE_TREATED' | trans }}</option>
</select>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-1 select-establishment-type" style="display:none;" ng-init="initSelectEstablishmentType()">
<label class="form-label" for="establihment_type_input">Tipo de establecimiento</label>
<select placeholder="Estado"
id="establihment_type_input"
class="form-select mb-3 "
{% if disable_filters %}disabled="disabled"{% endif %} >
<option selected value="ALL">Todos los tipos</option>
<option value="ET_COMMERCIAL_ESTABLISHMENT">{{'admin.establishment.tipology.ET_COMMERCIAL_ESTABLISHMENT' | trans }}</option>
<option value="ET_BAR_RESTAURANT_CAFETERIA">{{'admin.establishment.tipology.ET_BAR_RESTAURANT_CAFETERIA' | trans }}</option>
<option value="ET_RESTAURANT_CHAIN">{{'admin.establishment.tipology.ET_RESTAURANT_CHAIN' | trans }}</option>
<option value="ET_PRIORITIZED_BUILDING">{{'admin.establishment.tipology.ET_PRIORITIZED_BUILDING' | trans }}</option>
<option value="ET_INDIVIDUAL_ACCOMMODATION">{{'admin.establishment.tipology.ET_INDIVIDUAL_ACCOMMODATION' | trans }}</option>
<option value="ET_CENTERS">{{'admin.establishment.tipology.ET_CENTERS' | trans }}</option>
<option value="ET_HOTEL_CHAIN">{{'admin.establishment.tipology.ET_HOTEL_CHAIN' | trans }}</option>
<option value="ET_TOURISM_OFFICES">{{'admin.establishment.tipology.ET_TOURISM_OFFICES' | trans }}</option>
<option value="ET_OTHERS">{{'admin.establishment.tipology.type.ET_OTHERS' | trans }}</option>
</select>
</div>
{% if is_granted('IS_AUTHENTICATED_FULLY') and app.user.user.activeRole.type == 'ROLE_ADMIN' %}
<div class="col-6 col-md-4 col-lg-3 mb-1 select-distribution-network-type" style="display:none;" ng-init="initSelectDistributionNetworkType()">
<label class="form-label" for="distribution_network_type_select_type">Tipo de redes de distribución</label>
<select id="distribution_network_type_select_type"
class="form-select mb-3">
<option value="DN_TYPE_EXTERNAL" selected>Externa</option>
<option value="DN_TYPE_INTERMEDIATE">Intermedia</option>
<option value="DN_TYPE_INTERNAL">Interna</option>
</select>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-1 select-distribution-network" ng-init="initSelectDistributionNetwork()">
<label class="form-label" for="distribution_network_select">Red de distribución</label>
<select id="distribution_network_select"
class="form-select mb-3"
data-search-distr-network-url="{{ url('web_api_admin_list_distribution_network', {'list_distribution_network[page]' : 1,'list_distribution_network[limit]' : 40, 'list_distribution_network[filterParameter]':'country_iso3,distribution_network_name','list_distribution_network[orderParameter]':'name','list_distribution_network[orderValue]':'asc','list_distribution_network[filterValue]':'' }) }}">
</select>
</div>
{% endif %}
<div class="col-6 col-md-4 col-lg-3 mb-1" ng-init="initSelectMaxResults()">
<label class="form-label" for="whater_max_results_input">Número máximo de resultados</label>
<select placeholder="Número máximo de resultados"
id="whater_max_results_input"
class="form-select mb-3"
{% if disable_filters %}disabled="disabled"{% endif %} >
<option selected value="10">10 resultados</option>
<option value="100">100 resultados</option>
<option value="500">500 resultados</option>
<option value="1000">1000 resultados</option>
<option value="2000">2000 resultados</option>
<option value="10000">10000 resultados</option>
<option value="100000000">Todos los resultados</option>
</select>
</div>
</div>
<div class="my-4" id="map_div" ng-init="initLeafletMap('{{defaultTown.id}}', '{{defaultTown.latitude}}','{{defaultTown.longitude}}')">
<div class="alert alert-outline-warning alert-dismissible fade show py-2 d-none" role="alert" id="alert-permission-location">
Debe dar permisos al navegador para poder obtener su posicion!
(Mas información en
<a href="https://support.mozilla.org/es/kb/firefox-comparte-mi-ubicacion-con-sitios-web" target="_blank">Firefox</a>,
<a href="https://support.google.com/chrome/answer/142065?hl=es" target="_blank">Chrome</a>)
</div>
<div class="alert alert-outline-warning alert-dismissible fade show py-2 d-none" role="alert" id="alert-location-unavailable">
No se ha encontrado sensor de ubicación en su equipo para localizar su posicion en el mapa!
(Mas información en
<a href="https://support.mozilla.org/es/kb/firefox-comparte-mi-ubicacion-con-sitios-web" target="_blank">Firefox</a>,
<a href="https://support.google.com/chrome/answer/142065?hl=es" target="_blank">Chrome</a>)
</div>
<div id="whater_map_canvas" style="height:500px;width:100%"></div>
<a href="#" id="refresh_map_button" ng-click="refreshMap()" class="btn btn-link text-900 fs--1 me-1 mb-1 mt-2">Actualizar mapa</a>
</div>
<div class="offcanvas offcanvas-bottom" id="offcanvasBottom" tabindex="-1"
aria-labelledby="offcanvasBottomLabel">
<div class="offcanvas-header pb-1" >
<a class="btn btn-primary btn-sm mb-2"
ng-click="showWhaterpoint()" ng-show="mapResultsType == 'whaterpoints'"
role="button" >Ampliar información</a>
<a class="btn btn-primary btn-sm mb-2"
ng-click="showDistributionNetwork()" ng-show="mapResultsType == 'distribution_networks'"
role="button" >Ampliar información</a>
<button class="btn-close text-reset" type="button" data-bs-dismiss="offcanvas"
aria-label="Close"></button>
</div>
<div class="offcanvas-body py-0">
<div class="row" ng-show="mapResultsType == 'whaterpoints'">
<div class="col-6 col-md-4 col-lg-3 mb-2"">
<div class="mb-0 small">Nombre</div>
<div class="mb-0 fs-0" ng-bind-html="selected_whaterpoint.name"></div>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-2">
<div class="mb-0 small">Tipo</div>
<div class="mb-0 fs-0" ng-bind-html="selected_whaterpoint.type"></div>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-2">
<div class="mb-0 small">Localización</div>
<div class="mb-0 fs-0" ng-bind-html="selected_whaterpoint.location_name"></div>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-2">
<div class="mb-0 small">Dirección (<a href="#" ng-click="requestWhaterpointChange()" class="change-ubication small" target="_blank">¿La localización en el mapa es incorrecta? Pulsa aquí.</a>)</div>
<div class="mb-0 fs-0" ng-bind-html="selected_whaterpoint.address"></div>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-2">
<div class="mb-0 small">Información del agua</div>
<div class="mb-0 fs-0" ng-bind-html="selected_whaterpoint.whater_status_text"></div>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-2">
<div class="mb-0 small">Red de Distribución</div>
<div class="mb-0 fs-0" ng-bind-html="selected_whaterpoint.whater_distribution_network_text"></div>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-2">
<div class="mb-0 small">Actualizado él</div>
<div class="mb-0 fs-0" ng-bind-html="selected_whaterpoint.whater_status_at"></div>
</div>
{% if is_granted('IS_AUTHENTICATED_FULLY') and app.user.user.activeRole.type == 'ROLE_ADMIN' %}
<div class="col-6 col-md-4 col-lg-3 mb-2">
<div class="mb-0 small">ID</div>
<div class="mb-0 fs-0" ng-bind-html="selected_whaterpoint.uuid"></div>
</div>
{% endif %}
</div>
<div class="row ng-hide" ng-show="mapResultsType == 'distribution_networks'">
<div class="col-6 col-md-4 col-lg-3 mb-2"">
<div class="mb-0 small">Nombre</div>
<div class="mb-0 fs-0" ng-bind-html="selected_distribution_network.distribution_network.name"></div>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-2"">
<div class="mb-0 small">Tipo</div>
<div class="mb-0 fs-0" ng-bind-html="selected_distribution_network.distribution_network.type_text" ></div>
</div>
<div class="col-6 col-md-4 col-lg-3 mb-2"">
<div class="mb-0 small">Estado</div>
<div class="mb-0 fs-0" ng-bind-html="selected_distribution_network.distribution_network.status_text" ></div>
</div>
</div>
</div>
</div>
</div>
{% endblock contents %}