diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index e7da8b536..b14b9d66a 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -218,7 +218,7 @@ class PaymentController extends BaseController Session::flash('message', trans($credit ? 'texts.created_payment_and_credit' : 'texts.created_payment')); } - return redirect()->to($payment->client->getRoute() . '#payments'); + return url($payment->client->getRoute()); } /** diff --git a/resources/views/payments/edit.blade.php b/resources/views/payments/edit.blade.php index 5c606e45b..ef9608f1a 100644 --- a/resources/views/payments/edit.blade.php +++ b/resources/views/payments/edit.blade.php @@ -226,7 +226,8 @@ @if ($payment) $('#saveButton').attr('disabled', true); - return true; + submitAjax(); + return false; @else // warn if amount is more than balance/credit will be created var invoiceId = $('input[name=invoice]').val(); @@ -235,13 +236,36 @@ if (NINJA.parseFloat(amount) <= invoice.balance || confirm("{{ trans('texts.amount_greater_than_balance') }}")) { $('#saveButton').attr('disabled', true); - return true; + submitAjax(); + return false; } else { return false; } @endif } + function submitAjax() { + $.post('{{ url($url) }}', $('.main-form').serialize(), function(data) { + if (data && data.toLowerCase().indexOf('http') === 0) { + NINJA.formIsChanged = false; + location.href = data; + } else { + handleSaveFailed(); + } + }).fail(function(data) { + handleSaveFailed(data); + }); + } + + function handleSaveFailed(data) { + $('#saveButton').attr('disabled', false); + var error = ''; + if (data) { + var error = firstJSONError(data.responseJSON) || data.statusText; + } + swal({!! json_encode(trans('texts.error_refresh_page')) !!}, error); + } + function submitAction(action) { $('#action').val(action); $('.main-form').submit();