templates/frontend/resellers.html.twig line 1

Open in your IDE?
  1. {% extends 'frontend/base.html.twig' %}
  2. {% block metaTitle %}{% trans %}Trova i Rivenditori Piscine Astralpool Vicini Alla tua Zona{% endtrans %}{% endblock %}
  3. {% block metaDescription %}{% trans %}I rivenditori qualificati AstralPool Official Partner possono essere il tuo fornitore personale e la tua guida nella scelta della tua prossima piscina{% endtrans %}.{% endblock %}
  4. {% block body %}
  5.     {% include 'frontend/partials/_breadcrumb.html.twig' %}
  6.     <section class="space-1">
  7.         <div class="container">
  8.             <div class="position-relative mb-4">
  9.                 <div class="d-lg-none">
  10.                     <figure class="media equal-1-1">
  11.                         <span style="background-image: url('{{ asset('images/reseller.jpg') }}')"></span>
  12.                     </figure>
  13.                 </div>
  14.                 <div class="d-none d-lg-block">
  15.                     <figure class="media equal-2-1">
  16.                         <span style="background-image: url('{{ asset('images/reseller.jpg') }}')"></span>
  17.                     </figure>
  18.                 </div>
  19.             </div>
  20.         </div>
  21.     </section>
  22.     <section class="space-top-lg-1 space-bottom-lg-3 space-bottom-2">
  23.         <div class="container">
  24.             <h1 class="display-5 fw-bold mb-4">
  25.                 {{ pageIntroduction(constant('App\\Entity\\PageIntroduction::PAGE_RESELLER')).title }}
  26.             </h1>
  27.             <div class="page-content">
  28.                 {{ pageIntroduction(constant('App\\Entity\\PageIntroduction::PAGE_RESELLER')).description|raw }}
  29.             </div>
  30.             <div class="space-top-1" id="reseller-app">
  31.                 <div class="row mb-4">
  32.                     <div class="col-12 col-lg-4 mb-3 mb-lg-0">
  33.                         <input
  34.                                 type="text"
  35.                                 class="form-control"
  36.                                 placeholder="{% trans %}Inserisci località / cap per cercare un rivenditore{% endtrans %}"
  37.                                 v-model="query">
  38.                     </div>
  39.                     <div class="col-12 col-lg-8 text-end">
  40.                         <div class="dropdown" id="filter-dropdown">
  41.                             <button class="btn btn-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
  42.                                 Tipologia<span v-if="type">: [[ Translator.trans(type) ]]</span> <span class="ms-2">{{ svg_inject('filter') }}</span>
  43.                             </button>
  44.                             <ul class="dropdown-menu dropdown-menu-end">
  45.                                 <li><a class="dropdown-item" href="#" @click.prevent="type = null">{% trans %}Tutti{% endtrans %}</a></li>
  46.                                 <li><a class="dropdown-item" href="#" @click.prevent="type = t" v-for="t in types">[[ Translator.trans(t) ]]</a></li>
  47.                             </ul>
  48.                         </div>
  49.                     </div>
  50.                 </div>
  51.                 <div class="row">
  52.                     <div class="col-12 col-lg-4 order-1 order-lg-0">
  53.                         <div id="reseller-list">
  54.                             <div class="position-relative">
  55.                                 <div
  56.                                         class="search-result-box shadow bg-light rounded p-3"
  57.                                         v-show="showResults"
  58.                                 >
  59.                                     <div v-if="filteredResellers.length > 0">
  60.                                         <div class="text-muted fs-sm text-uppercase">{% trans %}Rivenditori{% endtrans %}</div>
  61.                                         <div ref="resellerList">
  62.                                             <div
  63.                                                     v-for="reseller in filteredResellers"
  64.                                                     :key="reseller.id"
  65.                                                     class="search-box-item d-flex align-items-center"
  66.                                                     tabindex="0"
  67.                                                     @click="() => selectReseller(reseller)"
  68.                                                     @keydown.enter="() => selectReseller(reseller)"
  69.                                             >
  70.                                                 <div class="rounded bg-white me-2 result-icon">
  71.                                                     <figure class="media equal-1-1" style="width: 16px; height: 16px">
  72.                                                         <span :style="{'background-image': `url('${reseller.icon.icon.publicUrl}')`}"></span>
  73.                                                     </figure>
  74.                                                 </div>
  75.                                                 <span class="fw-medium">[[ reseller.name ]]</span>
  76.                                             </div>
  77.                                         </div>
  78.                                     </div>
  79.                                     <div v-if="shownPlaces.length > 0">
  80.                                         <div class="text-muted fs-sm text-uppercase">{% trans %}Luoghi{% endtrans %}</div>
  81.                                         <div ref="placeList">
  82.                                             <div
  83.                                                     v-for="place in shownPlaces"
  84.                                                     :key="place.place_id"
  85.                                                     class="search-box-item d-flex align-items-center"
  86.                                                     tabindex="0"
  87.                                                     @click="() => selectPlace(place)"
  88.                                                     @keydown.enter="() => selectPlace(place)"
  89.                                             >
  90.                                                 <span class="rounded bg-white me-2 result-icon">
  91.                                                     <svg xmlns="http://www.w3.org/2000/svg"
  92.                                                          width="16"
  93.                                                          height="16" viewBox="0 0 24 24" stroke-width="1.5"
  94.                                                          stroke="#000000" fill="none" stroke-linecap="round"
  95.                                                          stroke-linejoin="round">
  96.                                                           <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  97.                                                           <circle cx="12" cy="11" r="3"/>
  98.                                                           <path d="M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z"/>
  99.                                                         </svg>
  100.                                                 </span>
  101.                                                 <span class="fw-medium">[[ place.description ]]</span>
  102.                                             </div>
  103.                                         </div>
  104.                                     </div>
  105.                                 </div>
  106.                             </div>
  107.                             <div class="flex-grow-1" style="overflow: scroll">
  108.                                 <div>
  109.                                     <div v-for="reseller in shownResellers"
  110.                                          class="mb-3 p-3 bg-light cursor-pointer d-flex align-items-center"
  111.                                          @click="onSelectReseller(reseller)">
  112.                                         <div style="min-width: 100px">
  113.                                             <figure class="media equal-1-1">
  114.                                                 <span :style="{'background-image': `url('${reseller.icon.icon.publicUrl}')`}"></span>
  115.                                             </figure>
  116.                                         </div>
  117.                                         <div class="ms-3 w-100">
  118.                                             <div class="w-100 d-flex justify-content-between align-content-center">
  119.                                                 <span class="h5 mb-0">[[ reseller.name ]]</span>
  120.                                                 <span class="text-primary fw-bold text-nowrap">[[ resellerDistanceFromCenter(reseller) ]] km</span>
  121.                                             </div>
  122.                                             <p class="m-0 text-primary text-uppercase fw-bold">[[ reseller.type ===
  123.                                                 'official_partner' ? 'Official Partner' : 'E-Partner' ]]</p>
  124.                                             <p class="m-0" v-html="reseller.address.fullAddress"></p>
  125.                                             <div class="d-flex">
  126.                                                 <a class="m-0 text-primary me-3" :href="`tel:${reseller.phone}`"
  127.                                                    v-if="reseller.phone">
  128.                                                     [[ reseller.phone ]]
  129.                                                 </a>
  130.                                                 <a class="m-0 text-primary" :href="`mailto:${reseller.email}`"
  131.                                                    v-if="reseller.email">
  132.                                                     [[ reseller.email ]]
  133.                                                 </a>
  134.                                             </div>
  135.                                             <div class="d-block">
  136.                                                 <a class="m-0 text-primary" :href="reseller.website" target="_blank"
  137.                                                    v-if="reseller.website">
  138.                                                     [[ reseller.website ]]
  139.                                                 </a>
  140.                                             </div>
  141.                                         </div>
  142.                                     </div>
  143.                                     <div v-if="filteredResellers.length === 0" class="text-center py-5">
  144.                                         <span class="h5 text-muted">{% trans %}Nessun risultato trovato{% endtrans %}</span>
  145.                                     </div>
  146.                                 </div>
  147.                             </div>
  148.                         </div>
  149.                     </div>
  150.                     <div class="col-12 col-lg-8 order-0 order-lg-1 position-relative">
  151.                         <div id="reseller-map"></div>
  152.                         <div v-if="selectedReseller" class="position-absolute w-100" style="top: 5px; left: 0">
  153.                             <div class="p-3 bg-light mx-3 d-flex align-items-center">
  154.                                 <div style="min-width: 100px">
  155.                                     <figure class="media equal-1-1">
  156.                                         <span :style="{'background-image': `url('${selectedReseller.icon.icon.publicUrl}')`}"></span>
  157.                                     </figure>
  158.                                 </div>
  159.                                 <div class="ms-3">
  160.                                     <span class="h5">[[ selectedReseller.name ]]</span>
  161.                                     <p class="m-0 text-primary text-uppercase fw-bold">[[ selectedReseller.type ===
  162.                                         'official_partner' ? 'Official Partner' : 'E-Partner' ]]</p>
  163.                                     <p class="m-0" v-html="selectedReseller.address.fullAddress"></p>
  164.                                     <div class="d-flex">
  165.                                         <a class="m-0 text-primary me-3" :href="`tel:${selectedReseller.phone}`"
  166.                                            v-if="selectedReseller.phone">
  167.                                             [[ selectedReseller.phone ]]
  168.                                         </a>
  169.                                         <a class="m-0 text-primary" :href="`mailto:${selectedReseller.email}`"
  170.                                            v-if="selectedReseller.email">
  171.                                             [[ selectedReseller.email ]]
  172.                                         </a>
  173.                                     </div>
  174.                                     <div class="d-block">
  175.                                         <a class="m-0 text-primary" :href="selectedReseller.website" target="_blank"
  176.                                            v-if="selectedReseller.website">
  177.                                             [[ selectedReseller.website ]]
  178.                                         </a>
  179.                                     </div>
  180.                                 </div>
  181.                             </div>
  182.                         </div>
  183.                     </div>
  184.                 </div>
  185.             </div>
  186.         </div>
  187.     </section>
  188. {% endblock %}
  189. {% block javascripts %}
  190.     <script>
  191.         window.resellers = {{ resellers|serialize('json', { groups: 'api' })|raw }};
  192.     </script>
  193.     {{ encore_entry_script_tags('frontend_reseller') }}
  194. {% endblock %}
  195. {% block stylesheets %}
  196.     {{ encore_entry_link_tags('frontend_reseller') }}
  197. {% endblock %}