diff options
| author | Finn Schneider <schneider@data-quest.de> | 2025-11-06 17:08:18 +0000 |
|---|---|---|
| committer | Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> | 2025-11-06 18:08:18 +0100 |
| commit | 5929e4195a5cff6586f54a1ebb76c9a943101f66 (patch) | |
| tree | 2c933cf89e3b472bb11d53fb1118d6d8ee03273a /app/controllers/course/wiki.php | |
| parent | 768ac28e1342203a21b226575fd3dfcc49776842 (diff) | |
Resolve "Wiki: Löschen der Startseite führt in inkonsistenten Zustand"
Closes #5830
Merge request studip/studip!4520
Diffstat (limited to 'app/controllers/course/wiki.php')
| -rw-r--r-- | app/controllers/course/wiki.php | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/app/controllers/course/wiki.php b/app/controllers/course/wiki.php index 4ac2f84..c9a4fa2 100644 --- a/app/controllers/course/wiki.php +++ b/app/controllers/course/wiki.php @@ -174,22 +174,20 @@ class Course_WikiController extends AuthenticatedController Icon::create('settings'), ['data-dialog' => 'width=700'] ); - if ($page->isDeletable()) { - if (count($page->versions) > 0) { - $action_menu->addLink( - $this->ask_deletingURL($page), - _('Seite / Version löschen'), - Icon::create('trash'), - ['data-dialog' => 'size=auto'] - ); - } else { - $action_menu->addButton( - 'delete', - _('Seite löschen'), - Icon::create('trash'), - ['data-confirm' => _('Wollen Sie wirklich die komplette Seite löschen?'), 'form' => 'delete_page'] - ); - } + if (count($page->versions) > 0 && $page->versions->first()->isDeletable()) { + $action_menu->addLink( + $this->ask_deletingURL($page), + _('Seite / Version löschen'), + Icon::create('trash'), + ['data-dialog' => 'size=auto'] + ); + } else if ($page->isDeletable()) { + $action_menu->addButton( + 'delete', + _('Seite löschen'), + Icon::create('trash'), + ['data-confirm' => _('Wollen Sie wirklich die komplette Seite löschen?'), 'form' => 'delete_page'] + ); } } return $action_menu; @@ -402,8 +400,13 @@ class Course_WikiController extends AuthenticatedController $this->validateWikiPage($page, $this->range, true); + if ($page->id == $this->range->getConfiguration()->WIKI_STARTPAGE_ID) { + $this->range->getConfiguration()->delete('WIKI_STARTPAGE_ID'); + } + $name = $page->name; $page->delete(); + PageLayout::postSuccess(sprintf(_('Die Seite %s wurde gelöscht.'), htmlReady($name))); $this->redirect($this->allpagesURL()); } |
