templates/front/promotions/promotions.html.twig line 1

Open in your IDE?
  1. {% extends "front/_common/_base.html.twig" %}
  2. {% block linkcanonical %}
  3.     <link rel="canonical" href="{{ absolute_url(path('promotions')) }}">
  4. {% endblock %}
  5. {% block cssadicional %}{% endblock %}
  6. {% block classbody %}promociones_page{% endblock %}
  7. {% block content %}
  8.     <section class="promociones">
  9.         <div class="promociones_banner">
  10.             <div class="promociones_banner_content ww_center">
  11.                 <div class="promociones_banner_miga">
  12.                     <ul>
  13.                         <li><a href="{{ path('home') }}">Inicio</a></li>
  14.                         <li><a class="active">Promociones</a></li>
  15.                     </ul>
  16.                 </div>
  17.                 <h2 class="promociones_banner_title">{{ sd.title }}</h2>
  18.             </div>
  19.         </div>
  20.         <div class="promociones_block ww_center">
  21.             {% if promotions|length > 0 %}
  22.                 <div class="promociones_wrap_items ww_center">
  23.                     {% for item in promotions %}
  24.                         <a href="" class="promociones_itm" data-img="{{ asset(item.image|image_path) }}" data-promotion="{{ item.title }}">
  25.                             <figure class="promociones_image">
  26.                                 <img src="{{ asset(item.image|image_path) }}" width="50" height="" alt="{{ item.title }}">
  27.                             </figure>
  28.                             <div class="promociones_btn_link">
  29.                                 <span>Registrarme</span>
  30.                             </div>
  31.                         </a>
  32.                     {% endfor %}
  33.                 </div>
  34.             {% else %}
  35.                 <div class="promociones_mensaje">
  36.                     <figure>
  37.                         <img src="{{ asset(sd.noDataIcon|image_path) }}" width="" alt="{{ sd.noDataIcon|split_alt }}">
  38.                     </figure>
  39.                     <h2>{{ sd.noDataMessage|nl2br ?: 'No hay promociones disponibles. Pronto tendremos más novedades.' }}</h2>
  40.                 </div>
  41.             {% endif %}
  42.         </div>
  43.     </section>
  44.     {% if promotions|length > 0 %}
  45.         <div class="popup_promociones">
  46.             <div class="popup_promociones_container ww_center">
  47.                 <span class="popup_promociones_close icon-add"></span>
  48.                 <div class="popup_promociones_left">
  49.                     <figure>
  50.                         <img id="promotion_image" width="585" alt="">
  51.                     </figure>
  52.                     <div class="popup_text_promociones">
  53.                         <p>{{ sd.formNotes|nl2br }}</p>
  54.                     </div>
  55.                 </div>
  56.                 <div class="popup_promociones_form">
  57.                     <h2>{{ sd.formTitle }}</h2>
  58.                     <p>{{ sd.formText|nl2br }}</p>
  59.                     {{ form_start(form, {'attr': {'id': 'formPromociones'}}) }}
  60.                         {% include 'front/templates/form_utm_fields.html.twig' %}
  61.                         {{ form_widget(form.promotion) }}
  62.                         {{ form_widget(form.typePerson) }}
  63.                         {{ form_widget(form.documentType) }}
  64.                         {{ form_widget(form.documentNumber) }}
  65.                         <ul>
  66.                             <li>
  67.                                 <div class="popup_promociones_input_radio">
  68.                                     <div class="popup_promociones_input_label">
  69.                                         <input checked type="radio" name="form_type" class="checkedInput validate[required]" value="Empresa" id="form_promotion_legal_person">
  70.                                         <label for="form_promotion_legal_person"><span></span>Soy empresa</label>
  71.                                     </div>
  72.                                     <div class="popup_promociones_input_label">
  73.                                         <input type="radio" name="form_type" class="checkedInput validate[required]" value="Persona natural" id="form_promotion_natural_person">
  74.                                         <label for="form_promotion_natural_person"><span></span>Soy Persona Natural</label>
  75.                                     </div>
  76.                                 </div>
  77.                             </li>
  78.                             <li class="popup_promociones_column liNoneInputs">
  79.                                 <div class="popup_promociones_inputs">
  80.                                     <select class="validate[required] inputEffect elementHidden" id="form_promotion_document_types">
  81.                                         <option value="" disabled selected></option>
  82.                                         {% for item in forms.documentTypes %}
  83.                                             <option value="{{ item.title }}">{{ item.title }}</option>
  84.                                         {% endfor %}
  85.                                     </select>
  86.                                     <label for="form_promotion_document_types">Tipo de documento*</label>
  87.                                 </div>
  88.                                 <div class="popup_promociones_inputs">
  89.                                     <input type="text" class="validate[required] inputEffect elementHidden form_promotion_document_number" id="form_promotion_document_number_natural_person">
  90.                                     <label for="form_promotion_document_number_natural_person">Número de documento*<span class="icon-arrow_drop_down"></span></label>
  91.                                 </div>
  92.                             </li>
  93.                             <li class="popup_promociones_column liNoneInputsEmpresa">
  94.                                 <div class="popup_promociones_inputs">
  95.                                     <input type="text" class="validate[required] inputEffect elementHiddenEmpresa form_promotion_document_number" id="form_promotion_document_number_legal_person">
  96.                                     <label for="form_promotion_document_number_legal_person">RUC*</label>
  97.                                 </div>
  98.                                 <div class="popup_promociones_inputs">
  99.                                     {{ form_widget(form.company, {'attr': {'class': 'validate[required] inputEffect elementHiddenEmpresa'}}) }}
  100.                                     <label for="form_promotion_company">Empresa*</label>
  101.                                 </div>
  102.                             </li>
  103.                             <li class="popup_promociones_column">
  104.                                 <div class="popup_promociones_inputs">
  105.                                     {{ form_widget(form.name, {'attr': {'class': 'inputEffect validate[required]'}}) }}
  106.                                     <label for="form_promotion_name">Nombres*</label>
  107.                                 </div>
  108.                                 <div class="popup_promociones_inputs">
  109.                                     {{ form_widget(form.department, {'attr': {'class': 'inputEffect validate[required]'}}) }}
  110.                                     <label for="form_promotion_department">Departamento*</label>
  111.                                 </div>
  112.                             </li>
  113.                             <li class="popup_promociones_column">
  114.                                 <div class="popup_promociones_inputs">
  115.                                     {{ form_widget(form.phone, {'attr': {'class': 'inputEffect validate[required, custom[phone]]'}}) }}
  116.                                     <label for="form_promotion_phone">Teléfono*</label>
  117.                                 </div>
  118.                                 <div class="popup_promociones_inputs">
  119.                                     {{ form_widget(form.email, {'attr': {'class': 'inputEffect validate[required, custom[email]]'}}) }}
  120.                                     <label for="form_promotion_email">Correo Electrónico*</label>
  121.                                 </div>
  122.                             </li>
  123.                         </ul>
  124.                         <div class="popup_promociones_obligatorio">
  125.                             <p>* Campos obligatorios</p>
  126.                         </div>
  127.                         <div class="contacto_check popup_promociones_check">
  128.                             <input type="checkbox" id="inputCheck" class="validate[required]" name="">
  129.                             <label for="inputCheck">
  130.                                 <span class="contacto_check_active"></span>
  131.                                 <p>Acepto los <a href="{{ path('terms_and_conditions') }}" target="_blank">Términos y Condiciones</a></p>
  132.                             </label>
  133.                         </div>
  134.                         <div class="popup_promociones_btn">
  135.                             <button class="btnPromocion btn btn_blue" id="btnPromocion">Enviar</button>
  136.                         </div>
  137.                     {{ form_end(form) }}
  138.                 </div>
  139.             </div>
  140.         </div>
  141.     {% endif %}
  142. {% endblock %}
  143. {% block jsfinal %}
  144.     <script src="{{ asset('static/js/validationform/jquery.validationEngine-es.js') }}"></script>
  145.     <script src="{{ asset('static/js/validationform/staff.validationEngine.js') }}"></script>
  146.     <script type="text/javascript">
  147.         const elementImage = document.getElementById('promotion_image');
  148.         let navPopup = document.querySelectorAll('.promociones_itm');
  149.         navPopup.forEach((item) =>{
  150.             item.addEventListener('click', (e)=>{
  151.                 e.preventDefault();
  152.                 elementImage.src = item.getAttribute('data-img');
  153.                 document.querySelector('.popup_promociones').classList.add('active');
  154.                 document.querySelector('.promociones_page').classList.add('is_active')
  155.             })
  156.         })
  157.         document.querySelector('.popup_promociones_close').addEventListener('click', ()=>{
  158.             document.querySelector('.popup_promociones').classList.remove('active');
  159.             document.querySelector('.promociones_page').classList.remove('is_active');
  160.             elementImage.src = null;
  161.         })
  162.         let InputChecked = document.querySelectorAll('.checkedInput');
  163.         let elementDivHidden = document.querySelectorAll('.elementHidden');
  164.         let elementHiddenEmpresa = document.querySelectorAll('.elementHiddenEmpresa');
  165.         InputChecked.forEach((item) => {
  166.             item.addEventListener('change', () => {
  167.                 if (item.value === 'Empresa') {
  168.                     elementDivHidden.forEach((el) => {
  169.                         el.disabled = true
  170.                         el.closest('.liNoneInputs').classList.remove('is_active');
  171.                     })
  172.                     elementHiddenEmpresa.forEach((el) => {
  173.                         el.disabled = false
  174.                         el.closest('.liNoneInputsEmpresa').classList.remove('is_empresa');
  175.                     })
  176.                 } else {
  177.                     elementDivHidden.forEach((el) => {
  178.                         el.disabled = false
  179.                         el.closest('.liNoneInputs').classList.add('is_active');
  180.                     })
  181.                     elementHiddenEmpresa.forEach((el) => {
  182.                         el.disabled = true
  183.                         el.closest('.liNoneInputsEmpresa').classList.add('is_empresa');
  184.                     })
  185.                 }
  186.             })
  187.         })
  188.         efectInput = function (inputName, efectInput) {
  189.             const inputs = document.getElementsByClassName(inputName);
  190.             for (let i = 0; i < inputs.length; i++) {
  191.                 inputs[i].addEventListener('change', function () {
  192.                     if (this.value) {
  193.                         this.nextElementSibling.classList.add(efectInput)
  194.                     } else {
  195.                         this.nextElementSibling.classList.remove(efectInput)
  196.                     }
  197.                 })
  198.                 inputs[i].addEventListener('keyup', function () {
  199.                     if (this.value === "") {
  200.                         this.nextElementSibling.classList.remove(efectInput)
  201.                     } else {
  202.                         this.nextElementSibling.classList.add(efectInput)
  203.                     }
  204.                 })
  205.             }
  206.         };
  207.         efectInput('inputEffect', 'fijar')
  208.         $('#form_promotion_legal_person').on('change', function () {
  209.             $('#form_promotion_typePerson').val($(this).val());
  210.             $('#form_promotion_document_types').val('');
  211.             $('#form_promotion_document_number_natural_person').val('');
  212.             $('#form_promotion_document_number_legal_person').val('');
  213.             $('#form_promotion_documentType').val('RUC');
  214.             $('#form_promotion_documentNumber').val('');
  215.             $('#form_promotion_company').val('');
  216.         })
  217.         $('#form_promotion_natural_person').on('change', function () {
  218.             $('#form_promotion_typePerson').val($(this).val());
  219.             $('#form_promotion_document_types').val('');
  220.             $('#form_promotion_document_number_natural_person').val('');
  221.             $('#form_promotion_document_number_legal_person').val('');
  222.             $('#form_promotion_documentType').val('');
  223.             $('#form_promotion_documentNumber').val('');
  224.         })
  225.         $('.promociones_itm').on('click', function () {
  226.             $('#form_promotion_promotion').val($(this).data('promotion'));
  227.         })
  228.         $('#form_promotion_legal_person').trigger('change');
  229.         $('.form_promotion_document_number').on('keyup', function () {
  230.             $('#form_promotion_documentNumber').val($(this).val());
  231.         })
  232.         $('#form_promotion_document_types').on('change', function () {
  233.             $('#form_promotion_documentType').val($(this).val());
  234.         })
  235.         const form_promotion = $('#formPromociones');
  236.         const form_promotion_button = $('#btnPromocion');
  237.         form_promotion.validationEngine('attach', {
  238.             promptPosition: "topLeft",
  239.             autoHidePrompt: true,
  240.             autoHideDelay: 3000,
  241.             binded: false,
  242.             scroll: false
  243.         });
  244.         form_promotion_button.on('click', function (event) {
  245.             event.preventDefault();
  246.             const valid = form_promotion.validationEngine('validate');
  247.             if (valid) {
  248.                 form_promotion.submit();
  249.             }
  250.         });
  251.     </script>
  252. {% endblock %}