]> BookStack Code Mirror - bookstack/blobdiff - app/Entities/Repos/BaseRepo.php
Tests: Updated comment test to account for new editor usage
[bookstack] / app / Entities / Repos / BaseRepo.php
index 17208ae032a196b6780da187b675c7e24967c854..151d5b0555bbc5fc884c23b8612d10e73884b36d 100644 (file)
@@ -4,14 +4,16 @@ namespace BookStack\Entities\Repos;
 
 use BookStack\Activity\TagRepo;
 use BookStack\Entities\Models\Book;
+use BookStack\Entities\Models\BookChild;
 use BookStack\Entities\Models\Chapter;
 use BookStack\Entities\Models\Entity;
 use BookStack\Entities\Models\HasCoverImage;
 use BookStack\Entities\Models\HasHtmlDescription;
-use BookStack\Entities\Models\Page;
+use BookStack\Entities\Queries\PageQueries;
 use BookStack\Exceptions\ImageUploadException;
 use BookStack\References\ReferenceStore;
 use BookStack\References\ReferenceUpdater;
+use BookStack\Sorting\BookSorter;
 use BookStack\Uploads\ImageRepo;
 use BookStack\Util\HtmlDescriptionFilter;
 use Illuminate\Http\UploadedFile;
@@ -23,6 +25,8 @@ class BaseRepo
         protected ImageRepo $imageRepo,
         protected ReferenceUpdater $referenceUpdater,
         protected ReferenceStore $referenceStore,
+        protected PageQueries $pageQueries,
+        protected BookSorter $bookSorter,
     ) {
     }
 
@@ -125,8 +129,7 @@ class BaseRepo
             return;
         }
 
-        $templateExists = Page::query()->visible()
-            ->where('template', '=', true)
+        $templateExists = $this->pageQueries->visibleTemplates()
             ->where('id', '=', $templateId)
             ->exists();
 
@@ -134,6 +137,18 @@ class BaseRepo
         $entity->save();
     }
 
+    /**
+     * Sort the parent of the given entity, if any auto sort actions are set for it.
+     * Typical ran during create/update/insert events.
+     */
+    public function sortParent(Entity $entity): void
+    {
+        if ($entity instanceof BookChild) {
+            $book = $entity->book;
+            $this->bookSorter->runBookAutoSort($book);
+        }
+    }
+
     protected function updateDescription(Entity $entity, array $input): void
     {
         if (!in_array(HasHtmlDescription::class, class_uses($entity))) {