From 1716e9bf5cbd1aca80060df24c4b0be1475b7d47 Mon Sep 17 00:00:00 2001
From: Thomas Hackl <hackl@data-quest.de>
Date: Thu, 3 Aug 2023 15:05:04 +0000
Subject: [PATCH] Resolve "Mehrfachzuordnung der Studienbereiche hat keine
 Aktion/Selektion"

Closes #2955

Merge request studip/studip!1988
---
 app/controllers/admin/courses.php                | 12 ++++++++++++
 app/views/admin/courses/batch_assign_semtree.php |  4 +++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index e1c53e7dbd9..05e59f6c6c1 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -486,6 +486,13 @@ class Admin_CoursesController extends AuthenticatedController
                 break;
             case 20: //Notiz
                 break;
+            case 21: //Mehrfachzuordnung Studienbereiche
+                $data['buttons_top'] = '<label>' . _('Alle auswählen') .
+                    '<input type="checkbox" data-proxyfor=".course-admin td:last-child :checkbox"></label>';
+                $data['buttons_bottom'] = (string) \Studip\Button::createAccept(
+                    _('Mehrfachzuordnung von Studienbereichen'), 'batch_assign_semtree',
+                    ['formaction' => URLHelper::getURL('dispatch.php/admin/tree/batch_assign_semtree')]);
+                break;
             default:
                 foreach (PluginManager::getInstance()->getPlugins('AdminCourseAction') as $plugin) {
                     if ($GLOBALS['user']->cfg->MY_COURSES_ACTION_AREA === get_class($plugin)) {
@@ -722,6 +729,11 @@ class Admin_CoursesController extends AuthenticatedController
                     ]
                 );
                 break;
+            case 21: //Mehrfachzuweisung Studienbereiche
+                $template = $tf->open('admin/courses/batch_assign_semtree');
+                $template->course = $course;
+                $d['action'] = $template->render();
+                break;
             default:
                 foreach (PluginManager::getInstance()->getPlugins('AdminCourseAction') as $plugin) {
                     if ($GLOBALS['user']->cfg->MY_COURSES_ACTION_AREA === get_class($plugin)) {
diff --git a/app/views/admin/courses/batch_assign_semtree.php b/app/views/admin/courses/batch_assign_semtree.php
index b28e96bb611..f4161124ed0 100644
--- a/app/views/admin/courses/batch_assign_semtree.php
+++ b/app/views/admin/courses/batch_assign_semtree.php
@@ -4,5 +4,7 @@
  */
 ?>
 <label>
-    <input name="assign_semtree[]" type="checkbox" value="<?= htmlReady($course->id) ?>">
+    <input name="assign_semtree[]" type="checkbox" value="<?= htmlReady($course->id) ?>"
+           aria-label="<?= htmlReady(sprintf(_('Veranstaltung %s mehreren Studienbereichen zuordnen'),
+               $course->getFullName())) ?>">
 </label>
-- 
GitLab