aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/course/wiki.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/course/wiki.php')
-rw-r--r--app/controllers/course/wiki.php32
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');
}