templates/uniqskills/contact-new/index.html.twig line 1

Open in your IDE?
  1. {% extends '/uniqskills/layout_order.html.twig' %}
  2. {% block title %}{{ 'uniqskills.metaTitle.contact'|trans }}{% endblock %}
  3. {% block content %}
  4.     <style>
  5.          .ui-tooltip-content {
  6.              display:none;
  7.          }
  8.         .error {
  9.             color: red;
  10.         }
  11.         textarea {
  12.             resize: vertical;
  13.         }
  14.     </style>
  15.      <div class="registrationForm">
  16.         <div class="container">
  17.             <div class="registrationForm-content">
  18.                 <h1 class="formTitle" style="margin-bottom: 15px;">
  19.                     {{ 'uniqskills.form.contact.title'|trans }}
  20.                 </h1>
  21.                 <div class="formContent">
  22.                     <div class="universalContentFormContainer">
  23.                         <span class="titleInput">{{ 'contactForm.label.category'|trans }}:</span>
  24.                         {% set firstElement = dataForm.list|first %}
  25.                         <select class="selectInput selectCategory" data-categoryId="{{ firstElement.id }}">
  26.                             {% for item in dataForm.list %}
  27.                                 <option data-id="{{ item.id }}"><span>{{ item.name }}</span></option>
  28.                             {% endfor %}
  29.                         </select>
  30.                         <div class="subcategoryBox">
  31.                             <span class="titleInput">{{ 'contactForm.label.subject'|trans }}:</span>
  32.                             {% for item in dataForm.list %}
  33.                                 <select class="selectInput selectSubcategory {{ item.id }}{% if loop.first %} defaultSelected{% endif %}" style="display:{% if loop.first %}block{% else %}none{% endif %};">
  34.                                     <option selected data-filed="">{{ 'contactForm.label.choose'|trans }}</option>
  35.                                     {% for option in item.subjectOptions %}
  36.                                         <option data-subcategoryId={{ option.id }} data-fields="{{ option.fields|join('|') }}">{{ option.title }}</option>
  37.                                     {% endfor %}
  38.                                 </select>
  39.                             {% endfor %}
  40.                         </div>
  41.                         <form id="universalContentForm" data-url="{{ path('ajaxExecuteContactForm') }}">
  42.                             {% for item in dataForm.fields|sort((a,b) => a.position <=> b.position) %}
  43.                                 <div style="display: none;" class="form-group" data-inputId="{{ item.id }}">
  44.                                     <label class="labelInput" for="{{ item.id }}">{{ item.name }}{% if item.required == true %}*{% endif %}</label>
  45.                                     <{% if item.type == 'textarea' %}textarea style="height: 150px;"{% else %}input{% endif %} {% if item.required == true %}required{% endif %}
  46.                                             class="inputForm" name="{{ item.id }}" type="{{ item.type }}"
  47.                                             id="input-{{ item.id }}">{% if item.type == 'textarea' %}</textarea>{% endif %}
  48.                                 </div>
  49.                             {% endfor %}
  50.                             <div class="form-group form-check show checkboxInput">
  51.                                 <input name="regulation" type="checkbox" class="form-check-input" id="checkboxInput">
  52.                                 <label class="form-check-label" for="checkboxInput"><span style="margin-left: 5px;">{{ regulation|raw }}</span></label>
  53.                             </div>
  54.                             <div class="g-recaptcha" data-sitekey="{{ recaptchaPublicKey }}"></div>
  55.                             <div class="messageBox"></div>
  56.                             <div style="text-align: center">
  57.                                 <button type="submit" class="btn">{{'uniqskills.form.contact.submit'|trans|upper }}</button>
  58.                             </div>
  59.                         </form>
  60.                         <div class="messageBoxSuccess"></div>
  61.                     </div>
  62.                 </div>
  63.             </div>
  64.         </div>
  65.      </div>
  66.     {% include '/uniqskills/footer.html.twig' %}
  67. {% endblock %}
  68. {% block customjs %}
  69.     <script>
  70.         $(document).ready(function(){
  71.             jQuery.extend(jQuery.validator.messages, {
  72.                 required: "{{ 'errors.validation.required'|trans }}",
  73.                 email: "{{ 'errors.validation.email'|trans }}"
  74.             });
  75.             $('body').on('change', '.universalContentFormContainer .selectCategory', function(){
  76.                 var categoryId = $(this).children("option:selected").attr('data-id');
  77.                 $('#universalContentForm').hide();
  78.                 $(this).attr('data-categoryId', categoryId);
  79.                 $('.messageBoxSuccess').text('');
  80.                 $('.selectSubcategory').each(function(){
  81.                     var _this = $(this);
  82.                     if (_this.hasClass(categoryId)) {
  83.                         _this.show();
  84.                     } else {
  85.                         _this.hide();
  86.                     }
  87.                     $(".selectSubcategory option").prop("selected", function () {
  88.                         return this.defaultSelected;
  89.                     });
  90.                 });
  91.             });
  92.             $('body').on('change', '.universalContentFormContainer .selectSubcategory', function(){
  93.                 $('.messageBox').text('');
  94.                 $('.messageBoxSuccess').text('');
  95.                 if ($(this).find(':selected').attr('data-fields') == undefined) {
  96.                     $('#universalContentForm').hide();
  97.                 } else {
  98.                     var fieldsId = $(this).children("option:selected").attr('data-fields');
  99.                     var subcategoryId = $(this).children("option:selected").attr('data-subcategoryId');
  100.                     var arrayFields = fieldsId.split('|');
  101.                     $('#universalContentForm .form-group').each(function(){
  102.                         var _this = $(this);
  103.                         if (_this.is('.show') == false) {
  104.                             if (jQuery.inArray(_this.attr('data-inputId'), arrayFields) !== -1){
  105.                                 _this.show();
  106.                             } else {
  107.                                 _this.hide();
  108.                             }
  109.                         }
  110.                     });
  111.                     $(this).attr('data-subcategoryId', subcategoryId);
  112.                     $('#universalContentForm').show();
  113.                 }
  114.             });
  115.             $('body').on('click','.universalContentFormContainer .btn', function(e){
  116.                 e.preventDefault();
  117.                 var form = $('#universalContentForm');
  118.                 var url = form.attr('data-url');
  119.                 if (form.valid()){
  120.                     var category = $(".selectCategory").val();
  121.                     var categoryId = $(".selectCategory").attr('data-categoryId');
  122.                     var subject = $('body').find(".selectSubcategory:visible").val();
  123.                     var subjectId = $('body').find(".selectSubcategory:visible").attr('data-subcategoryId');
  124.                     var formData = new FormData(form[0]);
  125.                     formData.set('category', category);
  126.                     formData.set('categoryId', categoryId);
  127.                     formData.set('subject', subject);
  128.                     formData.set('subjectId', subjectId);
  129.                     $.ajax({
  130.                         type: 'POST',
  131.                         url: url,
  132.                         processData: false,
  133.                         contentType: false,
  134.                         data: formData,
  135.                         success: function(data)
  136.                         {
  137.                             var message = data.message
  138.                             var color = data.error == true ? '#DC143C' : '#556B2F';
  139.                             if (data.error != true){
  140.                                 $('#universalContentForm').hide('slow');
  141.                                 $('#universalContentForm input').each(function() {
  142.                                     $(this).val('');
  143.                                 });
  144.                                 $('#universalContentForm textarea').each(function() {
  145.                                     $(this).val('');
  146.                                 });
  147.                                 $('.messageBoxSuccess').text(message).css('color', color);
  148.                             }
  149.                             else{
  150.                                 $('.messageBox').text(message).css('color', color);
  151.                             }
  152.                         }
  153.                     });
  154.                 }
  155.                 return false;
  156.             });
  157.         });
  158.     </script>
  159.     <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  160. {% endblock %}