]> _ Git - pmi.git/commitdiff
Form handling improvements. WIP #2738 @0.75
authorStephen Cameron <stephen@cubedesigners.com>
Thu, 8 Aug 2019 09:16:12 +0000 (11:16 +0200)
committerStephen Cameron <stephen@cubedesigners.com>
Thu, 8 Aug 2019 09:16:12 +0000 (11:16 +0200)
app/Http/Controllers/AjaxController.php
resources/js/mailform.js
resources/views/partials/newsletter-form.blade.php

index c321dfe0872029320f00119a9b13b599df831f79..b92abf6675484a4c295fa3186a799994d0abeb54 100644 (file)
@@ -68,6 +68,10 @@ class AjaxController extends CubistFrontController
                 $subject = '[' . $page->form_prefix . '] ';
             }
 
+            if (isset($validatedData['subject'])) {
+                $subject .= $validatedData['subject'];
+            }
+
             $sender = '';
             if (isset($validatedData['firstname'])) {
                 $sender .= $validatedData['firstname'];
@@ -81,7 +85,7 @@ class AjaxController extends CubistFrontController
             }
 
             $message->replyTo($validatedData['email'], $sender);
-            $message->subject($subject . $validatedData['subject']);
+            $message->subject($subject);
         });
     }
 
index 8ed46de31e4dd8825e84f5918996489cd6f718b0..42ef232d2177b1ad58b6e22b27a74900ece92bc3 100644 (file)
@@ -27,16 +27,16 @@ $(function () {
             type: $(this).attr('method'),
             data: $(this).serialize(),
         }).done(function (response) {
-            $(form).find('.error').removeClass('error');
-            // Todo: make this more customisable from the form
-            $(form).html('<p class="center text-2xl text-center p-8" >' + $(form).data('confirmation') + '</p>');
+            let responseClasses = form.data('confirmation-classes') || 'text-2xl text-center p-8';
+            form.find('.error').removeClass('error');
+            form.html(`<p class="${responseClasses}">${form.data('confirmation')}</p>`);
         }).fail(function (response) {
             button.text(button.data('text')).prop('disabled', false);
-            $(form).find('.error').removeClass('error');
-            $(form).find('.errormessage').remove();
+            form.find('.error').removeClass('error');
+            form.find('.errormessage').remove();
             $.each(response.responseJSON.errors, function (k, v) {
                 if (v.length > 0) {
-                    var field = $(form).find('[name="' + k + '"]');
+                    var field = form.find('[name="' + k + '"]');
                     $(field).addClass('error');
                     $('<span class="errormessage">' + v[0] + '</span>').insertBefore(field);
                 }
index 73ef1fe93e8ae0d0fd6cf830e67e9c0c874f696b..5075c610630739f33837474a71915f7a0e41b33b 100644 (file)
@@ -6,7 +6,10 @@
     {{ __('Inscription Newsletter') }}
 </h3>
 
-<form action="/ajax/newsletter" method="post" class="ajax-form mailform text-navy" data-confirmation="{{ __('Merci, vous avez été inscrit avec succès') }}" novalidate>
+<form action="/ajax/newsletter" method="post" class="ajax-form mailform text-navy"
+      data-confirmation="{{ __('Merci, vous avez été inscrit avec succès') }}"
+      data-confirmation-classes="text-green-500"
+      novalidate>
     <label for="newsletter_email" class="form-input">{{ __('Email') }}
         <input type="email" name="email" id="newsletter_email" class="py-3 mt-3" required>
     </label>