From 0f18b6361e32217fc47487b7655c41bc18482f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Mon, 4 Apr 2016 20:26:25 +0200 Subject: [PATCH] FEATURE: add ajax response to contact form --- .../Controllers/Visitor/CreateNewMessage.php | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/modules/ContactForm/Http/Controllers/Visitor/CreateNewMessage.php b/modules/ContactForm/Http/Controllers/Visitor/CreateNewMessage.php index 1a466551..0afb95f3 100644 --- a/modules/ContactForm/Http/Controllers/Visitor/CreateNewMessage.php +++ b/modules/ContactForm/Http/Controllers/Visitor/CreateNewMessage.php @@ -12,7 +12,7 @@ class CreateNewMessage extends Controller { /** * Method for sending emails via contact form - * + * * @param SendNewEmailRequest $request * @param $formId * @@ -33,18 +33,26 @@ class CreateNewMessage extends Controller $status = Mail::send(Template::name($template), ['data' => $request], function (Message $message) use ($request, $form) { $message->from($request->email, $request->name); $message->to($form->module_settings->email) - ->subject('Your Reminder!'); + ->subject('Nejaky predmet - nastavovat v administraci, nebo nechavat vyplnovat uzivatele?'); }); // inform user about success or failure - if ($status) { - return redirect() - ->route('page.content', ['url' => $form->url]) - ->with('success', ''); + $this->sendResponse($status, $request, $form); + } + + private function sendResponse($status, SendNewEmailRequest $request, $form) + { + // send response for ajax + if ($request->ajax()) { + return response()->json([ + 'status' => $status ? 'success' : 'failed', + 'redirectUrl' => $form->url + ]); } else { - return redirect() - ->route('page.content', ['url' => $form->url]) - ->with('error', ''); + // redirect user to previous form + $response = redirect()->route('page.content', ['url' => $form->url]); + + return $status ? $response->with('success', '') : $response->with('error', ''); } } }