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');
});