diff --git a/app/Api/ListingResponseBuilder.php b/app/Api/ListingResponseBuilder.php index 44117bad9..329f5ce1c 100644 --- a/app/Api/ListingResponseBuilder.php +++ b/app/Api/ListingResponseBuilder.php @@ -61,6 +61,8 @@ class ListingResponseBuilder } }); + dd($data->first()); + return response()->json([ 'data' => $data, 'total' => $total, diff --git a/app/Entities/Repos/PageRepo.php b/app/Entities/Repos/PageRepo.php index d9bda0198..85237a752 100644 --- a/app/Entities/Repos/PageRepo.php +++ b/app/Entities/Repos/PageRepo.php @@ -136,13 +136,7 @@ class PageRepo $page->book_id = $parent->id; } - // check for chapter - if ($page->chapter_id) { - $defaultTemplate = $page->chapter->defaultTemplate; - } else { - $defaultTemplate = $page->book->defaultTemplate; - } - + $defaultTemplate = $page->chapter->defaultTemplate ?? $page->book->defaultTemplate; if ($defaultTemplate && userCan('view', $defaultTemplate)) { $page->forceFill([ 'html' => $defaultTemplate->html, diff --git a/database/migrations/2024_01_01_104542_add_default_template_to_chapters.php b/database/migrations/2024_01_01_104542_add_default_template_to_chapters.php index 5e9ea1de3..b3a103a01 100644 --- a/database/migrations/2024_01_01_104542_add_default_template_to_chapters.php +++ b/database/migrations/2024_01_01_104542_add_default_template_to_chapters.php @@ -1,32 +1,32 @@ -integer('default_template_id')->nullable()->default(null); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('chapters', function (Blueprint $table) { - $table->dropColumn('default_template_id'); - }); - } -} +integer('default_template_id')->nullable()->default(null); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('chapters', function (Blueprint $table) { + $table->dropColumn('default_template_id'); + }); + } +} diff --git a/dev/api/requests/chapters-create.json b/dev/api/requests/chapters-create.json index e9d903387..02aee9eea 100644 --- a/dev/api/requests/chapters-create.json +++ b/dev/api/requests/chapters-create.json @@ -3,6 +3,7 @@ "name": "My fantastic new chapter", "description_html": "
This is a great new chapter that I've created via the API
", "priority": 15, + "default_template_id": 25, "tags": [ {"name": "Category", "value": "Top Content"}, {"name": "Rating", "value": "Highest"} diff --git a/dev/api/requests/chapters-update.json b/dev/api/requests/chapters-update.json index be675772b..cf9c89eac 100644 --- a/dev/api/requests/chapters-update.json +++ b/dev/api/requests/chapters-update.json @@ -3,6 +3,7 @@ "name": "My fantastic updated chapter", "description_html": "This is an updated chapter that I've altered via the API
", "priority": 16, + "default_template_id": 2428, "tags": [ {"name": "Category", "value": "Kinda Good Content"}, {"name": "Rating", "value": "Medium"} diff --git a/dev/api/responses/chapters-create.json b/dev/api/responses/chapters-create.json index 183186b0b..1e81a1e63 100644 --- a/dev/api/responses/chapters-create.json +++ b/dev/api/responses/chapters-create.json @@ -11,6 +11,7 @@ "updated_by": 1, "owned_by": 1, "description_html": "This is a great new chapter<\/strong> that I've created via the API<\/p>",
+ "default_template_id": 25,
"tags": [
{
"name": "Category",
diff --git a/dev/api/responses/chapters-read.json b/dev/api/responses/chapters-read.json
index 192ffce7c..01a2f4b9f 100644
--- a/dev/api/responses/chapters-read.json
+++ b/dev/api/responses/chapters-read.json
@@ -5,6 +5,7 @@
"name": "Content Creation",
"description": "How to create documentation on whatever subject you need to write about.",
"description_html": " How to create documentation on whatever subject you need to write about. This is an updated chapter<\/strong> that I've altered via the API<\/p>",
+ "default_template_id": 2428,
"tags": [
{
"name": "Category",
diff --git a/lang/en/entities.php b/lang/en/entities.php
index 8860e243e..9e620b24e 100644
--- a/lang/en/entities.php
+++ b/lang/en/entities.php
@@ -40,7 +40,7 @@ return [
'export_text' => 'Plain Text File',
'export_md' => 'Markdown File',
'default_template' => 'Default Page Template',
- 'default_template_explain' => 'Assign a page template that will be used as the default content for all new pages in this book/chapter. Keep in mind this will only be used if the page creator has view access to those chosen template page.',
+ 'default_template_explain' => 'Assign a page template that will be used as the default content for all pages created within this item. Keep in mind this will only be used if the page creator has view access to the chosen template page.',
'default_template_select' => 'Select a template page',
// Permissions and restrictions
diff --git a/tests/Api/ChaptersApiTest.php b/tests/Api/ChaptersApiTest.php
index 81a918877..fdb80a497 100644
--- a/tests/Api/ChaptersApiTest.php
+++ b/tests/Api/ChaptersApiTest.php
@@ -35,6 +35,7 @@ class ChaptersApiTest extends TestCase
{
$this->actingAsApiEditor();
$book = $this->entities->book();
+ $templatePage = $this->entities->templatePage();
$details = [
'name' => 'My API chapter',
'description' => 'A chapter created via the API',
@@ -46,6 +47,7 @@ class ChaptersApiTest extends TestCase
],
],
'priority' => 15,
+ 'default_template_id' => $templatePage->id,
];
$resp = $this->postJson($this->baseEndpoint, $details);
@@ -147,6 +149,7 @@ class ChaptersApiTest extends TestCase
'name' => $page->name,
],
],
+ 'default_template_id' => null,
]);
$resp->assertJsonCount($chapter->pages()->count(), 'pages');
}
@@ -155,6 +158,7 @@ class ChaptersApiTest extends TestCase
{
$this->actingAsApiEditor();
$chapter = $this->entities->chapter();
+ $templatePage = $this->entities->templatePage();
$details = [
'name' => 'My updated API chapter',
'description' => 'A chapter updated via the API',
@@ -165,6 +169,7 @@ class ChaptersApiTest extends TestCase
],
],
'priority' => 15,
+ 'default_template_id' => $templatePage->id,
];
$resp = $this->putJson($this->baseEndpoint . "/{$chapter->id}", $details);