X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/46ea90c36ee5d50d63b9e0dcd6cb73327f1a8ded..refs/pull/1133/head:/app/Http/Controllers/BookController.php diff --git a/app/Http/Controllers/BookController.php b/app/Http/Controllers/BookController.php index decdfda49..44368a9c4 100644 --- a/app/Http/Controllers/BookController.php +++ b/app/Http/Controllers/BookController.php @@ -1,10 +1,10 @@ entityRepo->getAllPaginated('book', 20); + $books = $this->entityRepo->getAllPaginated('book', 18); $recents = $this->signedIn ? $this->entityRepo->getRecentlyViewed('book', 4, 0) : false; $popular = $this->entityRepo->getPopular('book', 4, 0); $new = $this->entityRepo->getRecentlyCreated('book', 4, 0); @@ -204,7 +204,7 @@ class BookController extends Controller // Get the books involved in the sort $bookIdsInvolved = $bookIdsInvolved->unique()->toArray(); - $booksInvolved = $this->entityRepo->book->newQuery()->whereIn('id', $bookIdsInvolved)->get(); + $booksInvolved = $this->entityRepo->getManyById('book', $bookIdsInvolved, false, true); // Throw permission error if invalid ids or inaccessible books given. if (count($bookIdsInvolved) !== count($booksInvolved)) { $this->showPermissionError(); @@ -299,10 +299,7 @@ class BookController extends Controller { $book = $this->entityRepo->getBySlug('book', $bookSlug); $pdfContent = $this->exportService->bookToPdf($book); - return response()->make($pdfContent, 200, [ - 'Content-Type' => 'application/octet-stream', - 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.pdf' - ]); + return $this->downloadResponse($pdfContent, $bookSlug . '.pdf'); } /** @@ -314,10 +311,7 @@ class BookController extends Controller { $book = $this->entityRepo->getBySlug('book', $bookSlug); $htmlContent = $this->exportService->bookToContainedHtml($book); - return response()->make($htmlContent, 200, [ - 'Content-Type' => 'application/octet-stream', - 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.html' - ]); + return $this->downloadResponse($htmlContent, $bookSlug . '.html'); } /** @@ -328,10 +322,7 @@ class BookController extends Controller public function exportPlainText($bookSlug) { $book = $this->entityRepo->getBySlug('book', $bookSlug); - $htmlContent = $this->exportService->bookToPlainText($book); - return response()->make($htmlContent, 200, [ - 'Content-Type' => 'application/octet-stream', - 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.txt' - ]); + $textContent = $this->exportService->bookToPlainText($book); + return $this->downloadResponse($textContent, $bookSlug . '.txt'); } }