From fe3651300cc77c93714d56f5a8fe758465d8861a Mon Sep 17 00:00:00 2001 From: Nicos Panayides Date: Fri, 10 Jan 2025 10:15:31 +0200 Subject: [PATCH 1/6] Add an option to allow users to detect when an afterDelete is due to trashing --- README.md | 5 +++++ src/Model/Behavior/TrashBehavior.php | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index d4893f1..df1b51a 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,11 @@ or use the purge option: $table->delete($entity, ['purge' => true]); ``` +## Detecting trashing +If you need to distinguish between deletion and trashing the behavior +adds the ['muffin.trash.soft-delete' => true ] option to the afterDelete event +it creates when trashing. + ### Cascading deletion If you'd like to have related records marked as trashed when deleting a parent diff --git a/src/Model/Behavior/TrashBehavior.php b/src/Model/Behavior/TrashBehavior.php index d6b4b65..2ffe2c7 100644 --- a/src/Model/Behavior/TrashBehavior.php +++ b/src/Model/Behavior/TrashBehavior.php @@ -27,6 +27,8 @@ */ class TrashBehavior extends Behavior { + public const SOFT_DELETE_OPTION = 'muffin.trash.soft-delete'; + /** * Default configuration. * @@ -118,6 +120,8 @@ public function beforeDelete(EventInterface $event, EntityInterface $entity, Arr return; } + $options[self::SOFT_DELETE_OPTION] = true; + /** @var \Cake\ORM\Table $table */ $table = $event->getSubject(); $table->dispatchEvent('Model.afterDelete', [ From fb421fcce277c20d904a784049589afdbe1c56ac Mon Sep 17 00:00:00 2001 From: Nicos Panayides Date: Mon, 13 Jan 2025 09:42:51 +0200 Subject: [PATCH 2/6] Update src/Model/Behavior/TrashBehavior.php Co-authored-by: ADmad --- src/Model/Behavior/TrashBehavior.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/Behavior/TrashBehavior.php b/src/Model/Behavior/TrashBehavior.php index 2ffe2c7..add5459 100644 --- a/src/Model/Behavior/TrashBehavior.php +++ b/src/Model/Behavior/TrashBehavior.php @@ -27,7 +27,7 @@ */ class TrashBehavior extends Behavior { - public const SOFT_DELETE_OPTION = 'muffin.trash.soft-delete'; + public const DELETE_OPTION_NAME = 'trash; /** * Default configuration. From 64bc71610b28c1a1297cccb55ff00c1f12333126 Mon Sep 17 00:00:00 2001 From: Nicos Panayides Date: Mon, 13 Jan 2025 09:43:34 +0200 Subject: [PATCH 3/6] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index df1b51a..fe95049 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ $table->delete($entity, ['purge' => true]); ## Detecting trashing If you need to distinguish between deletion and trashing the behavior -adds the ['muffin.trash.soft-delete' => true ] option to the afterDelete event +adds the ['trash' => true ] option to the afterDelete event it creates when trashing. ### Cascading deletion From 45347bd254b0ee95950ff0843291ea2f2d9e3eb2 Mon Sep 17 00:00:00 2001 From: Nicos Panayides Date: Mon, 13 Jan 2025 09:44:59 +0200 Subject: [PATCH 4/6] Add missing closing quote --- src/Model/Behavior/TrashBehavior.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/Behavior/TrashBehavior.php b/src/Model/Behavior/TrashBehavior.php index add5459..44c5ec1 100644 --- a/src/Model/Behavior/TrashBehavior.php +++ b/src/Model/Behavior/TrashBehavior.php @@ -27,7 +27,7 @@ */ class TrashBehavior extends Behavior { - public const DELETE_OPTION_NAME = 'trash; + public const DELETE_OPTION_NAME = 'trash;; /** * Default configuration. From f5ea7c6e7fc6c8baed568f6891ab6b1f0049905e Mon Sep 17 00:00:00 2001 From: Nicos Panayides Date: Mon, 13 Jan 2025 09:45:43 +0200 Subject: [PATCH 5/6] Really add closing quote --- src/Model/Behavior/TrashBehavior.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/Behavior/TrashBehavior.php b/src/Model/Behavior/TrashBehavior.php index 44c5ec1..44de005 100644 --- a/src/Model/Behavior/TrashBehavior.php +++ b/src/Model/Behavior/TrashBehavior.php @@ -27,7 +27,7 @@ */ class TrashBehavior extends Behavior { - public const DELETE_OPTION_NAME = 'trash;; + public const DELETE_OPTION_NAME = 'trash'; /** * Default configuration. From 2453a9a6e1bf9b5bd81a0cf4519d274a68c193eb Mon Sep 17 00:00:00 2001 From: Nicos Panayides Date: Mon, 13 Jan 2025 11:55:23 +0200 Subject: [PATCH 6/6] Use the correct constant name --- src/Model/Behavior/TrashBehavior.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/Behavior/TrashBehavior.php b/src/Model/Behavior/TrashBehavior.php index 44de005..098cb16 100644 --- a/src/Model/Behavior/TrashBehavior.php +++ b/src/Model/Behavior/TrashBehavior.php @@ -120,7 +120,7 @@ public function beforeDelete(EventInterface $event, EntityInterface $entity, Arr return; } - $options[self::SOFT_DELETE_OPTION] = true; + $options[self::DELETE_OPTION_NAME] = true; /** @var \Cake\ORM\Table $table */ $table = $event->getSubject();