mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-22 12:55:14 +08:00
Default chapter templates: Updated api docs and tests
Also applied minor tweaks to some wording and logic. During review of #4750
This commit is contained in:
parent
4a8f70240f
commit
4137cf9c8f
|
@ -61,6 +61,8 @@ class ListingResponseBuilder
|
|||
}
|
||||
});
|
||||
|
||||
dd($data->first());
|
||||
|
||||
return response()->json([
|
||||
'data' => $data,
|
||||
'total' => $total,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue
Block a user