From a81d59029d4cc0c0b063c81c79a417d3b8e92b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Zehnder?= Date: Thu, 19 Mar 2026 14:46:47 +0100 Subject: [PATCH] Fix: New revision is created but no changes were made #6062 --- app/Entities/Repos/PageRepo.php | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/app/Entities/Repos/PageRepo.php b/app/Entities/Repos/PageRepo.php index bc590785d93..6bcdc1f9ef7 100644 --- a/app/Entities/Repos/PageRepo.php +++ b/app/Entities/Repos/PageRepo.php @@ -118,27 +118,29 @@ public function setContentFromInput(Page $page, array $input): void */ public function update(Page $page, array $input): Page { - // Hold the old details to compare later + // Hold the old details to compare later. $oldName = $page->name; $oldHtml = $page->html; $oldMarkdown = $page->markdown; $this->updateTemplateStatusAndContentFromInput($page, $input); - $page = $this->baseRepo->update($page, $input); - // Update with new details - $page->revision_count++; - $page->save(); - - // Remove all update drafts for this user and page. - $this->revisionRepo->deleteDraftsForCurrentUser($page); - - // Save a revision after updating + // Values used to determine if a change has been made. $summary = trim($input['summary'] ?? ''); - $htmlChanged = isset($input['html']) && $input['html'] !== $oldHtml; + $htmlChanged = isset($page->html) && $page->html !== $oldHtml; $nameChanged = isset($input['name']) && $input['name'] !== $oldName; - $markdownChanged = isset($input['markdown']) && $input['markdown'] !== $oldMarkdown; + $markdownChanged = isset($page->markdown) && $page->markdown !== $oldMarkdown; + + // Update with new details, only if the page really changed. if ($htmlChanged || $nameChanged || $markdownChanged || $summary) { + $page = $this->baseRepo->update($page, $input); + + $page->revision_count++; + $page->save(); + + // Remove all update drafts for this user and page. + $this->revisionRepo->deleteDraftsForCurrentUser($page); + $this->revisionRepo->storeNewForPage($page, $summary); }