templates/pages/blocks/sub-blocks/project-form.html.twig line 1

Open in your IDE?
  1. {# <form id="" class="{{class}} fade" action="{{ path }}" method="{{method}}" enctype="multipart/form-data"> #}
  2.     {% for item in snippets %}
  3.         {% for form in item.form %}
  4.             {% for row in form.field %}
  5.                 
  6.                 {{ include('pages/blocks/form/' ~ row.type ~ '.html.twig', {
  7.                     content : row,
  8.                     index : loop.index
  9.                 }) }}
  10.             {% endfor %}
  11.         {% endfor %}
  12.     {% endfor %}
  13.     <input type="hidden" name="recaptchakey" value="6LfHlxIrAAAAAHU0zZg_LH6kRtAYpqWqv_gzVdsU">
  14.     <input id="recaptchaResponse" type="hidden" name="g-recaptcha-response"/>
  15.     <input type="hidden" name="referer" value="{{app.request.uri}}"/>
  16.     <input type="hidden" name="email-from" value="{{snippets ? snippets[0].submition_from : '' }}"/>
  17.     <input type="hidden" name="email-to" value="{{snippets ? snippets[0].submition_to : '' }}"/>
  18.     <input type="hidden" name="email-subject" value="{{snippets ? snippets[0].submition_subject : '' }}"/>
  19. {# </form> #}
  20. <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  21. <script>
  22. $(document).ready(function() {
  23.     var recaptchaKey = $('input[name="recaptchakey"]').val();
  24.     var successMessage = `{% if content.snippets %}{{content.snippets[0].submition_message|raw}}{% endif %}`;
  25.     var errorMessage = `{% if content.snippets %}{{content.snippets[0].error_message|raw}}{% endif %}`;
  26.     
  27.     if (recaptchaKey) {
  28.         grecaptcha.ready(function() {
  29.             grecaptcha.execute(recaptchaKey, {
  30.                 action: "form_post"
  31.             }).then(function(token) {
  32.                 let recaptchaResponse = document.getElementById("recaptchaResponse");
  33.                 recaptchaResponse.value = token;
  34.                 
  35.                 // Submit the form via AJAX
  36.                 $('#message-response').on('submit', function(e) {
  37.                     e.preventDefault();
  38.                     $.ajax({
  39.                         type: 'POST',
  40.                         url: '/mail/send',
  41.                         data: $(this).serialize(),
  42.                         success: function(response) {
  43.                            
  44.                             let alertBox = $('#alert');
  45.                             let alertMessage = $('#alert-message');
  46.                             // Reset classes and hide the alert box initially
  47.                             alertBox.removeClass('success error').addClass('hidden');
  48.                             if (response.redirect) {
  49.                                 window.location.href = response.redirect;
  50.                             } else if (response.success) {
  51.                                 alertBox.addClass('success').removeClass('hidden');
  52.                                 var displayMessage = (successMessage && successMessage != '') ? successMessage : response.success;
  53.                                 alertBox.html(displayMessage);
  54.                                 // Clear the form inputs
  55.                                 $('#message-response')[0].reset();
  56.                             } else if (response.error) {
  57.                                 alertBox.addClass('error').removeClass('hidden');
  58.                                   var displayError = (errorMessage && errorMessage != '') ? errorMessage : response.error;
  59.                                  alertBox.html(displayError);
  60.                             }
  61.                         },
  62.                         error: function(error) {
  63.                             console.error('Error:', error);
  64.                             let alertBox = $('#alert');
  65.                             let alertMessage = $('#alert-message');
  66.                             alertBox.removeClass('success').addClass('error').removeClass('hidden');
  67.                              var displayError = (errorMessage && errorMessage != '') ? errorMessage : response.error;
  68.                             alertBox.html(displayError);
  69.                         }
  70.                     });
  71.                 });
  72.             });
  73.         });
  74.     } else {
  75.         console.error('reCAPTCHA key not found');
  76.     }
  77. });
  78. </script>
  79. <script src="https://www.google.com/recaptcha/api.js?render=6LfHlxIrAAAAAHU0zZg_LH6kRtAYpqWqv_gzVdsU"></script>