diff options
| author | Finn Schneider <schneider@data-quest.de> | 2025-11-06 17:08:18 +0000 |
|---|---|---|
| committer | Till Glöggler <till@gundk.it> | 2026-02-27 11:53:16 +0100 |
| commit | 0fa62461d3e8237b790ec89adf17bbdaceb99e44 (patch) | |
| tree | 85110387ca02323ba21ebd47fec491dd5fe21a41 /app/controllers | |
| parent | 2387562729cbc1313f7550132d3c1a188547d36b (diff) | |
Resolve "Wiki: Löschen der Startseite führt in inkonsistenten Zustand"
Closes #5830
Merge request studip/studip!4520
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/course/wiki.php | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/app/controllers/course/wiki.php b/app/controllers/course/wiki.php index 2b69639..639d1a2 100644 --- a/app/controllers/course/wiki.php +++ b/app/controllers/course/wiki.php @@ -144,6 +144,7 @@ class Course_WikiController extends AuthenticatedController $author, date('d.m.Y H:i:s', $this->page['chdate']) )); + $action_menu = ActionMenu::get(); if ($this->page->isEditable()) { $action_menu->addLink( @@ -157,22 +158,20 @@ class Course_WikiController extends AuthenticatedController Icon::create('settings'), ['data-dialog' => 'width=700'] ); - if ($this->page->isDeletable()) { - if (count($this->page->versions) > 0) { - $action_menu->addLink( - $this->ask_deletingURL($this->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($this->page->versions) > 0 && $this->page->versions->first()->isDeletable()) { + $action_menu->addLink( + $this->ask_deletingURL($this->page), + _('Seite / Version löschen'), + Icon::create('trash'), + ['data-dialog' => 'size=auto'] + ); + } else if ($this->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'] + ); } } $action_menu->addLink( @@ -318,8 +317,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()); } |
