From 4ee6d3a30d96023b5401fc176b3f217c7e3d1f9e Mon Sep 17 00:00:00 2001 From: Stream Date: Fri, 12 Nov 2021 01:11:30 +0800 Subject: [PATCH] feat: add missing events for file and folder operations --- docs/events.md | 41 ++++++++++++++++++++-------- src/Controllers/DeleteController.php | 26 ++++++++++++++---- src/Controllers/FolderController.php | 9 ++++++ src/Controllers/RenameController.php | 16 +++++++---- src/Controllers/UploadController.php | 2 -- src/Events/FileIsDeleting.php | 21 ++++++++++++++ src/Events/FileIsRenaming.php | 28 +++++++++++++++++++ src/Events/FileIsUploading.php | 21 ++++++++++++++ src/Events/FileWasDeleted.php | 21 ++++++++++++++ src/Events/FileWasRenamed.php | 28 +++++++++++++++++++ src/Events/FileWasUploaded.php | 21 ++++++++++++++ src/Events/FolderIsCreating.php | 21 ++++++++++++++ src/Events/FolderIsDeleting.php | 21 ++++++++++++++ src/Events/FolderWasCreated.php | 21 ++++++++++++++ src/Events/FolderWasDeleted.php | 21 ++++++++++++++ src/LfmPath.php | 4 +++ 16 files changed, 296 insertions(+), 26 deletions(-) create mode 100644 src/Events/FileIsDeleting.php create mode 100644 src/Events/FileIsRenaming.php create mode 100644 src/Events/FileIsUploading.php create mode 100644 src/Events/FileWasDeleted.php create mode 100644 src/Events/FileWasRenamed.php create mode 100644 src/Events/FileWasUploaded.php create mode 100644 src/Events/FolderIsCreating.php create mode 100644 src/Events/FolderIsDeleting.php create mode 100644 src/Events/FolderWasCreated.php create mode 100644 src/Events/FolderWasDeleted.php diff --git a/docs/events.md b/docs/events.md index 8695768b..426e4a36 100644 --- a/docs/events.md +++ b/docs/events.md @@ -1,17 +1,34 @@ ## List of events - * UniSharp\LaravelFilemanager\Events\ImageIsUploading - * UniSharp\LaravelFilemanager\Events\ImageWasUploaded - * UniSharp\LaravelFilemanager\Events\ImageIsRenaming - * UniSharp\LaravelFilemanager\Events\ImageWasRenamed - * UniSharp\LaravelFilemanager\Events\ImageIsDeleting - * UniSharp\LaravelFilemanager\Events\ImageWasDeleted - * UniSharp\LaravelFilemanager\Events\FolderIsRenaming - * UniSharp\LaravelFilemanager\Events\FolderWasRenamed - * UniSharp\LaravelFilemanager\Events\ImageIsResizing - * UniSharp\LaravelFilemanager\Events\ImageWasResized - * UniSharp\LaravelFilemanager\Events\ImageIsCropping - * UniSharp\LaravelFilemanager\Events\ImageWasCropped +* File + * UniSharp\LaravelFilemanager\Events\FileIsUploading + * UniSharp\LaravelFilemanager\Events\FileWasUploaded + * UniSharp\LaravelFilemanager\Events\FileIsRenaming + * UniSharp\LaravelFilemanager\Events\FileWasRenamed + * UniSharp\LaravelFilemanager\Events\FileIsMoving + * UniSharp\LaravelFilemanager\Events\FileWasMoving + * UniSharp\LaravelFilemanager\Events\FileIsDeleting + * UniSharp\LaravelFilemanager\Events\FileWasDeleted +* Image + * UniSharp\LaravelFilemanager\Events\ImageIsUploading + * UniSharp\LaravelFilemanager\Events\ImageWasUploaded + * UniSharp\LaravelFilemanager\Events\ImageIsRenaming + * UniSharp\LaravelFilemanager\Events\ImageWasRenamed + * UniSharp\LaravelFilemanager\Events\ImageIsResizing + * UniSharp\LaravelFilemanager\Events\ImageWasResized + * UniSharp\LaravelFilemanager\Events\ImageIsCropping + * UniSharp\LaravelFilemanager\Events\ImageWasCropped + * UniSharp\LaravelFilemanager\Events\ImageIsDeleting + * UniSharp\LaravelFilemanager\Events\ImageWasDeleted +* Folder + * UniSharp\LaravelFilemanager\Events\FolderIsCreating + * UniSharp\LaravelFilemanager\Events\FolderWasCreated + * UniSharp\LaravelFilemanager\Events\FolderIsRenaming + * UniSharp\LaravelFilemanager\Events\FolderWasRenamed + * UniSharp\LaravelFilemanager\Events\FolderIsMoving + * UniSharp\LaravelFilemanager\Events\FolderWasMoving + * UniSharp\LaravelFilemanager\Events\FolderIsDeleting + * UniSharp\LaravelFilemanager\Events\FolderWasDeleted ## How to use * Sample code : [laravel-filemanager-demo-events](https://github.com/UniSharp/laravel-filemanager-demo-events) diff --git a/src/Controllers/DeleteController.php b/src/Controllers/DeleteController.php index e2a872b1..502d5695 100644 --- a/src/Controllers/DeleteController.php +++ b/src/Controllers/DeleteController.php @@ -3,6 +3,10 @@ namespace UniSharp\LaravelFilemanager\Controllers; use Illuminate\Support\Facades\Storage; +use UniSharp\LaravelFilemanager\Events\FileIsDeleting; +use UniSharp\LaravelFilemanager\Events\FileWasDeleted; +use UniSharp\LaravelFilemanager\Events\FolderIsDeleting; +use UniSharp\LaravelFilemanager\Events\FolderWasDeleted; use UniSharp\LaravelFilemanager\Events\ImageIsDeleting; use UniSharp\LaravelFilemanager\Events\ImageWasDeleted; @@ -21,14 +25,19 @@ public function getDelete() foreach ($item_names as $name_to_delete) { $file = $this->lfm->setName($name_to_delete); + if ($file->isDirectory()) { + event(new FolderIsDeleting($file->path('absolute'))); + } else { + event(new FileIsDeleting($file->path('absolute'))); + event(new ImageIsDeleting($file->path('absolute'))); + } + if (!Storage::disk($this->helper->config('disk'))->exists($file->path('storage'))) { abort(404); } $file_to_delete = $this->lfm->pretty($name_to_delete); - $file_path = $file_to_delete->path(); - - event(new ImageIsDeleting($file_path)); + $file_path = $file_to_delete->path('absolute'); if (is_null($name_to_delete)) { array_push($errors, parent::error('folder-name')); @@ -45,15 +54,20 @@ public function getDelete() array_push($errors, parent::error('delete-folder')); continue; } + + $this->lfm->setName($name_to_delete)->delete(); + + event(new FolderWasDeleted($file_path)); } else { if ($file_to_delete->isImage()) { $this->lfm->setName($name_to_delete)->thumb()->delete(); } - } - $this->lfm->setName($name_to_delete)->delete(); + $this->lfm->setName($name_to_delete)->delete(); - event(new ImageWasDeleted($file_path)); + event(new FileWasDeleted($file_path)); + event(new ImageWasDeleted($file_path)); + } } if (count($errors) > 0) { diff --git a/src/Controllers/FolderController.php b/src/Controllers/FolderController.php index 39c53fbb..3e5b666d 100644 --- a/src/Controllers/FolderController.php +++ b/src/Controllers/FolderController.php @@ -2,6 +2,9 @@ namespace UniSharp\LaravelFilemanager\Controllers; +use UniSharp\LaravelFilemanager\Events\FolderIsCreating; +use UniSharp\LaravelFilemanager\Events\FolderWasCreated; + class FolderController extends LfmController { /** @@ -39,6 +42,10 @@ public function getAddfolder() { $folder_name = $this->helper->input('name'); + $new_path = $this->lfm->setName($folder_name)->path('absolute'); + + event(new FolderIsCreating($new_path)); + try { if ($folder_name === null || $folder_name == '') { return $this->helper->error('folder-name'); @@ -53,6 +60,8 @@ public function getAddfolder() return $e->getMessage(); } + event(new FolderWasCreated($new_path)); + return parent::$success_response; } } diff --git a/src/Controllers/RenameController.php b/src/Controllers/RenameController.php index 475ade72..1af1f34c 100644 --- a/src/Controllers/RenameController.php +++ b/src/Controllers/RenameController.php @@ -5,6 +5,8 @@ use Illuminate\Support\Facades\Storage; use UniSharp\LaravelFilemanager\Events\FolderIsRenaming; use UniSharp\LaravelFilemanager\Events\FolderWasRenamed; +use UniSharp\LaravelFilemanager\Events\FileIsRenaming; +use UniSharp\LaravelFilemanager\Events\FileWasRenamed; use UniSharp\LaravelFilemanager\Events\ImageIsRenaming; use UniSharp\LaravelFilemanager\Events\ImageWasRenamed; @@ -23,7 +25,7 @@ public function getRename() $old_file = $this->lfm->pretty($old_name); - $is_directory = $old_file->isDirectory(); + $is_directory = $file->isDirectory(); if (empty($new_name)) { if ($is_directory) { @@ -47,12 +49,13 @@ public function getRename() } } - $new_file = $this->lfm->setName($new_name)->path('absolute'); + $new_path = $this->lfm->setName($new_name)->path('absolute'); if ($is_directory) { - event(new FolderIsRenaming($old_file->path(), $new_file)); + event(new FolderIsRenaming($old_file->path(), $new_path)); } else { - event(new ImageIsRenaming($old_file->path(), $new_file)); + event(new FileIsRenaming($old_file->path(), $new_path)); + event(new ImageIsRenaming($old_file->path(), $new_path)); } $old_path = $old_file->path(); @@ -66,9 +69,10 @@ public function getRename() ->move($this->lfm->setName($new_name)); if ($is_directory) { - event(new FolderWasRenamed($old_path, $new_file)); + event(new FolderWasRenamed($old_path, $new_path)); } else { - event(new ImageWasRenamed($old_path, $new_file)); + event(new FileWasRenamed($old_path, $new_path)); + event(new ImageWasRenamed($old_path, $new_path)); } return parent::$success_response; diff --git a/src/Controllers/UploadController.php b/src/Controllers/UploadController.php index 9111c8cd..d1fcc546 100644 --- a/src/Controllers/UploadController.php +++ b/src/Controllers/UploadController.php @@ -4,8 +4,6 @@ use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Log; -use UniSharp\LaravelFilemanager\Events\ImageIsUploading; -use UniSharp\LaravelFilemanager\Events\ImageWasUploaded; use UniSharp\LaravelFilemanager\Lfm; class UploadController extends LfmController diff --git a/src/Events/FileIsDeleting.php b/src/Events/FileIsDeleting.php new file mode 100644 index 00000000..c279c17c --- /dev/null +++ b/src/Events/FileIsDeleting.php @@ -0,0 +1,21 @@ +path = $path; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/Events/FileIsRenaming.php b/src/Events/FileIsRenaming.php new file mode 100644 index 00000000..cd724a89 --- /dev/null +++ b/src/Events/FileIsRenaming.php @@ -0,0 +1,28 @@ +old_path = $old_path; + $this->new_path = $new_path; + } + + /** + * @return string + */ + public function oldPath() + { + return $this->old_path; + } + + public function newPath() + { + return $this->new_path; + } +} diff --git a/src/Events/FileIsUploading.php b/src/Events/FileIsUploading.php new file mode 100644 index 00000000..5e274915 --- /dev/null +++ b/src/Events/FileIsUploading.php @@ -0,0 +1,21 @@ +path = $path; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/Events/FileWasDeleted.php b/src/Events/FileWasDeleted.php new file mode 100644 index 00000000..fbba71ca --- /dev/null +++ b/src/Events/FileWasDeleted.php @@ -0,0 +1,21 @@ +path = $path; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/Events/FileWasRenamed.php b/src/Events/FileWasRenamed.php new file mode 100644 index 00000000..92957bd8 --- /dev/null +++ b/src/Events/FileWasRenamed.php @@ -0,0 +1,28 @@ +old_path = $old_path; + $this->new_path = $new_path; + } + + /** + * @return string + */ + public function oldPath() + { + return $this->old_path; + } + + public function newPath() + { + return $this->new_path; + } +} diff --git a/src/Events/FileWasUploaded.php b/src/Events/FileWasUploaded.php new file mode 100644 index 00000000..17bda68b --- /dev/null +++ b/src/Events/FileWasUploaded.php @@ -0,0 +1,21 @@ +path = $path; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/Events/FolderIsCreating.php b/src/Events/FolderIsCreating.php new file mode 100644 index 00000000..c8bda9aa --- /dev/null +++ b/src/Events/FolderIsCreating.php @@ -0,0 +1,21 @@ +path = $path; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/Events/FolderIsDeleting.php b/src/Events/FolderIsDeleting.php new file mode 100644 index 00000000..eabb28c9 --- /dev/null +++ b/src/Events/FolderIsDeleting.php @@ -0,0 +1,21 @@ +path = $path; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/Events/FolderWasCreated.php b/src/Events/FolderWasCreated.php new file mode 100644 index 00000000..9077906d --- /dev/null +++ b/src/Events/FolderWasCreated.php @@ -0,0 +1,21 @@ +path = $path; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/Events/FolderWasDeleted.php b/src/Events/FolderWasDeleted.php new file mode 100644 index 00000000..4ec390ba --- /dev/null +++ b/src/Events/FolderWasDeleted.php @@ -0,0 +1,21 @@ +path = $path; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/LfmPath.php b/src/LfmPath.php index 7af9affd..17e5a4f6 100644 --- a/src/LfmPath.php +++ b/src/LfmPath.php @@ -5,6 +5,8 @@ use Illuminate\Container\Container; use Intervention\Image\Facades\Image; use Symfony\Component\HttpFoundation\File\UploadedFile; +use UniSharp\LaravelFilemanager\Events\FileIsUploading; +use UniSharp\LaravelFilemanager\Events\FileWasUploaded; use UniSharp\LaravelFilemanager\Events\ImageIsUploading; use UniSharp\LaravelFilemanager\Events\ImageWasUploaded; use UniSharp\LaravelFilemanager\LfmUploadValidator; @@ -219,6 +221,7 @@ public function upload($file) $new_file_name = $this->getNewName($file); $new_file_path = $this->setName($new_file_name)->path('absolute'); + event(new FileIsUploading($new_file_path)); event(new ImageIsUploading($new_file_path)); try { $this->setName($new_file_name)->storage->save($file); @@ -229,6 +232,7 @@ public function upload($file) return $this->error('invalid'); } // TODO should be "FileWasUploaded" + event(new FileWasUploaded($new_file_path)); event(new ImageWasUploaded($new_file_path)); return $new_file_name;