diff --git a/app/Http/Controllers/Purchases/Payments.php b/app/Http/Controllers/Purchases/Payments.php index f3980f8cd..bf5b3225e 100644 --- a/app/Http/Controllers/Purchases/Payments.php +++ b/app/Http/Controllers/Purchases/Payments.php @@ -66,7 +66,17 @@ class Payments extends Controller $payment_methods = Modules::getPaymentMethods(); - return view('purchases.payments.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'vendors', 'categories', 'payment_methods')); + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return view('purchases.payments.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'vendors', 'categories', 'payment_methods', 'file_types')); } /** @@ -166,7 +176,17 @@ class Payments extends Controller $date_format = $this->getCompanyDateFormat(); - return view('purchases.payments.edit', compact('payment', 'accounts', 'currencies', 'currency', 'vendors', 'categories', 'payment_methods', 'date_format')); + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return view('purchases.payments.edit', compact('payment', 'accounts', 'currencies', 'currency', 'vendors', 'categories', 'payment_methods', 'date_format', 'file_types')); } /** diff --git a/app/Http/Controllers/Sales/Revenues.php b/app/Http/Controllers/Sales/Revenues.php index 15aead9bf..6e761745e 100644 --- a/app/Http/Controllers/Sales/Revenues.php +++ b/app/Http/Controllers/Sales/Revenues.php @@ -66,7 +66,17 @@ class Revenues extends Controller $payment_methods = Modules::getPaymentMethods(); - return view('sales.revenues.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'customers', 'categories', 'payment_methods')); + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return view('sales.revenues.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'customers', 'categories', 'payment_methods', 'file_types')); } /** @@ -166,7 +176,17 @@ class Revenues extends Controller $date_format = $this->getCompanyDateFormat(); - return view('sales.revenues.edit', compact('revenue', 'accounts', 'currencies', 'currency', 'customers', 'categories', 'payment_methods', 'date_format')); + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return view('sales.revenues.edit', compact('revenue', 'accounts', 'currencies', 'currency', 'customers', 'categories', 'payment_methods', 'date_format', 'file_types')); } /** diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 04ef72e94..cba2297bc 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -148,6 +148,7 @@ class Kernel extends HttpKernel 'company.currencies' => \App\Http\Middleware\LoadCurrencies::class, 'company.settings' => \App\Http\Middleware\LoadSettings::class, 'company.signed' => \App\Http\Middleware\SignedCompany::class, + 'dropzone' => \App\Http\Middleware\Dropzone::class, 'header.x' => \App\Http\Middleware\AddXHeader::class, 'menu.admin' => \App\Http\Middleware\AdminMenu::class, 'menu.portal' => \App\Http\Middleware\PortalMenu::class, diff --git a/app/Http/Middleware/Dropzone.php b/app/Http/Middleware/Dropzone.php new file mode 100644 index 000000000..8b0bba235 --- /dev/null +++ b/app/Http/Middleware/Dropzone.php @@ -0,0 +1,65 @@ +method() != 'POST') && ($request->method() != 'PATCH')) { + return $next($request); + } + + $multiple = false; + + foreach ($request->all() as $key => $value) { + if (!is_array($value)) { + continue; + } + + $files = []; + $uploaded = []; + + foreach ($value as $index => $parameter) { + // single file uploaded.. + if (!is_array($parameter) && !$multiple) { + if (!Arr::has($value, 'dropzone')) { + continue; + } + + $request->request->set('uploaded_' . $key, $value); + + unset($request[$key]); + break; + } + + // multiple file uploaded.. + if (!Arr::has($parameter, 'dropzone')) { + $files[] = $parameter; + + continue; + } + + $multiple = true; + $uploaded[] = $parameter; + } + + if ($multiple && $uploaded) { + $request->request->set('uploaded_' . $key, $uploaded); + $request->request->set($key, $files); + } + } + + return $next($request); + } +} diff --git a/app/Http/Requests/Banking/Transaction.php b/app/Http/Requests/Banking/Transaction.php index dfa4f2f4d..e3b347c8e 100644 --- a/app/Http/Requests/Banking/Transaction.php +++ b/app/Http/Requests/Banking/Transaction.php @@ -41,7 +41,7 @@ class Transaction extends FormRequest 'contact_id' => 'nullable|integer', 'category_id' => 'required|integer', 'payment_method' => 'required|string', - 'attachment' => $attachment, + 'attachment.*' => $attachment, ]; } diff --git a/app/Jobs/Banking/CreateTransaction.php b/app/Jobs/Banking/CreateTransaction.php index 40e2a485d..001f4bddc 100644 --- a/app/Jobs/Banking/CreateTransaction.php +++ b/app/Jobs/Banking/CreateTransaction.php @@ -37,9 +37,11 @@ class CreateTransaction extends Job // Upload attachment if ($this->request->file('attachment')) { - $media = $this->getMedia($this->request->file('attachment'), 'transactions'); + foreach ($this->request->file('attachment') as $attachment) { + $media = $this->getMedia($attachment, 'transactions'); - $this->transaction->attachMedia($media, 'attachment'); + $this->transaction->attachMedia($media, 'attachment'); + } } // Recurring diff --git a/app/Jobs/Banking/UpdateTransaction.php b/app/Jobs/Banking/UpdateTransaction.php index b444e57fd..ea5733ce1 100644 --- a/app/Jobs/Banking/UpdateTransaction.php +++ b/app/Jobs/Banking/UpdateTransaction.php @@ -37,9 +37,15 @@ class UpdateTransaction extends Job // Upload attachment if ($this->request->file('attachment')) { - $media = $this->getMedia($this->request->file('attachment'), 'transactions'); + $this->deleteMediaModel($this->transaction, 'attachment', $this->request); - $this->transaction->attachMedia($media, 'attachment'); + foreach ($this->request->file('attachment') as $attachment) { + $media = $this->getMedia($attachment, 'transactions'); + + $this->transaction->attachMedia($media, 'attachment'); + } + } elseif (!$this->request->file('attachment') && $this->transaction->attachment) { + $this->deleteMediaModel($this->transaction, 'attachment', $this->request); } // Recurring diff --git a/app/Jobs/Document/UpdateDocument.php b/app/Jobs/Document/UpdateDocument.php index 680b4ab25..7edff00f9 100644 --- a/app/Jobs/Document/UpdateDocument.php +++ b/app/Jobs/Document/UpdateDocument.php @@ -46,13 +46,15 @@ class UpdateDocument extends Job \DB::transaction(function () { // Upload attachment if ($this->request->file('attachment')) { - $this->document->delete_attachment(); + $this->deleteMediaModel($this->document, 'attachment', $this->request); foreach ($this->request->file('attachment') as $attachment) { $media = $this->getMedia($attachment, Str::plural($this->document->type)); $this->document->attachMedia($media, 'attachment'); } + } elseif (!$this->request->file('attachment') && $this->document->attachment) { + $this->deleteMediaModel($this->document, 'attachment', $this->request); } $this->deleteRelationships($this->document, ['items', 'item_taxes', 'totals']); diff --git a/app/Models/Banking/Transaction.php b/app/Models/Banking/Transaction.php index d57ec6575..188a45366 100644 --- a/app/Models/Banking/Transaction.php +++ b/app/Models/Banking/Transaction.php @@ -3,6 +3,7 @@ namespace App\Models\Banking; use App\Abstracts\Model; +use App\Models\Common\Media as MediaModel; use App\Models\Setting\Category; use App\Scopes\Transaction as Scope; use App\Traits\Currencies; @@ -320,7 +321,16 @@ class Transaction extends Model return false; } - return $this->getMedia('attachment')->last(); + return $this->getMedia('attachment')->all(); + } + + public function delete_attachment() + { + if ($attachments = $this->attachment) { + foreach ($attachments as $file) { + MediaModel::where('id', $file->id)->delete(); + } + } } /** diff --git a/app/Traits/Uploads.php b/app/Traits/Uploads.php index 18f219e0d..1576ab5d1 100644 --- a/app/Traits/Uploads.php +++ b/app/Traits/Uploads.php @@ -3,10 +3,10 @@ namespace App\Traits; use MediaUploader; +use App\Models\Common\Media as MediaModel; trait Uploads { - public function getUploadedFilePath($file, $folder = 'settings', $company_id = null) { $path = ''; @@ -63,4 +63,35 @@ trait Uploads return MediaUploader::importPath($disk, $path); } + + public function deleteMediaModel($model, $parameter, $request = null) + { + $medias = $model->$parameter; + + if (!$medias) { + return; + } + + $already_uploaded = []; + + if ($request && isset($request['uploaded_' . $parameter])) { + $uploaded = $request['uploaded_' . $parameter]; + + if (count($medias) == count($uploaded)) { + return; + } + + foreach ($uploaded as $old_media) { + $already_uploaded[] = $old_media['id']; + } + } + + foreach ((array)$medias as $media) { + if (in_array($media->id, $already_uploaded)) { + continue; + } + + MediaModel::where('id', $media->id)->delete(); + } + } } diff --git a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue index 8007f2663..dff2f1677 100644 --- a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue +++ b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue @@ -11,6 +11,10 @@
+ + + +
@@ -20,6 +24,10 @@
+ + + +
@@ -133,6 +141,24 @@ export default { } else { self.$emit('change', self.files); } + + if (file.type.indexOf("image") == -1) { + var ext = file.name.split('.').pop(); + + if (ext == "pdf") { + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + file.previewElement.querySelector("[data-dz-thumbnail-pdf]").classList.remove("d-none"); + } else if ((ext.indexOf("doc") != -1) || (ext.indexOf("docx") != -1)) { + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + file.previewElement.querySelector("[data-dz-thumbnail-word]").classList.remove("d-none"); + } else if ((ext.indexOf("xls") != -1) || (ext.indexOf("xlsx") != -1)) { + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + file.previewElement.querySelector("[data-dz-thumbnail-excel]").classList.remove("d-none"); + } else { + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + file.previewElement.querySelector("[data-dz-thumbnail-image]").classList.remove("d-none"); + } + } }), dropzone.on('removedfile', function (file) { @@ -163,15 +189,27 @@ export default { if (self.attachments.length) { setTimeout(() => { self.attachments.forEach(async (attachment) => { - let blob = await self.getAttachmentContent(attachment.path); - let file = new File([blob], attachment.name, { type: blob.type }); + var mockFile = { + id: attachment.id, + name: attachment.name, + size: attachment.size, + type: attachment.type, + download: attachment.downloadPath, + dropzone: 'edit', + }; - dropzone.displayExistingFile(file, attachment.path, () => { - if (attachment.downloadPath) { - file.previewElement.querySelector("[data-dz-download]").href = attachment.downloadPath; - file.previewElement.querySelector("[data-dz-download]").classList.remove("d-none"); - } - }); + dropzone.emit("addedfile", mockFile); + dropzone.options.thumbnail.call(dropzone, mockFile, attachment.path); + + // Make sure that there is no progress bar, etc... + dropzone.emit("complete", mockFile); + }); + + self.files.forEach(async (attachment) => { + if (attachment.download) { + attachment.previewElement.querySelector("[data-dz-download]").href = attachment.download; + attachment.previewElement.querySelector("[data-dz-download]").classList.remove("d-none"); + } }); if (self.preview == 'single' && self.attachments.length == 1) { @@ -186,12 +224,6 @@ export default { preview.innerHTML = ''; }, - - async getAttachmentContent(imageUrl) { - return await axios.get(imageUrl, { responseType: 'blob' }).then(function (response) { - return response.data; - }); - } }, async mounted() { diff --git a/resources/assets/js/plugins/form.js b/resources/assets/js/plugins/form.js index aac79e8a6..fe839c8a9 100644 --- a/resources/assets/js/plugins/form.js +++ b/resources/assets/js/plugins/form.js @@ -347,7 +347,11 @@ export default class Form { submit() { FormData.prototype.appendRecursive = function(data, wrapper = null) { - for(var name in data) { + for (var name in data) { + if (name == "previewElement" || name == "previewTemplate") { + continue; + } + if (wrapper) { if ((typeof data[name] == 'object' || Array.isArray(data[name])) && ((data[name] instanceof File != true ) && (data[name] instanceof Blob != true))) { this.appendRecursive(data[name], wrapper + '[' + name + ']'); diff --git a/resources/views/partials/form/file_group.blade.php b/resources/views/partials/form/file_group.blade.php index 7591b9a36..1b7158f4d 100644 --- a/resources/views/partials/form/file_group.blade.php +++ b/resources/views/partials/form/file_group.blade.php @@ -45,17 +45,24 @@ @foreach($value as $attachment) @php $attachments[] = [ + 'id' => $attachment->id, 'name' => $attachment->filename . '.' . $attachment->extension, - 'path' => route('uploads.get', $attachment->id), - 'downloadPath' => route('uploads.download', $attachment->id) + 'path' => route('uploads.get', $attachment->id), + 'type' => $attachment->mime_type, + 'size' => $attachment->size, + 'downloadPath' => route('uploads.download', $attachment->id), ]; @endphp @endforeach @elseif ($value instanceof \Plank\Mediable\Media) @php $attachments[] = [ + 'id' => $value->id, 'name' => $value->filename . '.' . $value->extension, - 'path' => route('uploads.get', $value->id) + 'path' => route('uploads.get', $value->id), + 'type' => $value->mime_type, + 'size' => $value->size, + 'downloadPath' => false, ]; @endphp @else @@ -63,12 +70,16 @@ $attachment = \Plank\Mediable\Media::find($value); $attachments[] = [ + 'id' => $attachment->id, 'name' => $attachment->filename . '.' . $attachment->extension, - 'path' => route('uploads.get', $attachment->id) + 'path' => route('uploads.get', $attachment->id), + 'type' => $attachment->mime_type, + 'size' => $attachment->size, + 'downloadPath' => false, ]; @endphp @endif - + :attachments="{{ json_encode($attachments) }}" @endif diff --git a/resources/views/purchases/payments/create.blade.php b/resources/views/purchases/payments/create.blade.php index 7744147f4..b9cc329c4 100644 --- a/resources/views/purchases/payments/create.blade.php +++ b/resources/views/purchases/payments/create.blade.php @@ -38,9 +38,9 @@ {{ Form::textGroup('reference', trans('general.reference'), 'file', []) }} - {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'form-file']) }} - {{ Form::selectGroup('document_id', trans_choice('general.bills', 1), 'file-invoice', [], null, ['disabled' => 'true']) }} + + {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], null, 'col-md-12') }} diff --git a/resources/views/purchases/payments/edit.blade.php b/resources/views/purchases/payments/edit.blade.php index b4b3fca8e..933992f2b 100644 --- a/resources/views/purchases/payments/edit.blade.php +++ b/resources/views/purchases/payments/edit.blade.php @@ -57,19 +57,12 @@ {{ Form::textGroup('reference', trans('general.reference'), 'file',[]) }} - @if ($payment->attachment) -
- @php $file = $payment->attachment; @endphp - @include('partials.media.file') -
- @else - {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'form-file']) }} - @endif - @if ($payment->bill) {{ Form::textGroup('document', trans_choice('general.bills', 1), 'file-invoice', ['disabled' => 'true'], $payment->bill->document_number) }} {{ Form::hidden('document_id', $payment->bill->id) }} @endif + + {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], $payment->attachment, 'col-md-12') }} diff --git a/resources/views/sales/revenues/create.blade.php b/resources/views/sales/revenues/create.blade.php index 59c839319..d3bd3a409 100644 --- a/resources/views/sales/revenues/create.blade.php +++ b/resources/views/sales/revenues/create.blade.php @@ -38,9 +38,9 @@ {{ Form::textGroup('reference', trans('general.reference'), 'file', []) }} - {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'form-file']) }} - {{ Form::selectGroup('document_id', trans_choice('general.invoices', 1), 'file-invoice', [], null, ['disabled' => 'true']) }} + + {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], null, 'col-md-12') }} diff --git a/resources/views/sales/revenues/edit.blade.php b/resources/views/sales/revenues/edit.blade.php index 02f5c2ec9..8932d5570 100644 --- a/resources/views/sales/revenues/edit.blade.php +++ b/resources/views/sales/revenues/edit.blade.php @@ -57,19 +57,12 @@ {{ Form::textGroup('reference', trans('general.reference'), 'file',[]) }} - @if ($revenue->attachment) -
- @php $file = $revenue->attachment; @endphp - @include('partials.media.file') -
- @else - {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'form-file']) }} - @endif - @if ($revenue->invoice) {{ Form::textGroup('document', trans_choice('general.invoices', 1), 'file-invoice', ['disabled' => 'true'], $revenue->invoice->document_number) }} {{ Form::hidden('document_id', $revenue->invoice->id) }} @endif + + {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], $revenue->attachment, 'col-md-12') }} diff --git a/routes/admin.php b/routes/admin.php index 7dbcffa4f..bbaf2b85f 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -18,7 +18,7 @@ Route::group(['prefix' => 'common'], function () { Route::get('companies/{company}/switch', 'Common\Companies@switch')->name('companies.switch'); Route::get('companies/{company}/enable', 'Common\Companies@enable')->name('companies.enable'); Route::get('companies/{company}/disable', 'Common\Companies@disable')->name('companies.disable'); - Route::resource('companies', 'Common\Companies'); + Route::resource('companies', 'Common\Companies', ['middleware' => ['dropzone']]); Route::get('dashboards/{dashboard}/switch', 'Common\Dashboards@switch')->name('dashboards.switch'); Route::get('dashboards/{dashboard}/enable', 'Common\Dashboards@enable')->name('dashboards.enable'); @@ -37,7 +37,7 @@ Route::group(['prefix' => 'common'], function () { Route::get('items/export', 'Common\Items@export')->name('items.export'); Route::get('items/{item}/enable', 'Common\Items@enable')->name('items.enable'); Route::get('items/{item}/disable', 'Common\Items@disable')->name('items.disable'); - Route::resource('items', 'Common\Items', ['middleware' => ['money']]); + Route::resource('items', 'Common\Items', ['middleware' => ['money', 'dropzone']]); Route::resource('search', 'Common\Search'); @@ -61,7 +61,7 @@ Route::group(['prefix' => 'auth'], function () { Route::get('users/{user}/read-invoices', 'Auth\Users@readOverdueInvoices')->name('users.read.invoices'); Route::get('users/{user}/enable', 'Auth\Users@enable')->name('users.enable'); Route::get('users/{user}/disable', 'Auth\Users@disable')->name('users.disable'); - Route::resource('users', 'Auth\Users'); + Route::resource('users', 'Auth\Users', ['middleware' => ['dropzone']]); Route::resource('roles', 'Auth\Roles'); @@ -79,12 +79,12 @@ Route::group(['prefix' => 'sales'], function () { Route::get('invoices/addItem', 'Sales\Invoices@addItem')->middleware(['money'])->name('invoice.add.item'); Route::post('invoices/import', 'Sales\Invoices@import')->name('invoices.import'); Route::get('invoices/export', 'Sales\Invoices@export')->name('invoices.export'); - Route::resource('invoices', 'Sales\Invoices', ['middleware' => ['date.format', 'money']]); + Route::resource('invoices', 'Sales\Invoices', ['middleware' => ['date.format', 'money', 'dropzone']]); Route::get('revenues/{revenue}/duplicate', 'Sales\Revenues@duplicate')->name('revenues.duplicate'); Route::post('revenues/import', 'Sales\Revenues@import')->name('revenues.import'); Route::get('revenues/export', 'Sales\Revenues@export')->name('revenues.export'); - Route::resource('revenues', 'Sales\Revenues', ['middleware' => ['date.format', 'money']]); + Route::resource('revenues', 'Sales\Revenues', ['middleware' => ['date.format', 'money', 'dropzone']]); Route::get('customers/currency', 'Sales\Customers@currency'); Route::get('customers/{customer}/duplicate', 'Sales\Customers@duplicate')->name('customers.duplicate'); @@ -107,12 +107,12 @@ Route::group(['prefix' => 'purchases'], function () { Route::get('bills/addItem', 'Purchases\Bills@addItem')->middleware(['money'])->name('bill.add.item'); Route::post('bills/import', 'Purchases\Bills@import')->name('bills.import'); Route::get('bills/export', 'Purchases\Bills@export')->name('bills.export'); - Route::resource('bills', 'Purchases\Bills', ['middleware' => ['date.format', 'money']]); + Route::resource('bills', 'Purchases\Bills', ['middleware' => ['date.format', 'money', 'dropzone']]); Route::get('payments/{payment}/duplicate', 'Purchases\Payments@duplicate')->name('payments.duplicate'); Route::post('payments/import', 'Purchases\Payments@import')->name('payments.import'); Route::get('payments/export', 'Purchases\Payments@export')->name('payments.export'); - Route::resource('payments', 'Purchases\Payments', ['middleware' => ['date.format', 'money']]); + Route::resource('payments', 'Purchases\Payments', ['middleware' => ['date.format', 'money', 'dropzone']]); Route::get('vendors/currency', 'Purchases\Vendors@currency'); Route::get('vendors/{vendor}/duplicate', 'Purchases\Vendors@duplicate')->name('vendors.duplicate'); @@ -121,7 +121,7 @@ Route::group(['prefix' => 'purchases'], function () { Route::get('vendors/{vendor}/enable', 'Purchases\Vendors@enable')->name('vendors.enable'); Route::get('vendors/{vendor}/currency', 'Purchases\Vendors@currency')->name('vendors.currency'); Route::get('vendors/{vendor}/disable', 'Purchases\Vendors@disable')->name('vendors.disable'); - Route::resource('vendors', 'Purchases\Vendors'); + Route::resource('vendors', 'Purchases\Vendors', ['middleware' => ['dropzone']]); }); Route::group(['prefix' => 'banking'], function () { @@ -162,7 +162,7 @@ Route::group(['prefix' => 'settings'], function () { Route::group(['as' => 'settings.'], function () { Route::get('settings', 'Settings\Settings@index')->name('index'); Route::patch('settings', 'Settings\Settings@update')->name('update'); - Route::get('company', 'Settings\Company@edit')->name('company.edit'); + Route::get('company', 'Settings\Company@edit')->middleware('dropzone')->name('company.edit'); Route::get('localisation', 'Settings\Localisation@edit')->name('localisation.edit'); Route::get('invoice', 'Settings\Invoice@edit')->name('invoice.edit'); Route::get('default', 'Settings\Defaults@edit')->name('default.edit'); @@ -174,7 +174,7 @@ Route::group(['prefix' => 'settings'], function () { Route::group(['as' => 'settings.'], function () { Route::get('{alias}/settings', 'Settings\Modules@edit')->name('module.edit'); - Route::patch('{alias}/settings', 'Settings\Modules@update')->name('module.update'); + Route::patch('{alias}/settings', 'Settings\Modules@update')->middleware('dropzone')->name('module.update'); }); Route::group(['as' => 'apps.', 'prefix' => 'apps'], function () { @@ -232,6 +232,6 @@ Route::group(['as' => 'modals.', 'prefix' => 'modals'], function () { Route::patch('invoice-templates', 'Modals\InvoiceTemplates@update')->name('invoice-templates.update'); Route::get('documents/item-columns/edit', 'Modals\DocumentItemColumns@edit')->name('documents.item-columns.edit'); Route::patch('documents/item-columns', 'Modals\DocumentItemColumns@update')->name('documents.item-columns.update'); - Route::resource('documents/{document}/transactions', 'Modals\DocumentTransactions', ['names' => 'documents.document.transactions', 'middleware' => ['date.format', 'money']]); + Route::resource('documents/{document}/transactions', 'Modals\DocumentTransactions', ['names' => 'documents.document.transactions', 'middleware' => ['date.format', 'money', 'dropzone']]); Route::resource('taxes', 'Modals\Taxes'); }); diff --git a/routes/portal.php b/routes/portal.php index 968f71144..856ee4ff3 100644 --- a/routes/portal.php +++ b/routes/portal.php @@ -20,7 +20,7 @@ Route::group(['as' => 'portal.'], function () { Route::resource('payments', 'Portal\Payments'); Route::get('profile/read-invoices', 'Portal\Profile@readOverdueInvoices')->name('invoices.read'); - Route::resource('profile', 'Portal\Profile'); + Route::resource('profile', 'Portal\Profile', ['middleware' => ['dropzone']]); Route::get('logout', 'Auth\Login@destroy')->name('logout'); });