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)