/**
* Saves a page revision into the system.
*/
- protected function savePageRevision(Page $page, string $summary = null)
+ protected function savePageRevision(Page $page, string $summary = null): PageRevision
{
$revision = new PageRevision($page->getAttributes());
{
$page->revision_count++;
$revision = $page->revisions()->where('id', '=', $revisionId)->first();
- $summary = trans('entities.pages_revision_restored_from', ['id' => strval($revisionId), 'summary' => $revision->summary]);
- $this->savePageRevision($page, $summary);
$page->fill($revision->toArray());
$content = new PageContent($page);
$page->updated_by = user()->id;
$page->refreshSlug();
$page->save();
-
$page->indexForSearch();
+
+ $summary = trans('entities.pages_revision_restored_from', ['id' => strval($revisionId), 'summary' => $revision->summary]);
+ $this->savePageRevision($page, $summary);
+
Activity::addForEntity($page, ActivityType::PAGE_RESTORE);
return $page;
}
'pages_revisions' => 'Page Revisions',
'pages_revisions_named' => 'Page Revisions for :pageName',
'pages_revision_named' => 'Page Revision for :pageName',
- 'pages_revision_restored_from' => 'Restored from #:id ":summary"',
+ 'pages_revision_restored_from' => 'Restored from #:id; :summary',
'pages_revisions_created_by' => 'Created By',
'pages_revisions_date' => 'Revision Date',
'pages_revisions_number' => '#',
$pageView->assertSee('def456');
}
+ public function test_page_revision_restore_sets_new_revision_with_summary()
+ {
+ $this->asEditor();
+
+ $pageRepo = app(PageRepo::class);
+ $page = Page::first();
+ $pageRepo->update($page, ['name' => 'updated page abc123', 'html' => '<p>new contente def456</p>', 'summary' => 'My first update']);
+ $pageRepo->update($page, ['name' => 'updated page again', 'html' => '<p>new content</p>', 'summary' => '']);
+ $page->refresh();
+
+ $revToRestore = $page->revisions()->where('name', 'like', '%abc123')->first();
+ $this->put($page->getUrl() . '/revisions/' . $revToRestore->id . '/restore');
+ $page->refresh();
+
+ $this->assertDatabaseHas('page_revisions', [
+ 'page_id' => $page->id,
+ 'text' => 'new contente def456',
+ 'type' => 'version',
+ 'summary' => "Restored from #{$revToRestore->id}; My first update",
+ ]);
+ }
+
public function test_page_revision_count_increments_on_update()
{
$page = Page::first();