Don't refresh page when sending 'contact us' message

This commit is contained in:
Hillel Coren 2017-02-09 21:11:23 +02:00
parent 381184652c
commit b37f2ff96c
3 changed files with 50 additions and 19 deletions

View File

@ -138,18 +138,17 @@ class HomeController extends BaseController
*/ */
public function contactUs() public function contactUs()
{ {
Mail::raw(request()->message, function ($message) { Mail::raw(request()->contact_us_message, function ($message) {
$subject = 'Customer Message'; $subject = 'Customer Message';
if (! Utils::isNinja()) { if (! Utils::isNinja()) {
$subject .= ': v' . NINJA_VERSION; $subject .= ': v' . NINJA_VERSION;
} }
$message->to(CONTACT_EMAIL) $message->to(env('CONTACT_EMAIL'))
->from(CONTACT_EMAIL, Auth::user()->present()->fullName) ->from(CONTACT_EMAIL, Auth::user()->present()->fullName)
->replyTo(Auth::user()->email, Auth::user()->present()->fullName) ->replyTo(Auth::user()->email, Auth::user()->present()->fullName)
->subject($subject); ->subject($subject);
}); });
return redirect(Request::server('HTTP_REFERER')) return RESULT_SUCCESS;
->with('message', trans('texts.contact_us_response'));
} }
} }

View File

@ -2275,7 +2275,7 @@ $LANG = array(
'marked_sent_invoices' => 'Successfully marked invoices sent', 'marked_sent_invoices' => 'Successfully marked invoices sent',
'invoice_name' => 'Invoice', 'invoice_name' => 'Invoice',
'product_will_create' => 'product will be created', 'product_will_create' => 'product will be created',
'contact_us_response' => 'Your message has been sent', 'contact_us_response' => 'Thank you for your message! We\'ll try to respond as soon as possible.',
'last_7_days' => 'Last 7 Days', 'last_7_days' => 'Last 7 Days',
'last_30_days' => 'Last 30 Days', 'last_30_days' => 'Last 30 Days',
'this_month' => 'This Month', 'this_month' => 'This Month',

View File

@ -1,7 +1,10 @@
{!! Former::vertical_open('/contact_us')->rules([ {!! Former::vertical_open()
'from' => 'required', ->onsubmit('return onContactUsFormSubmit()')
'message' => 'required', ->addClass('contact-us-form')
]) !!} ->rules([
'contact_us_from' => 'required',
'contact_us_message' => 'required',
]) !!}
<div class="modal fade" id="contactUsModal" tabindex="-1" role="dialog" aria-labelledby="contactUsModalLabel" aria-hidden="true"> <div class="modal fade" id="contactUsModal" tabindex="-1" role="dialog" aria-labelledby="contactUsModalLabel" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog">
@ -11,21 +14,33 @@
<h4 class="modal-title">{{ trans('texts.contact_us') }}</h4> <h4 class="modal-title">{{ trans('texts.contact_us') }}</h4>
</div> </div>
<div class="modal-body"> <div class="container" style="width: 100%; padding-bottom: 0px !important">
<div class="panel panel-default" style="margin-bottom: 0px">
<div class="panel-body"> <div class="panel-body">
<div class="input-div">
{!! Former::plaintext('contact_us_from')
->label('from')
->value(Auth::user()->present()->email) !!}
{!! Former::plaintext('from') {!! Former::textarea('contact_us_message')
->value(Auth::user()->present()->email) !!} ->label('message')
->rows(10) !!}
{!! Former::textarea('message') </div>
->rows(10) !!} <div class="response-div" style="display: none; font-size: 16px">
{{ trans('texts.contact_us_response') }}
</div>
</div>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.cancel') }}</button> <div class="input-div">
<button type="submit" class="btn btn-success" onclick="submitContactUs()">{{ trans('texts.submit') }}</button> <button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.cancel') }}</button>
<button type="submit" class="btn btn-success">{{ trans('texts.submit') }}</button>
</div>
<div class="response-div" style="display: none;">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.close') }}</button>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -41,8 +56,25 @@
$(function() { $(function() {
$('#contactUsModal').on('shown.bs.modal', function() { $('#contactUsModal').on('shown.bs.modal', function() {
$("#message").focus(); $('#contactUsModal .input-div').show();
$('#contactUsModal .response-div').hide();
$("#contact_us_message").focus();
}) })
}) })
function onContactUsFormSubmit() {
$('#contactUsModal .modal-footer button').attr('disabled', true);
$.post("{{ url('/contact_us') }}", $('.contact-us-form').serialize(), function(data) {
$('#contactUsModal .input-div').hide();
$('#contactUsModal .response-div').show();
$('#contact_us_message').val('');
$('#contactUsModal .modal-footer button').attr('disabled', false);
}).fail(function(data) {
$('#contactUsModal .modal-footer button').attr('disabled', false);
});
return false;
}
</script> </script>