aboutsummaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorFinn Schneider <schneider@data-quest.de>2025-11-06 17:08:18 +0000
committerTill Glöggler <till@gundk.it>2026-02-27 11:53:16 +0100
commit0fa62461d3e8237b790ec89adf17bbdaceb99e44 (patch)
tree85110387ca02323ba21ebd47fec491dd5fe21a41 /app/controllers
parent2387562729cbc1313f7550132d3c1a188547d36b (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.php36
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());
}