From 3a19f36dad5d1565932da89fa231fe1282c5e7c4 Mon Sep 17 00:00:00 2001 From: Finn Schneider Date: Wed, 8 Oct 2025 10:52:06 +0200 Subject: re #4409 link empty page --- app/controllers/course/wiki.php | 10 +++++++++- db/migrations/6.2.2_add_wiki_preliminary.php | 23 +++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 db/migrations/6.2.2_add_wiki_preliminary.php diff --git a/app/controllers/course/wiki.php b/app/controllers/course/wiki.php index cf02e04..f3565ad 100644 --- a/app/controllers/course/wiki.php +++ b/app/controllers/course/wiki.php @@ -530,6 +530,8 @@ class Course_WikiController extends AuthenticatedController 'name' => $name, 'range_id' => Context::getId(), 'parent_id' => Request::option('parent_id', $this->range->getConfiguration()->WIKI_STARTPAGE_ID), + 'user_id' => User::findCurrent()->getId(), + 'preliminary' => 1 ]); } $this->redirect($this->editURL($page)); @@ -653,7 +655,12 @@ class Course_WikiController extends AuthenticatedController '`page_id` = :page_id AND `user_id` = :user_id', $pageData ); - $this->redirect($this->pageURL($page)); + if ($page->preliminary == 1) { + $page->delete(); + $this->redirect($this->allpagesURL()); + } else { + $this->redirect($this->pageURL($page)); + } } public function delegate_edit_mode_action(WikiPage $page, $user_id) @@ -704,6 +711,7 @@ class Course_WikiController extends AuthenticatedController public function save_action(WikiPage $page) { CSRFProtection::verifyUnsafeRequest(); + $page->preliminary = 0; $this->validateWikiPage($page, $this->range, true); diff --git a/db/migrations/6.2.2_add_wiki_preliminary.php b/db/migrations/6.2.2_add_wiki_preliminary.php new file mode 100644 index 0000000..8e8b836 --- /dev/null +++ b/db/migrations/6.2.2_add_wiki_preliminary.php @@ -0,0 +1,23 @@ +exec( + "ALTER TABLE `wiki_pages` ADD COLUMN `preliminary` TINYINT NOT NULL DEFAULT 0" + ); + } + + protected function down(): void + { + DBManager::get()->exec( + "ALTER TABLE `wiki_pages` DROP COLUMN `preliminary`" + ); + } +} -- cgit v1.0