aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/course/wiki.php
diff options
context:
space:
mode:
authorFinn Schneider <schneider@data-quest.de>2025-11-06 17:08:18 +0000
committerElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2025-11-06 18:08:18 +0100
commit5929e4195a5cff6586f54a1ebb76c9a943101f66 (patch)
tree2c933cf89e3b472bb11d53fb1118d6d8ee03273a /app/controllers/course/wiki.php
parent768ac28e1342203a21b226575fd3dfcc49776842 (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.php35
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());
}