3 declare(strict_types=1);
    35         ILIAS\Exercise\Notification\NotificationManager $notification
    39         $lng = $domain->lng();
    40         $lng->loadLanguageModule(
"exc");
    47         $ctrl = $this->gui->ctrl();
    49         $next_class = $ctrl->getNextClass($this);
    50         $cmd = $ctrl->getCmd(
"showFeedbackForm");
    52         switch ($next_class) {
    56                     "validateAndSubmitFeedbackForm",
    57                     "saveCommentForLearners"    66         $lng = $this->domain->lng();
    67         $ctrl = $this->gui->ctrl();
    69         $ctrl->setParameter($this, 
"ass_id", $ass_id);
    70         $ctrl->setParameter($this, 
"member_id", $usr_id);
    74             ->modal(
$lng->txt(
"exc_tbl_action_feedback_text"))
    75             ->getAsyncTriggerButtonComponents(
    76                 $lng->txt(
"exc_tbl_action_feedback_text"),
    77                 $ctrl->getLinkTarget($this, 
"showFeedbackForm", 
"", 
true),
    86         $lng = $this->domain->lng();
    88             ->modal(
$lng->txt(
"exc_tbl_action_feedback_text"))
    95         $lng = $this->domain->lng();
    96         $ctrl = $this->gui->ctrl();
    97         $request = $this->gui->request();
   100         $ass = $this->domain->assignment()->getAssignment(
$ass_id);
   103         $ctrl->setParameter($this, 
"ass_id", 
$ass_id);
   104         $ctrl->setParameter($this, 
"member_id", 
$user_id);
   108             ->form(self::class, 
"validateAndSubmitFeedbackForm")
   112                 $lng->txt(
"exc_comment_for_learner"),
   113                 $lng->txt(
"exc_comment_for_learner_info"),
   114                 $ass->getMemberStatus(
$user_id)->getComment()
   122         $lng = $this->domain->lng();
   123         $ctrl = $this->gui->ctrl();
   124         $request = $this->gui->request();
   126         if (!$form->isValid()) {
   127             $this->gui->modal(
$lng->txt(
"exc_tbl_action_feedback_text"))
   133         $ass_id = $request->getAssId();
   134         $comment = $form->getData(
"comment");
   136         $ctrl->setParameter($this, 
"member_id", 
$user_id);
   137         $ctrl->setParameter($this, 
"ass_id", 
$ass_id);
   138         $ctrl->setParameter($this, 
"comment", 
$comment);
   140         $target = $ctrl->getLinkTarget($this, 
"saveCommentForLearners");
   141         $this->gui->send(
"<script>window.location.href = '" . $target . 
"';</script>");
   146         $ctrl = $this->gui->ctrl();
   147         $request = $this->gui->request();
   149         $ass_id = $request->getAssId();
   150         $ass = $this->domain->assignment()->getAssignment(
$ass_id);
   152         $comment = trim($request->getComment());
   156             $user_ids = $submission->getUserIds();
   159             $all_members = $all_members->getMembers();
   163                 if (in_array($user_id, $all_members)) {
   164                     $member_status = $ass->getMemberStatus($user_id);
   166                     $member_status->setFeedback(
true);
   167                     $member_status->update();
   175             if ($reci_ids !== []) {
   186         $ctrl->redirectByClass(
"ilexercisemanagementgui", $request->getParticipantId()
 
Exercise UI frontend presentation service class. 
 
Interface Observer  Contains several chained tasks and infos about them. 
 
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
 
__construct(InternalDomainService $domain, InternalGUIService $gui, ?ilObjExercise $exercise, ILIAS\Exercise\Notification\NotificationManager $notification)
 
ILIAS Exercise Notification NotificationManager $notification
 
notification()
 description: > Example for rendring a notification glyph. 
 
getComponents(int $ass_id, int $usr_id)
 
form( $class_path, string $cmd, string $submit_caption="")
 
Exercise submission //TODO: This class has many static methods related to delivered "files"...
 
validateAndSubmitFeedbackForm()
 
InternalDomainService $domain
 
catch(ilCmiXapiException $e) send($response)