diff --git a/app/Events/Document/DocumentWasArchived.php b/app/Events/Document/DocumentWasArchived.php new file mode 100644 index 000000000000..e613e6a40175 --- /dev/null +++ b/app/Events/Document/DocumentWasArchived.php @@ -0,0 +1,54 @@ +document = $document; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/Document/DocumentWasCreated.php b/app/Events/Document/DocumentWasCreated.php new file mode 100644 index 000000000000..442f7a7b49eb --- /dev/null +++ b/app/Events/Document/DocumentWasCreated.php @@ -0,0 +1,38 @@ +document = $document; + } +} diff --git a/app/Events/Document/DocumentWasDeleted.php b/app/Events/Document/DocumentWasDeleted.php new file mode 100644 index 000000000000..92d0856e9943 --- /dev/null +++ b/app/Events/Document/DocumentWasDeleted.php @@ -0,0 +1,38 @@ +document = $document; + } +} diff --git a/app/Events/Document/DocumentWasRestored.php b/app/Events/Document/DocumentWasRestored.php new file mode 100644 index 000000000000..4e6cd6aebc11 --- /dev/null +++ b/app/Events/Document/DocumentWasRestored.php @@ -0,0 +1,38 @@ +document = $document; + } +} diff --git a/app/Events/Document/DocumentWasUpdated.php b/app/Events/Document/DocumentWasUpdated.php new file mode 100644 index 000000000000..12c10d55feb8 --- /dev/null +++ b/app/Events/Document/DocumentWasUpdated.php @@ -0,0 +1,38 @@ +document = $document; + } +} diff --git a/app/Http/Controllers/DocumentController.php b/app/Http/Controllers/DocumentController.php index 317b5c436c1c..a1c2082f590c 100644 --- a/app/Http/Controllers/DocumentController.php +++ b/app/Http/Controllers/DocumentController.php @@ -78,7 +78,7 @@ class DocumentController extends BaseController return $this->itemResponse($document); } - public function download(DownloadDocumentRequest $request, Document $document) + public function download(ShowDocumentRequest $request, Document $document) { return response()->streamDownload(function () use($document) { echo file_get_contents($document->generateUrl()); @@ -93,7 +93,7 @@ class DocumentController extends BaseController */ public function edit(EditDocumentRegquest $request, Document $document) { - // + return $this->itemResponse($document); } /** @@ -105,7 +105,7 @@ class DocumentController extends BaseController */ public function update(UpdateDocumentRequest $request, Document $document) { - // + return $this->itemResponse($document); } /** diff --git a/app/Models/Document.php b/app/Models/Document.php index 63c736dfdfce..ed62e2bc7584 100644 --- a/app/Models/Document.php +++ b/app/Models/Document.php @@ -115,9 +115,7 @@ class Document extends BaseModel public function generateRoute($absolute = false) { - return route('api.documents.show', ['document' => $this->hashed_id]); - - //return route('document.show', ['document' => $this->hashed_id]); + return route('api.documents.show', ['document' => $this->hashed_id]) . '/download'; } public function deleteFile() diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index f2b657e4ea42..df8fc4cad950 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -111,6 +111,17 @@ class EventServiceProvider extends ServiceProvider ], ClientWasRestored::class =>[ ], + // Documents + DocumentWasCreated::class =>[ + ], + DocumentWasArchived::class =>[ + ], + DocumentWasUpdated::class =>[ + ], + DocumentWasDeleted::class =>[ + ], + DocumentWasRestored::class =>[ + ], CreditWasMarkedSent::class => [ ], //Designs diff --git a/app/Repositories/DocumentRepository.php b/app/Repositories/DocumentRepository.php new file mode 100644 index 000000000000..3620985bb954 --- /dev/null +++ b/app/Repositories/DocumentRepository.php @@ -0,0 +1,50 @@ +deleteFile(); + $document->forceDelete(); + } + + public function restore($document) + { + if (! $document->trashed()) { + return; + } + + $document->restore(); + + if (class_exists($className)) { + event(new $className($document)); + } + } +} diff --git a/resources/views/index/index.blade.php b/resources/views/index/index.blade.php index 47d528baefbb..1c2f0cfbdf51 100644 --- a/resources/views/index/index.blade.php +++ b/resources/views/index/index.blade.php @@ -5,7 +5,6 @@ Invoice Ninja - diff --git a/routes/api.php b/routes/api.php index 48dff4be8311..e7713fdc41ae 100644 --- a/routes/api.php +++ b/routes/api.php @@ -70,7 +70,7 @@ Route::group(['middleware' => ['api_db', 'token_auth', 'locale'], 'prefix' => 'a Route::post('vendors/bulk', 'VendorController@bulk')->name('vendors.bulk'); Route::resource('documents', 'DocumentController');// name = (documents. index / create / show / update / destroy / edit - + Route::get('documents/{document}/download', 'DocumentController@download')->name('documents.download'); Route::post('documents/bulk', 'DocumentController@bulk')->name('documents.bulk'); Route::resource('client_statement', 'ClientStatementController@statement');// name = (client_statement. index / create / show / update / destroy / edit