diff --git a/src/Content/Version.php b/src/Content/Version.php index a51ef20320..6bed109eda 100644 --- a/src/Content/Version.php +++ b/src/Content/Version.php @@ -62,37 +62,21 @@ public function create(array $fields, string $language = 'default'): void } /** - * Deletes a version by language or for any language - * - * @param string|null $language If null, all available languages will be deleted + * Deletes a version with all its languages */ - public function delete(string|null $language = null): void + public function delete(): void { - // delete a single language + // delete the default language in single-language mode if ($this->model->kirby()->multilang() === false) { - $this->deleteLanguage('default'); - } - - // delete a specific language - if ($language !== null) { - $this->deleteLanguage($language); - return; + $this->model->storage()->delete($this->id, $this->language('default')); } // delete all languages foreach ($this->model->kirby()->languages() as $language) { - $this->deleteLanguage($language); + $this->model->storage()->delete($this->id, $language); } } - /** - * Deletes a version by a specific language - */ - public function deleteLanguage(string $language = 'default'): void - { - $this->model->storage()->delete($this->id, $this->language($language)); - } - /** * Ensure that the version exists and otherwise * throw an exception diff --git a/tests/Content/VersionTest.php b/tests/Content/VersionTest.php index f34458539c..66cb6fe41a 100644 --- a/tests/Content/VersionTest.php +++ b/tests/Content/VersionTest.php @@ -225,15 +225,22 @@ public function testDeleteMultiLanguage(): void ); $this->assertContentFileDoesNotExist('de'); + $this->assertContentFileDoesNotExist('en'); - $version->create([ + Data::write($this->contentFile('en'), [ 'title' => 'Test' - ], 'de'); + ]); + + Data::write($this->contentFile('de'), [ + 'title' => 'Test' + ]); + $this->assertContentFileExists('en'); $this->assertContentFileExists('de'); - $version->delete('de'); + $version->delete(); + $this->assertContentFileDoesNotExist('en'); $this->assertContentFileDoesNotExist('de'); } @@ -252,7 +259,7 @@ public function testDeleteSingleLanguage(): void $this->assertContentFileDoesNotExist(); - $version->create([ + Data::write($this->contentFile(), [ 'title' => 'Test' ]);