diff --git a/classes/announcement/Repository.php b/classes/announcement/Repository.php index d246ff6332f..41019994bc9 100644 --- a/classes/announcement/Repository.php +++ b/classes/announcement/Repository.php @@ -146,7 +146,12 @@ public function add(Announcement $announcement): int return $id; } - /** @copydoc DAO::update() */ + /** + * Update an object in the database + * + * Deletes the old image if it has been removed, or a new image has + * been uploaded. + */ public function edit(Announcement $announcement, array $params) { $newAnnouncement = clone $announcement; @@ -156,12 +161,14 @@ public function edit(Announcement $announcement, array $params) $this->dao->update($newAnnouncement); - if ($announcement->getImage()) { + $image = $newAnnouncement->getImage(); + $hasNewImage = $image && $image['temporaryFileId']; + + if ((!$image || $hasNewImage) && $announcement->getImage()) { $this->deleteImage($announcement); } - $image = $newAnnouncement->getImage(); - if ($image && $image['temporaryFileId']) { + if ($hasNewImage) { $this->handleImageUpload($newAnnouncement); } }