Cleaned up duplicate code in recycle-bin restore

This commit is contained in:
Dan Brown 2020-11-02 22:54:00 +00:00
parent 9e033709a7
commit 3e70c661a1
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9

View File

@ -240,26 +240,21 @@ class TrashCan
$count = 1;
$entity->restore();
if ($entity->isA('chapter') || $entity->isA('book')) {
foreach ($entity->pages()->withTrashed()->withCount('deletions')->get() as $page) {
if ($page->deletions_count > 0) {
$page->deletions()->delete();
}
$page->restore();
$count++;
$restoreAction = function ($entity) use (&$count) {
if ($entity->deletions_count > 0) {
$entity->deletions()->delete();
}
$entity->restore();
$count++;
};
if ($entity->isA('chapter') || $entity->isA('book')) {
$entity->pages()->withTrashed()->withCount('deletions')->get()->each($restoreAction);
}
if ($entity->isA('book')) {
foreach ($entity->chapters()->withTrashed()->withCount('deletions')->get() as $chapter) {
if ($chapter->deletions_count === 0) {
$chapter->deletions()->delete();
}
$chapter->restore();
$count++;
}
$entity->chapters()->withTrashed()->withCount('deletions')->get()->each($restoreAction);
}
return $count;