]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Controllers/PageController.php
html diff in revision view
[bookstack] / app / Http / Controllers / PageController.php
index f35834e6221ea73332b7e88b9187c73b899fb8a5..1844e0c0c2aadadb6f60a78d12d9ef8f746cc335 100644 (file)
@@ -12,6 +12,7 @@ use BookStack\Repos\ChapterRepo;
 use BookStack\Repos\PageRepo;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Views;
+use Icap\HtmlDiff\HtmlDiff;
 
 class PageController extends Controller
 {
@@ -332,9 +333,19 @@ class PageController extends Controller
         $book = $this->bookRepo->getBySlug($bookSlug);
         $page = $this->pageRepo->getBySlug($pageSlug, $book->id);
         $revision = $this->pageRepo->getRevisionById($revisionId);
+        
+        $next     = $revision->getNext() ?: $page;
+        $htmlDiff = new HtmlDiff($revision->html, $next->html, true);
+        $diff     = $htmlDiff->outputDiff()->toString();
+
         $page->fill($revision->toArray());
         $this->setPageTitle('Page Revision For ' . $page->getShortName());
-        return view('pages/revision', ['page' => $page, 'book' => $book]);
+        
+        return view('pages/revision', [
+            'page' => $page,
+            'book' => $book,
+            'diff' => $diff,
+        ]);
     }
 
     /**