Showing
3 changed files
with
29 additions
and
2 deletions
| ... | @@ -1058,7 +1058,7 @@ class EntityRepo | ... | @@ -1058,7 +1058,7 @@ class EntityRepo |
| 1058 | public function restorePageRevision(Page $page, Book $book, $revisionId) | 1058 | public function restorePageRevision(Page $page, Book $book, $revisionId) |
| 1059 | { | 1059 | { |
| 1060 | $this->savePageRevision($page); | 1060 | $this->savePageRevision($page); |
| 1061 | - $revision = $this->getById('page_revision', $revisionId); | 1061 | + $revision = $page->revisions()->where('id', '=', $revisionId)->first(); |
| 1062 | $page->fill($revision->toArray()); | 1062 | $page->fill($revision->toArray()); |
| 1063 | $page->slug = $this->findSuitableSlug('page', $page->name, $page->id, $book->id); | 1063 | $page->slug = $this->findSuitableSlug('page', $page->name, $page->id, $book->id); |
| 1064 | $page->text = strip_tags($page->html); | 1064 | $page->text = strip_tags($page->html); | ... | ... |
| ... | @@ -11,6 +11,6 @@ | ... | @@ -11,6 +11,6 @@ |
| 11 | </div> | 11 | </div> |
| 12 | 12 | ||
| 13 | <div class="form-group"> | 13 | <div class="form-group"> |
| 14 | - <a href="{{ back()->getTargetUrl() }}" class="button muted">{{ trans('common.cancel') }}</a> | 14 | + <a href="{{ isset($book) ? $book->getUrl() : baseUrl('/books') }}" class="button muted">{{ trans('common.cancel') }}</a> |
| 15 | <button type="submit" class="button pos">{{ trans('entities.books_save') }}</button> | 15 | <button type="submit" class="button pos">{{ trans('entities.books_save') }}</button> |
| 16 | </div> | 16 | </div> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -53,4 +53,31 @@ class PageContentTest extends TestCase | ... | @@ -53,4 +53,31 @@ class PageContentTest extends TestCase |
| 53 | $revisionView->assertSee('new content'); | 53 | $revisionView->assertSee('new content'); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | + public function test_page_revision_restore_updates_content() | ||
| 57 | + { | ||
| 58 | + $this->asEditor(); | ||
| 59 | + | ||
| 60 | + $entityRepo = $this->app[EntityRepo::class]; | ||
| 61 | + $page = Page::first(); | ||
| 62 | + $entityRepo->updatePage($page, $page->book_id, ['name' => 'updated page abc123', 'html' => '<p>new contente def456</p>', 'summary' => 'initial page revision testing']); | ||
| 63 | + $entityRepo->updatePage($page, $page->book_id, ['name' => 'updated page again', 'html' => '<p>new content</p>', 'summary' => 'page revision testing']); | ||
| 64 | + $page = Page::find($page->id); | ||
| 65 | + | ||
| 66 | + | ||
| 67 | + $pageView = $this->get($page->getUrl()); | ||
| 68 | + $pageView->assertDontSee('abc123'); | ||
| 69 | + $pageView->assertDontSee('def456'); | ||
| 70 | + | ||
| 71 | + $revToRestore = $page->revisions()->where('name', 'like', '%abc123')->first(); | ||
| 72 | + $restoreReq = $this->get($page->getUrl() . '/revisions/' . $revToRestore->id . '/restore'); | ||
| 73 | + $page = Page::find($page->id); | ||
| 74 | + | ||
| 75 | + $restoreReq->assertStatus(302); | ||
| 76 | + $restoreReq->assertRedirect($page->getUrl()); | ||
| 77 | + | ||
| 78 | + $pageView = $this->get($page->getUrl()); | ||
| 79 | + $pageView->assertSee('abc123'); | ||
| 80 | + $pageView->assertSee('def456'); | ||
| 81 | + } | ||
| 82 | + | ||
| 56 | } | 83 | } | ... | ... |
-
Please register or sign in to post a comment