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 @@ -<?php - -use Illuminate\Database\Migrations\Migration; -use Illuminate\Database\Schema\Blueprint; -use Illuminate\Support\Facades\Schema; - -class AddDefaultTemplateToChapters extends Migration -{ - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - Schema::table('chapters', function (Blueprint $table) { - $table->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'); - }); - } -} +<?php + +use Illuminate\Database\Migrations\Migration; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\Schema; + +class AddDefaultTemplateToChapters extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::table('chapters', function (Blueprint $table) { + $table->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": "<p>This is a <strong>great new chapter</strong> that I've created via the API</p>", "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": "<p>This is an <strong>updated chapter</strong> that I've altered via the API</p>", "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": "<p>This is a <strong>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": "<p>How to create <strong>documentation</strong> on whatever subject you need to write about.</p>", + "default_template_id": 25, "priority": 3, "created_at": "2019-05-05T21:49:56.000000Z", "updated_at": "2019-09-28T11:24:23.000000Z", diff --git a/dev/api/responses/chapters-update.json b/dev/api/responses/chapters-update.json index 5ac3c64c1..4d8d0024e 100644 --- a/dev/api/responses/chapters-update.json +++ b/dev/api/responses/chapters-update.json @@ -11,6 +11,7 @@ "updated_by": 1, "owned_by": 1, "description_html": "<p>This is an <strong>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);