diff options
Diffstat (limited to 'app/controllers/course/wiki.php')
| -rw-r--r-- | app/controllers/course/wiki.php | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/app/controllers/course/wiki.php b/app/controllers/course/wiki.php index e479868..5baa933 100644 --- a/app/controllers/course/wiki.php +++ b/app/controllers/course/wiki.php @@ -384,6 +384,38 @@ class Course_WikiController extends AuthenticatedController } break; + case 'delete_pages': + CSRFProtection::verifyUnsafeRequest(); + + $success_pages = []; + $error_pages = []; + WikiPage::findEachMany( + function (WikiPage $page) use (&$success_pages, &$error_pages) { + if ($page->isDeletable()) { + $name = $page->name; + $success = $page->delete(); + if ($success) { + $success_pages[] = $name; + } else { + $error_pages[] = $name; + } + } + }, + Request::intArray('pages_id') + ); + + if (count($success_pages) > 0) { + PageLayout::postSuccess(_('Seite(n) erfolgreich gelöscht')); + } + if (count($error_pages) > 0) { + PageLayout::postError( + _('Fehler beim Löschen von Seite(n): '), + array_map('htmlReady', $error_pages) + ); + } + + $this->relocate('course/wiki/allpages'); + break; default: $this->relocate('course/wiki/allpages'); } |
