Merge branch 'master' into release

This commit is contained in:
Dan Brown 2021-01-03 22:32:40 +00:00
commit dc996adb20
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
27 changed files with 71 additions and 18 deletions

View File

@ -31,11 +31,10 @@ abstract class BookChild extends Entity
/**
* Get the book this page sits in.
* @return BelongsTo
*/
public function book(): BelongsTo
{
return $this->belongsTo(Book::class);
return $this->belongsTo(Book::class)->withTrashed();
}
/**

View File

@ -121,7 +121,7 @@ class Page extends BookChild
*/
public function forJsonDisplay(): Page
{
$refreshed = $this->refresh()->unsetRelations()->load(['tags', 'createdBy', 'updatedBy']);
$refreshed = $this->refresh()->unsetRelations()->load(['tags', 'createdBy', 'updatedBy', 'ownedBy']);
$refreshed->setHidden(array_diff($refreshed->getHidden(), ['html', 'markdown']));
$refreshed->html = (new PageContent($refreshed))->render();
return $refreshed;

View File

@ -37,7 +37,7 @@ class BookApiController extends ApiController
{
$books = Book::visible();
return $this->apiListingResponse($books, [
'id', 'name', 'slug', 'description', 'created_at', 'updated_at', 'created_by', 'updated_by', 'image_id',
'id', 'name', 'slug', 'description', 'created_at', 'updated_at', 'created_by', 'updated_by', 'owned_by', 'image_id',
]);
}
@ -59,7 +59,7 @@ class BookApiController extends ApiController
*/
public function read(string $id)
{
$book = Book::visible()->with(['tags', 'cover', 'createdBy', 'updatedBy'])->findOrFail($id);
$book = Book::visible()->with(['tags', 'cover', 'createdBy', 'updatedBy', 'ownedBy'])->findOrFail($id);
return response()->json($book);
}

View File

@ -43,7 +43,7 @@ class BookshelfApiController extends ApiController
{
$shelves = Bookshelf::visible();
return $this->apiListingResponse($shelves, [
'id', 'name', 'slug', 'description', 'created_at', 'updated_at', 'created_by', 'updated_by', 'image_id',
'id', 'name', 'slug', 'description', 'created_at', 'updated_at', 'created_by', 'updated_by', 'owned_by', 'image_id',
]);
}
@ -70,7 +70,7 @@ class BookshelfApiController extends ApiController
public function read(string $id)
{
$shelf = Bookshelf::visible()->with([
'tags', 'cover', 'createdBy', 'updatedBy',
'tags', 'cover', 'createdBy', 'updatedBy', 'ownedBy',
'books' => function (BelongsToMany $query) {
$query->visible()->get(['id', 'name', 'slug']);
}

View File

@ -43,7 +43,7 @@ class ChapterApiController extends ApiController
$chapters = Chapter::visible();
return $this->apiListingResponse($chapters, [
'id', 'book_id', 'name', 'slug', 'description', 'priority',
'created_at', 'updated_at', 'created_by', 'updated_by',
'created_at', 'updated_at', 'created_by', 'updated_by', 'owned_by',
]);
}
@ -67,7 +67,7 @@ class ChapterApiController extends ApiController
*/
public function read(string $id)
{
$chapter = Chapter::visible()->with(['tags', 'createdBy', 'updatedBy', 'pages' => function (HasMany $query) {
$chapter = Chapter::visible()->with(['tags', 'createdBy', 'updatedBy', 'ownedBy', 'pages' => function (HasMany $query) {
$query->visible()->get(['id', 'name', 'slug']);
}])->findOrFail($id);
return response()->json($chapter);

View File

@ -47,7 +47,8 @@ class PageApiController extends ApiController
return $this->apiListingResponse($pages, [
'id', 'book_id', 'chapter_id', 'name', 'slug', 'priority',
'draft', 'template',
'created_at', 'updated_at', 'created_by', 'updated_by',
'created_at', 'updated_at',
'created_by', 'updated_by', 'owned_by',
]);
}

View File

@ -3,6 +3,7 @@
"description": "This is a book created via the API",
"created_by": 1,
"updated_by": 1,
"owned_by": 1,
"slug": "my-new-book",
"updated_at": "2020-01-12 14:05:11",
"created_at": "2020-01-12 14:05:11",

View File

@ -9,6 +9,7 @@
"updated_at": "2019-12-11 20:57:31",
"created_by": 1,
"updated_by": 1,
"owned_by": 1,
"image_id": 3
},
{
@ -20,6 +21,7 @@
"updated_at": "2019-12-11 20:57:23",
"created_by": 4,
"updated_by": 3,
"owned_by": 3,
"image_id": 34
}
],

View File

@ -13,6 +13,10 @@
"id": 1,
"name": "Admin"
},
"owned_by": {
"id": 1,
"name": "Admin"
},
"tags": [
{
"id": 13,

View File

@ -7,5 +7,6 @@
"updated_at": "2020-01-12 14:16:10",
"created_by": 1,
"updated_by": 1,
"owned_by": 1,
"image_id": 452
}

View File

@ -5,6 +5,7 @@
"description": "This is a great new chapter that I've created via the API",
"created_by": 1,
"updated_by": 1,
"owned_by": 1,
"slug": "my-fantastic-new-chapter",
"updated_at": "2020-05-22 22:59:55",
"created_at": "2020-05-22 22:59:55",

View File

@ -10,7 +10,8 @@
"created_at": "2019-05-05 21:49:56",
"updated_at": "2019-09-28 11:24:23",
"created_by": 1,
"updated_by": 1
"updated_by": 1,
"owned_by": 1
},
{
"id": 2,
@ -22,7 +23,8 @@
"created_at": "2019-05-05 21:58:07",
"updated_at": "2019-10-17 15:05:34",
"created_by": 3,
"updated_by": 3
"updated_by": 3,
"owned_by": 3
}
],
"total": 40

View File

@ -15,6 +15,10 @@
"id": 1,
"name": "Admin"
},
"owned_by": {
"id": 1,
"name": "Admin"
},
"tags": [
{
"name": "Category",

View File

@ -9,6 +9,7 @@
"updated_at": "2020-05-22 23:07:20",
"created_by": 1,
"updated_by": 1,
"owned_by": 1,
"book": {
"id": 1,
"name": "BookStack User Guide",

View File

@ -16,6 +16,10 @@
"id": 1,
"name": "Admin"
},
"owned_by": {
"id": 1,
"name": "Admin"
},
"draft": false,
"markdown": "",
"revision_count": 1,

View File

@ -12,7 +12,8 @@
"created_at": "2019-05-05 21:49:58",
"updated_at": "2020-07-04 15:50:58",
"created_by": 1,
"updated_by": 1
"updated_by": 1,
"owned_by": 1
},
{
"id": 2,
@ -26,7 +27,8 @@
"created_at": "2019-05-05 21:53:30",
"updated_at": "2019-06-06 12:03:04",
"created_by": 1,
"updated_by": 1
"updated_by": 1,
"owned_by": 1
},
{
"id": 3,
@ -40,7 +42,8 @@
"created_at": "2019-05-05 21:53:49",
"updated_at": "2019-12-18 21:56:52",
"created_by": 1,
"updated_by": 1
"updated_by": 1,
"owned_by": 1
}
],
"total": 322

View File

@ -16,6 +16,10 @@
"id": 1,
"name": "Admin"
},
"owned_by": {
"id": 1,
"name": "Admin"
},
"draft": false,
"markdown": "# How this is built\r\n\r\nThis page is written in markdown. BookStack stores the page data in HTML.\r\n\r\nHere's a cute picture of my cat:\r\n\r\n[![yXSrubes.jpg](http://example.com/uploads/images/gallery/2020-04/scaled-1680-/yXSrubes.jpg)](http://example.com/uploads/images/gallery/2020-04/yXSrubes.jpg)",
"revision_count": 5,

