]> BookStack Code Mirror - bookstack/commitdiff
Fixed page includes erroring on save
authorDan Brown <redacted>
Wed, 20 Sep 2017 20:03:40 +0000 (21:03 +0100)
committerDan Brown <redacted>
Wed, 20 Sep 2017 20:03:40 +0000 (21:03 +0100)
Closes #514

app/Http/Controllers/PageController.php
app/Repos/EntityRepo.php
tests/Entity/PageContentTest.php

index c3090af83da072151838ffc308934ef79956d7f0..fd36b31584570c3dc15ade983a741a775e98600f 100644 (file)
@@ -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',
index 9a6db3fc35f9504bd2e74f5eebaa7a675883feb3..c2899b136ad341137642f30bb0e85605d5639e91 100644 (file)
@@ -716,7 +716,6 @@ class EntityRepo
             $content = str_replace($matches[0][$index], trim($innerContent), $content);
         }
 
-        $page->setAttribute('renderedHTML', $content);
         return $content;
     }
 
index 6b64c2c640ef8427f72322ae489b9508636bf44e..cd6526aecb1758bb530b69a3b9a6a26d53b522c6 100644 (file)
@@ -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 = "<p>{{@$secondPage->id}}</p>";
+
+        $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();