]> BookStack Code Mirror - bookstack/commitdiff
Add notice to Page delete confirmation when in use as a template
authorLennert Daniels <redacted>
Fri, 2 Dec 2022 17:43:51 +0000 (18:43 +0100)
committerLennert Daniels <redacted>
Fri, 2 Dec 2022 17:43:51 +0000 (18:43 +0100)
app/Http/Controllers/PageController.php
resources/lang/en/entities.php
resources/views/pages/delete.blade.php

index 394147ce2242a2cabd90f061e2498ff92668a105..8b131c4f3d8d1f2bd0decc2c855142029745677c 100644 (file)
@@ -3,6 +3,7 @@
 namespace BookStack\Http\Controllers;
 
 use BookStack\Actions\View;
+use BookStack\Entities\Models\Book;
 use BookStack\Entities\Models\Page;
 use BookStack\Entities\Repos\PageRepo;
 use BookStack\Entities\Tools\BookContents;
@@ -265,11 +266,13 @@ class PageController extends Controller
         $page = $this->pageRepo->getBySlug($bookSlug, $pageSlug);
         $this->checkOwnablePermission('page-delete', $page);
         $this->setPageTitle(trans('entities.pages_delete_named', ['pageName' => $page->getShortName()]));
+        $times_used_as_template = Book::where('default_template', '=', $page->id)->count();
 
         return view('pages.delete', [
             'book'    => $page->book,
             'page'    => $page,
             'current' => $page,
+            'times_used_as_template' => $times_used_as_template,
         ]);
     }
 
index 38c2f2ae391718371bb80aabc5c7c6cb7532aeb3..4af6120f820ae674e37e8d72c8f666c2bc6ac9f9 100644 (file)
@@ -192,6 +192,7 @@ return [
     'pages_delete_draft' => 'Delete Draft Page',
     'pages_delete_success' => 'Page deleted',
     'pages_delete_draft_success' => 'Draft page deleted',
+    'pages_delete_warning_template' => '{0}|{1}Be careful: this page is used as a template for :count book.|[2,*]Be careful: this page is used as a template for :count books.',
     'pages_delete_confirm' => 'Are you sure you want to delete this page?',
     'pages_delete_draft_confirm' => 'Are you sure you want to delete this draft page?',
     'pages_editing_named' => 'Editing Page :pageName',
index 39cd07bbb1c227070008cce0f0df5b776b006177..9ce50d48b13fda72bb0cf1a95504e187d8c56e18 100644 (file)
@@ -19,6 +19,9 @@
         <div class="card content-wrap auto-height">
             <h1 class="list-heading">{{ $page->draft ? trans('entities.pages_delete_draft') : trans('entities.pages_delete') }}</h1>
 
+            @if ($times_used_as_template > 0)
+                <p>{{ trans_choice('entities.pages_delete_warning_template', $times_used_as_template) }}</p>
+            @endif
 
             <div class="grid half v-center">
                 <div>