From c94ab51c528c9c7991aa644f04f00a7b8b719a0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 7 Jun 2022 15:52:42 +0300 Subject: [PATCH] close #2432 Fixed: Invoice form sent to button not working ( #2zftu0c ) --- app/Http/Controllers/Sales/Invoices.php | 8 ++++++- resources/assets/js/views/common/documents.js | 23 ++++++++++++++++++- .../documents/form/buttons.blade.php | 7 +++++- .../documents/show/content.blade.php | 1 + 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Sales/Invoices.php b/app/Http/Controllers/Sales/Invoices.php index e7e75118d..e2521f12a 100644 --- a/app/Http/Controllers/Sales/Invoices.php +++ b/app/Http/Controllers/Sales/Invoices.php @@ -70,7 +70,13 @@ class Invoices extends Controller $response = $this->ajaxDispatch(new CreateDocument($request)); if ($response['success']) { - $response['redirect'] = route('invoices.show', $response['data']->id); + $paramaters = ['invoice' => $response['data']->id]; + + if ($request->has('senddocument')) { + $paramaters['senddocument'] = true; + } + + $response['redirect'] = route('invoices.show', $paramaters); $message = trans('messages.success.added', ['type' => trans_choice('general.invoices', 1)]); diff --git a/resources/assets/js/views/common/documents.js b/resources/assets/js/views/common/documents.js index 47d9c9047..534b5e18c 100644 --- a/resources/assets/js/views/common/documents.js +++ b/resources/assets/js/views/common/documents.js @@ -8,7 +8,7 @@ import Vue from 'vue'; import DashboardPlugin from './../../plugins/dashboard-plugin'; import { addDays, format } from 'date-fns'; -import { setPromiseTimeout } from './../../plugins/functions'; +import { setPromiseTimeout, getQueryVariable } from './../../plugins/functions'; import Global from './../../mixins/global'; @@ -939,6 +939,12 @@ const app = new Vue({ this.form.due_at = due_at; }, + + onSubmitViaSendEmail() { + this.form['senddocument'] = true; + + this.onSubmit(); + }, }, created() { @@ -1040,6 +1046,21 @@ const app = new Vue({ this.dynamic_taxes = document_taxes; } + if (getQueryVariable('senddocument')) { + // clear query string + let uri = window.location.toString(); + + if (uri.indexOf("?") > 0) { + let clean_uri = uri.substring(0, uri.indexOf("?")); + + window.history.replaceState({}, document.title, clean_uri); + } + + let email_route = document.getElementById('senddocument_route').value; + + this.onEmail(email_route); + } + this.page_loaded = true; } }); diff --git a/resources/views/components/documents/form/buttons.blade.php b/resources/views/components/documents/form/buttons.blade.php index 0f9a65da5..88019dbaf 100644 --- a/resources/views/components/documents/form/buttons.blade.php +++ b/resources/views/components/documents/form/buttons.blade.php @@ -8,8 +8,13 @@ id="invoice-send-to" class="relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 ltr:ml-2 rtl:mr-2 text-base rounded-lg disabled:bg-green-100" override="class" + ::disabled="form.loading" + @click="onSubmitViaSendEmail" > - {{ trans('general.send_to') }} + + + {{ trans('general.send_to') }} + @endif diff --git a/resources/views/components/documents/show/content.blade.php b/resources/views/components/documents/show/content.blade.php index be70205ef..34ec22538 100644 --- a/resources/views/components/documents/show/content.blade.php +++ b/resources/views/components/documents/show/content.blade.php @@ -115,6 +115,7 @@ @stack('document_end') +