1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-30 04:23:11 +03:00
Conflicts:
	.gitignore
This commit is contained in:
Abijeet
2017-04-19 01:21:45 +05:30
115 changed files with 3847 additions and 563 deletions

View File

@ -1,7 +1,7 @@
<?php namespace BookStack\Repos;
use BookStack\Comment;
use BookStack\Entity;
use BookStack\Page;
/**
* Class TagRepo
@ -13,5 +13,39 @@ class CommentRepo {
* @var Comment $comment
*/
protected $comment;
public function __construct(Comment $comment)
{
$this->comment = $comment;
}
public function create (Page $page, $data = []) {
$userId = user()->id;
$comment = $this->comment->newInstance();
$comment->fill($data);
// new comment
$comment->page_id = $page->id;
$comment->created_by = $userId;
$comment->save();
return $comment;
}
public function update($comment, $input) {
$userId = user()->id;
$comment->updated_by = $userId;
$comment->fill($input);
$comment->save();
return $comment;
}
public function getCommentsForPage($pageId, $commentId, $count = 20) {
if (empty($commentId)) {
// requesting parent comments
$query = $this->comment->getParentCommentsByPage($pageId);
return $query->paginate($count);
} else {
// requesting the child comments.
return Comment::whereRaw("page_id = $pageId AND parent_id = $commentId")->get();
}
}
}

View File

@ -86,8 +86,7 @@ class EntityRepo
$this->entities = [
'page' => $this->page,
'chapter' => $this->chapter,
'book' => $this->book,
'page_revision' => $this->pageRevision
'book' => $this->book
];
$this->viewService = $viewService;
$this->permissionService = $permissionService;
@ -314,11 +313,12 @@ class EntityRepo
* Loads the book slug onto child elements to prevent access database access for getting the slug.
* @param Book $book
* @param bool $filterDrafts
* @param bool $renderPages
* @return mixed
*/
public function getBookChildren(Book $book, $filterDrafts = false)
public function getBookChildren(Book $book, $filterDrafts = false, $renderPages = false)
{
$q = $this->permissionService->bookChildrenQuery($book->id, $filterDrafts)->get();
$q = $this->permissionService->bookChildrenQuery($book->id, $filterDrafts, $renderPages)->get();
$entities = [];
$parents = [];
$tree = [];
@ -326,6 +326,10 @@ class EntityRepo
foreach ($q as $index => $rawEntity) {
if ($rawEntity->entity_type === 'BookStack\\Page') {
$entities[$index] = $this->page->newFromBuilder($rawEntity);
if ($renderPages) {
$entities[$index]->html = $rawEntity->description;
$entities[$index]->html = $this->renderPage($entities[$index]);
};
} else if ($rawEntity->entity_type === 'BookStack\\Chapter') {
$entities[$index] = $this->chapter->newFromBuilder($rawEntity);
$key = $entities[$index]->entity_type . ':' . $entities[$index]->id;
@ -1054,7 +1058,7 @@ class EntityRepo
public function restorePageRevision(Page $page, Book $book, $revisionId)
{
$this->savePageRevision($page);
$revision = $this->getById('page_revision', $revisionId);
$revision = $page->revisions()->where('id', '=', $revisionId)->first();
$page->fill($revision->toArray());
$page->slug = $this->findSuitableSlug('page', $page->name, $page->id, $book->id);
$page->text = strip_tags($page->html);