View File

@ -16,6 +16,10 @@
"id": 1,
"name": "Admin"
},
"owned_by": {
"id": 1,
"name": "Admin"
},
"draft": false,
"markdown": "",
"revision_count": 5,

View File

@ -3,6 +3,7 @@
"description": "This is my shelf with some books",
"created_by": 1,
"updated_by": 1,
"owned_by": 1,
"slug": "my-shelf",
"updated_at": "2020-04-10 13:24:09",
"created_at": "2020-04-10 13:24:09",

View File

@ -9,6 +9,7 @@
"updated_at": "2020-04-10 13:00:45",
"created_by": 4,
"updated_by": 1,
"owned_by": 1,
"image_id": 31
},
{
@ -20,6 +21,7 @@
"updated_at": "2020-04-10 13:00:58",
"created_by": 4,
"updated_by": 1,
"owned_by": 1,
"image_id": 28
},
{
@ -31,6 +33,7 @@
"updated_at": "2020-04-10 13:00:53",
"created_by": 4,
"updated_by": 1,
"owned_by": 4,
"image_id": 30
}
],

View File

@ -11,6 +11,10 @@
"id": 1,
"name": "Admin"
},
"owned_by": {
"id": 1,
"name": "Admin"
},
"created_at": "2020-04-10 13:24:09",
"updated_at": "2020-04-10 13:31:04",
"tags": [

View File

@ -5,6 +5,7 @@
"description": "This is my update shelf with some books",
"created_by": 1,
"updated_by": 1,
"owned_by": 1,
"image_id": 501,
"created_at": "2020-04-10 13:24:09",
"updated_at": "2020-04-10 13:48:22"

View File

@ -12,7 +12,7 @@ class PageEditor {
this.editorType = this.$opts.editorType;
this.pageId = Number(this.$opts.pageId);
this.isNewDraft = this.$opts.pageNewDraft === 'true';
this.hasDefaultTitle = this.$opts.isDefaultTitle || false;
this.hasDefaultTitle = this.$opts.hasDefaultTitle || false;
// Elements
this.container = this.$el;
@ -74,6 +74,7 @@ class PageEditor {
}
setInitialFocus() {
console.log({'HAS': this.hasDefaultTitle});
if (this.hasDefaultTitle) {
return this.titleElem.select();
}

View File

@ -75,7 +75,10 @@ class BooksApiTest extends TestCase
],
'updated_by' => [
'name' => $book->createdBy->name,
]
],
'owned_by' => [
'name' => $book->ownedBy->name
],
]);
}

View File

@ -106,6 +106,9 @@ class ChaptersApiTest extends TestCase
'updated_by' => [
'name' => $chapter->createdBy->name,
],
'owned_by' => [
'name' => $chapter->ownedBy->name
],
'pages' => [
[
'id' => $page->id,

View File

@ -136,6 +136,9 @@ class PagesApiTest extends TestCase
'updated_by' => [
'name' => $page->createdBy->name,
],
'owned_by' => [
'name' => $page->ownedBy->name
],
]);
}

View File

@ -85,7 +85,10 @@ class ShelvesApiTest extends TestCase
],
'updated_by' => [
'name' => $shelf->createdBy->name,
]
],
'owned_by' => [
'name' => $shelf->ownedBy->name
],
]);
}