Skip to content

Commit

Permalink
feat: add missing events for file and folder operations
Browse files Browse the repository at this point in the history
  • Loading branch information
streamtw committed Nov 11, 2021
1 parent e91c183 commit 4ee6d3a
Show file tree
Hide file tree
Showing 16 changed files with 296 additions and 26 deletions.
41 changes: 29 additions & 12 deletions docs/events.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
26 changes: 20 additions & 6 deletions src/Controllers/DeleteController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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'));
Expand All @@ -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) {
Expand Down
9 changes: 9 additions & 0 deletions src/Controllers/FolderController.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

namespace UniSharp\LaravelFilemanager\Controllers;

use UniSharp\LaravelFilemanager\Events\FolderIsCreating;
use UniSharp\LaravelFilemanager\Events\FolderWasCreated;

class FolderController extends LfmController
{
/**
Expand Down Expand Up @@ -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');
Expand All @@ -53,6 +60,8 @@ public function getAddfolder()
return $e->getMessage();
}

event(new FolderWasCreated($new_path));

return parent::$success_response;
}
}
16 changes: 10 additions & 6 deletions src/Controllers/RenameController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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) {
Expand All @@ -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();
Expand All @@ -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;
Expand Down
2 changes: 0 additions & 2 deletions src/Controllers/UploadController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
21 changes: 21 additions & 0 deletions src/Events/FileIsDeleting.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace UniSharp\LaravelFilemanager\Events;

class FileIsDeleting
{
private $path;

public function __construct($path)
{
$this->path = $path;
}

/**
* @return string
*/
public function path()
{
return $this->path;
}
}
28 changes: 28 additions & 0 deletions src/Events/FileIsRenaming.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace UniSharp\LaravelFilemanager\Events;

class FileIsRenaming
{
private $old_path;
private $new_path;

public function __construct($old_path, $new_path)
{
$this->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;
}
}
21 changes: 21 additions & 0 deletions src/Events/FileIsUploading.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace UniSharp\LaravelFilemanager\Events;

class FileIsUploading
{
private $path;

public function __construct($path)
{
$this->path = $path;
}

/**
* @return string
*/
public function path()
{
return $this->path;
}
}
21 changes: 21 additions & 0 deletions src/Events/FileWasDeleted.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace UniSharp\LaravelFilemanager\Events;

class FileWasDeleted
{
private $path;

public function __construct($path)
{
$this->path = $path;
}

/**
* @return string
*/
public function path()
{
return $this->path;
}
}
28 changes: 28 additions & 0 deletions src/Events/FileWasRenamed.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace UniSharp\LaravelFilemanager\Events;

class FileWasRenamed
{
private $old_path;
private $new_path;

public function __construct($old_path, $new_path)
{
$this->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;
}
}
21 changes: 21 additions & 0 deletions src/Events/FileWasUploaded.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace UniSharp\LaravelFilemanager\Events;

class FileWasUploaded
{
private $path;

public function __construct($path)
{
$this->path = $path;
}

/**
* @return string
*/
public function path()
{
return $this->path;
}
}
21 changes: 21 additions & 0 deletions src/Events/FolderIsCreating.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace UniSharp\LaravelFilemanager\Events;

class FolderIsCreating
{
private $path;

public function __construct($path)
{
$this->path = $path;
}

/**
* @return string
*/
public function path()
{
return $this->path;
}
}
21 changes: 21 additions & 0 deletions src/Events/FolderIsDeleting.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

namespace UniSharp\LaravelFilemanager\Events;

class FolderIsDeleting
{
private $path;

public function __construct($path)
{
$this->path = $path;
}

/**
* @return string
*/
public function path()
{
return $this->path;
}
}
Loading

0 comments on commit 4ee6d3a

Please sign in to comment.