From 74a5e3113edad8344a5cb2fc8ea58b271353e358 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Wed, 20 Sep 2017 21:03:40 +0100 Subject: [PATCH] Fixed page includes erroring on save Closes #514 --- app/Http/Controllers/PageController.php | 6 ++++-- app/Repos/EntityRepo.php | 1 - tests/Entity/PageContentTest.php | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index c3090af83..fd36b3158 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -158,9 +158,9 @@ class PageController extends Controller $this->checkOwnablePermission('page-view', $page); - $pageContent = $this->entityRepo->renderPage($page); + $page->html = $this->entityRepo->renderPage($page); $sidebarTree = $this->entityRepo->getBookChildren($page->book); - $pageNav = $this->entityRepo->getPageNav($pageContent); + $pageNav = $this->entityRepo->getPageNav($page->html); $page->load(['comments.createdBy']); Views::add($page); @@ -441,6 +441,7 @@ class PageController extends Controller public function exportPdf($bookSlug, $pageSlug) { $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page->html = $this->entityRepo->renderPage($page); $pdfContent = $this->exportService->pageToPdf($page); return response()->make($pdfContent, 200, [ 'Content-Type' => 'application/octet-stream', @@ -457,6 +458,7 @@ class PageController extends Controller public function exportHtml($bookSlug, $pageSlug) { $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page->html = $this->entityRepo->renderPage($page); $containedHtml = $this->exportService->pageToContainedHtml($page); return response()->make($containedHtml, 200, [ 'Content-Type' => 'application/octet-stream', diff --git a/app/Repos/EntityRepo.php b/app/Repos/EntityRepo.php index 9a6db3fc3..c2899b136 100644 --- a/app/Repos/EntityRepo.php +++ b/app/Repos/EntityRepo.php @@ -716,7 +716,6 @@ class EntityRepo $content = str_replace($matches[0][$index], trim($innerContent), $content); } - $page->setAttribute('renderedHTML', $content); return $content; } diff --git a/tests/Entity/PageContentTest.php b/tests/Entity/PageContentTest.php index 6b64c2c64..cd6526aec 100644 --- a/tests/Entity/PageContentTest.php +++ b/tests/Entity/PageContentTest.php @@ -35,6 +35,21 @@ class PageContentTest extends TestCase $pageContent->assertSee('Well This is a second block of content'); } + public function test_saving_page_with_includes() + { + $page = Page::first(); + $secondPage = Page::all()->get(2); + $this->asEditor(); + $page->html = "

{{@$secondPage->id}}

"; + + $resp = $this->put($page->getUrl(), ['name' => $page->name, 'html' => $page->html, 'summary' => '']); + + $resp->assertStatus(302); + + $page = Page::find($page->id); + $this->assertContains("{{@$secondPage->id}}", $page->html); + } + public function test_page_revision_views_viewable() { $this->asEditor();