templates/front/pro/search-pro.html.twig line 1

Open in your IDE?
  1. {% extends "front/base.html.twig" %}
  2. {% block title %}
  3.     {{ 'seo.directory_title' | trans }}
  4. {% endblock %}
  5. {% block seo %}
  6.     <meta name="description" content="{{ 'seo.directory_description' | trans }}">
  7. {% endblock %}
  8. {% block stylesheets %}
  9.     <style>
  10.         .form-check {
  11.             justify-content: flex-start;
  12.         }
  13.     </style>
  14.     {{ parent() }}
  15.     {{ encore_entry_link_tags('search') }}
  16. {% endblock %}
  17. {% form_theme form _self %}
  18. {%- block choice_widget_expanded -%}
  19. {%- for child in form %}
  20.     <div class="checkbox icheck-primary">
  21.         {{- form_widget(child) -}}
  22.     </div>
  23. {% endfor -%}
  24. {%- endblock choice_widget_expanded -%}
  25. {%- block _hasLabels_widget -%}
  26.     <div class="checkbox icheck-primary">
  27.         {{- form_widget(form) -}}
  28.     </div>
  29. {%- endblock -%}
  30. {% block body %}
  31. <section class="first-section search-page search-pro pb-0" id="pro-search">
  32.     <div class="container">
  33.         <div class="row justify-content-center">
  34.             <div class="col-md-12 search-col">
  35.                 {{ form_start(form, {'attr': {'class': 'main-search'}}) }}
  36.                 <div class="form-inline">
  37.                     <div class="input-wrap">
  38.                         <div class="input-group global">
  39.                             <div class="input-group-prepend">
  40.                                 <i class="fas fa-user"></i>
  41.                             </div>
  42.                             {{ form_widget(form.name, {'attr': {'class': 'input-main-search'}}) }}
  43.                             <div class="input-group-prepend hide-desktop">
  44.                                 <button class="btn toggle-filters-mobile" type="button">
  45.                                     <i class="fal fa-sliders-h"></i>
  46.                                 </button>
  47.                                 <button class="btn search-mobile-btn" type="submit">
  48.                                     <i class="far fa-search"></i>
  49.                                 </button>
  50.                             </div>
  51.                         </div>
  52.                         <div class="search-dropdowns">
  53.                             <div class="filters-header hide-desktop">
  54.                                 <span class="title">{{ 'global.filter' | trans }}</span>
  55.                                 <button class="btn close-filter" id="close-filter" type="button">
  56.                                     <i class="fal fa-times"></i>
  57.                                 </button>
  58.                             </div>
  59.                             <div class="filters-contain">
  60.                                 <div class="custom-dropdown-input short-input" id="pro-type-wrap">
  61.                                     <span class="custom-dropdown-label" id="pro-type-checkbox-label">{{ "directory.all" | trans }}</span>
  62.                                     <div class="custom-dropdown-content" id="pro-type-checkbox">
  63.                                         {{ form_widget(form.type) }}
  64.                                     </div>
  65.                                 </div>
  66.                                 <div class="custom-dropdown-input short-input" id="sport-wrap">
  67.                                     <span class="custom-dropdown-label" id="sport-checkbox-label">{{ "directory.sport" | trans }}</span>
  68.                                     <div class="custom-dropdown-content" id="sport-checkbox">
  69.                                         {{ form_widget(form.sports) }}
  70.                                     </div>
  71.                                 </div>
  72.                                 {% set countryField = form_widget(form.country) %}
  73.                                 {% set languagesField = form_widget(form.languages) %}
  74.                                 {% set hasLabelField = form_widget(form.hasLabels) %}
  75.                                 <div class="hide-desktop pro-others-filters-responsive">
  76.                                     <div class="custom-dropdown-input short-input" id="age-lowercase">
  77.                                         <span class="custom-dropdown-label">{{ "directory.country_of_activity" | trans }}</span>
  78.                                         <div class="custom-dropdown-content">
  79.                                             {{ countryField | raw }}
  80.                                         </div>
  81.                                     </div>
  82.                                     <div class="custom-dropdown-input short-input" id="age-lowercase">
  83.                                         <span class="custom-dropdown-label">{{ "directory.languages_spoken" | trans }}</span>
  84.                                         <div class="custom-dropdown-content">
  85.                                             {{ languagesField | raw }}
  86.                                         </div>
  87.                                     </div>
  88.                                     <div class="custom-dropdown-input short-input" id="age-lowercase">
  89.                                         <span class="custom-dropdown-label">{{ "directory.labels" | trans }}</span>
  90.                                         <div class="custom-dropdown-content">
  91.                                             {{ hasLabelField | raw }}
  92.                                         </div>
  93.                                     </div>
  94.                                 </div>
  95.                                 <div class="custom-dropdown-input short-input more-fields hide-mobile">
  96.                                     <span class="custom-dropdown-label">{{ "directory.more_criteria" | trans }}</span>
  97.                                     <div class="custom-dropdown-content">
  98.                                         <div class="accordion" id="accordionMoreFields">
  99.                                             <div class="card">
  100.                                                 <div class="card-header" id="country-card">
  101.                                                     <h5 class="mb-0">
  102.                                                         <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseCountry" aria-expanded="false" aria-controls="collapseCountry">
  103.                                                             {{ "directory.country_of_activity" | trans }}
  104.                                                         </button>
  105.                                                     </h5>
  106.                                                 </div>
  107.                                                 <div id="collapseCountry" class="collapse" aria-labelledby="country" data-parent="#accordionMoreFields">
  108.                                                     <div class="card-body subcheck">
  109.                                                         <div class="row py-1">
  110.                                                             <div class="col-12">
  111.                                                                 {{ countryField | raw }}
  112.                                                             </div>
  113.                                                         </div>
  114.                                                     </div>
  115.                                                 </div>
  116.                                             </div>
  117.                                             <div class="card">
  118.                                                 <div class="card-header" id="language">
  119.                                                     <h5 class="mb-0">
  120.                                                         <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseLanguage" aria-expanded="false" aria-controls="collapseLanguage">
  121.                                                             {{ "directory.languages_spoken" | trans }}
  122.                                                         </button>
  123.                                                     </h5>
  124.                                                 </div>
  125.                                                 <div id="collapseLanguage" class="collapse" aria-labelledby="language" data-parent="#accordionMoreFields">
  126.                                                     <div class="card-body subcheck">
  127.                                                         {{ languagesField | raw }}
  128.                                                     </div>
  129.                                                 </div>
  130.                                             </div>
  131.                                             <div class="card">
  132.                                                 <div class="card-header" id="has-labels">
  133.                                                     <h5 class="mb-0">
  134.                                                         <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseLabels" aria-expanded="false" aria-controls="collapseLanguage">
  135.                                                             {{ "directory.labels" | trans }}
  136.                                                         </button>
  137.                                                     </h5>
  138.                                                 </div>
  139.                                                 <div id="collapseLabels" class="collapse" aria-labelledby="labels" data-parent="#accordionMoreFields">
  140.                                                     <div class="card-body subcheck">
  141.                                                         {{ hasLabelField | raw }}
  142.                                                     </div>
  143.                                                 </div>
  144.                                             </div>
  145.                                         </div>
  146.                                     </div>
  147.                                 </div>
  148.                             </div>
  149.                             
  150.                             <div class="hide-desktop filters-actions hide">
  151.                                 <a href="{{ path('courses') }}" class="btn btn-icon btn-reset">
  152.                                     <i class="fal fa-undo-alt"></i>
  153.                                 </a>
  154.                                 <button class="btn btn-main-search" type="submit">{{ "global.search" | trans }}</button>
  155.                             </div>
  156.                         </div>
  157.                         <button class="btn btn-main-search hide-mobile" type="submit">
  158.                             <i class="far fa-search"></i>
  159.                         </button>
  160.                     </div>
  161.                 </div>
  162.                 {{ form_end(form) }}
  163.             </div>
  164.         </div>
  165.         {% if criteria %}
  166.             <div class="row my-3">
  167.                 <div class="col-12">
  168.                     <div class="search-criteria reset-criteria">
  169.                         <a href="{{ path('directory') }}" class="btn">{{ 'global.reset' | trans }}</a>
  170.                     </div>
  171.                     {% if criteria.name %}
  172.                         <div class="search-criteria">
  173.                             "{{ criteria.name }}"
  174.                             <span class="delete-criteria" data-target="name">
  175.                                 <i class="fas fa-times"></i>
  176.                             </span>
  177.                         </div>
  178.                     {% endif %}
  179.                     {% if criteria.type %}
  180.                         {% for type in criteria.type %}
  181.                             <div class="search-criteria">
  182.                                 {{ ("global." ~ type) | trans | capitalize }}
  183.                                 {% if type == "coach" %}
  184.                                     {% set key = 0 %}
  185.                                 {% elseif type == "club" %}
  186.                                     {% set key = 1 %}
  187.                                 {% else %}
  188.                                     {% set key = 2 %}
  189.                                 {% endif %}
  190.                                 <span class="delete-criteria" data-target="type_{{ key }}">
  191.                                     <i class="fas fa-times"></i>
  192.                                 </span>
  193.                             </div>
  194.                         {% endfor %}
  195.                     {% endif %}
  196.                     {% if criteria.sports %}
  197.                         {% for sport in criteria.sports %}
  198.                             <div class="search-criteria">
  199.                                 {{ ("sport_name." ~ sport.slug) | trans }}
  200.                                 <span class="delete-criteria" data-target="sports_{{ sport.id }}">
  201.                                     <i class="fas fa-times"></i>
  202.                                 </span>
  203.                             </div>
  204.                         {% endfor %}
  205.                     {% endif %}
  206.                     {% if criteria.country %}
  207.                         <div class="search-criteria">
  208.                             {{ criteria.country | upper | countryName(app.request.locale) }}
  209.                             <span class="delete-criteria" data-target="country" data-country-code="{{ criteria.country }}">
  210.                                 <i class="fas fa-times"></i>
  211.                             </span>
  212.                         </div>
  213.                     {% endif %}
  214.                     {% if criteria.languages %}
  215.                         {% for language in criteria.languages %}
  216.                             <div class="search-criteria">
  217.                                 {{ language }}
  218.                                 <span class="delete-criteria" data-target="languages_{{ language.id }}">
  219.                                     <i class="fas fa-times"></i>
  220.                                 </span>
  221.                             </div>
  222.                         {% endfor %}
  223.                     {% endif %}
  224.                     {% if criteria.hasLabels %}
  225.                             <div class="search-criteria">
  226.                             {{ "directory.hasLabels" | trans }}
  227.                             <span class="delete-criteria" data-target="hasLabels" data-value="{{ criteria.hasLabels }}">
  228.                                 <i class="fas fa-times"></i>
  229.                             </span>
  230.                             </div>
  231.                     {% endif %}
  232.                 </div>
  233.             </div>
  234.         {% endif %}
  235.     </div>
  236. </section>
  237. <section class="search-result" id="help">
  238.     <div class="container">
  239.         <div class="row mb-5 pb-5">
  240.             {% if pros | length > 0 %}
  241.                 {% for pro in pros %}
  242.                     <div class="col-lg-4 col-xl-3 col-md-6 col-sm-6 col-12 mb-4">
  243.                         {% include "front/pro/_pro-card.html.twig" %}
  244.                     </div>
  245.                 {% endfor %}
  246.             {% else %}
  247.                 <div class="pro-box">
  248.                     <p class="empty-pro-list">{{ "directory.no_pro" | trans }}</p>
  249.                 </div>
  250.             {% endif %}
  251.         </div>
  252.         <div class="row d-flex justify-content-center">
  253.             {{ knp_pagination_render(pros, 'front/_partials/availabilities-pagination.html.twig') }}
  254.         </div>
  255.     </div>
  256. </section>
  257. {% endblock %}
  258. {% block javascript %}
  259.     {{ parent() }}
  260.     {{ encore_entry_script_tags('search') }}
  261.     <script>
  262.         var globalWidth = $(window).width();
  263.         $(document).ready(function() {
  264.             if (globalWidth > 991) {
  265.                 
  266.                 $(".pro-others-filters-responsive").remove();
  267.             }
  268.             else {
  269.                 $(".more-fields").remove();
  270.             }
  271.         });
  272.         $('.delete-criteria').on('click', function () {
  273.             let id = $(this).data('target');
  274.             let input = $('#' + id);
  275.             if (id == "country") {
  276.                 input.find('option[value="' + $(this).data('country-code') + '"').prop('selected', false);
  277.             }
  278.             else if (id == 'hasLabels') {
  279.                 $('#hasLabels_1').prop('checked', '');
  280.                 $('#hasLabels_0').prop('checked', 'checked');
  281.             }
  282.             else if (input.prop('type') == 'checkbox') {
  283.                 input.prop('checked', false);
  284.             }
  285.             else {
  286.                 input.val('');
  287.             }
  288.             $('.btn-main-search').click();
  289.         })
  290.     </script>
  291. {% endblock %}