4 include_once(
"./Services/Table/classes/class.ilTable2GUI.php");
5 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
28 function __construct($a_parent_obj, $a_parent_cmd, $a_exc, $a_ass_id)
33 $this->exc_id = $this->exc->getId();
34 $this->
setId(
"exc_mem_".$a_ass_id);
37 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
39 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
41 $this->ass_id = $a_ass_id;
45 $this->
setTitle($lng->txt(
"exc_assignment").
": ".
62 foreach(
$data as $item)
64 $team_id = $team_map[$item[
"usr_id"]];
72 $team_id =
"nty".$item[
"usr_id"];
75 if(!isset($tmp[$team_id]))
77 $tmp[$team_id] = $item;
80 $tmp[$team_id][
"team"][$item[
"usr_id"]] = $item[
"name"];
81 $tmp[$team_id][
"team_id"] = $team_id;
91 $this->peer_review = $ass_obj->getPeerReview();
92 if($this->peer_review)
94 include_once
'./Services/Rating/classes/class.ilRatingGUI.php';
105 if(in_array(
"image", $this->selected))
107 $this->
addColumn($this->lng->txt(
"image"),
"",
"1");
109 $this->
addColumn($this->lng->txt(
"name"),
"name");
110 if(in_array(
"login", $this->selected))
112 $this->
addColumn($this->lng->txt(
"login"),
"login");
117 $this->
addColumn($this->lng->txt(
"exc_team"));
123 $this->
addColumn($this->lng->txt(
"exc_exercise_sent"),
"sent_time");
125 $this->
addColumn($this->lng->txt(
"exc_submission"),
"submission");
126 $this->
addColumn($this->lng->txt(
"exc_grading"),
"solved_time");
127 $this->
addColumn($this->lng->txt(
"feedback"),
"feedback_time");
134 $this->
setRowTemplate(
"tpl.exc_members_row.html",
"Modules/Exercise");
140 $this->
addMultiCommand(
"redirectFeedbackMail", $lng->txt(
"exc_send_mail"));
141 $this->
addMultiCommand(
"sendMembers", $lng->txt(
"exc_send_assignment"));
142 $this->
addMultiCommand(
"confirmDeassignMembers", $lng->txt(
"exc_deassign_members"));
146 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
147 include_once
"Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php";
148 $this->overlay_tpl =
new ilTemplate(
"tpl.exc_learner_comment_overlay.html",
true,
true,
"Modules/Exercise");
156 "txt" => $this->lng->txt(
"image"),
161 "txt" => $this->lng->txt(
"login"),
175 include_once
"./Services/Object/classes/class.ilObjectFactory.php";
176 $member_id = $member[
"usr_id"];
183 $has_no_team_yet = (substr($member[
"team_id"], 0, 3) ==
"nty");
185 if(!$has_no_team_yet)
192 $this->tpl->setCurrentBlock(
"mail_sent");
196 $this->tpl->setVariable(
"TXT_MAIL_SENT",
197 sprintf($lng->txt(
"exc_sent_at"),
202 $this->tpl->setVariable(
"TXT_MAIL_SENT",
205 $this->tpl->parseCurrentBlock();
209 $this->tpl->setCurrentBlock(
"mail_sent");
210 $this->tpl->setVariable(
"TXT_MAIL_SENT",
212 $this->tpl->parseCurrentBlock();
217 $this->tpl->setVariable(
"VAL_CHKBOX",
219 $this->tpl->setVariable(
"VAL_ID",
226 if(!isset($member[
"team"]))
228 $this->tpl->setVariable(
"TXT_NAME",
231 if(in_array(
"login", $this->selected))
233 $this->tpl->setVariable(
"TXT_LOGIN",
234 "[".$member[
"login"].
"]");
237 if(in_array(
"image", $this->selected))
240 $this->tpl->setVariable(
"USR_IMAGE",
241 $mem_obj->getPersonalPicturePath(
"xxsmall"));
242 $this->tpl->setVariable(
"USR_ALT", $lng->txt(
"personal_picture"));
248 $this->tpl->setCurrentBlock(
"team_member");
249 asort($member[
"team"]);
250 foreach($member[
"team"] as $member_name)
252 $this->tpl->setVariable(
"TXT_MEMBER_NAME", $member_name);
253 $this->tpl->parseCurrentBlock();
256 if(!$has_no_team_yet)
258 $this->tpl->setCurrentBlock(
"team_log");
259 $ilCtrl->setParameter($this->parent_obj,
"lmem", $member_id);
260 $this->tpl->setVariable(
"HREF_LOG",
261 $ilCtrl->getLinkTarget($this->parent_obj,
"showTeamLog"));
262 $this->tpl->setVariable(
"TXT_LOG", $lng->txt(
"exc_team_log"));
263 $ilCtrl->setParameter($this->parent_obj,
"lmem",
"");
264 $this->tpl->parseCurrentBlock();
269 $this->tpl->setCurrentBlock(
"team_info");
270 $this->tpl->setVariable(
"TXT_TEAM_INFO", $lng->txt(
"exc_no_team_yet"));
271 $this->tpl->setVariable(
"TXT_CREATE_TEAM", $lng->txt(
"exc_create_team"));
273 $ilCtrl->setParameter($this->parent_obj,
"lmem", $member_id);
274 $this->tpl->setVariable(
"URL_CREATE_TEAM",
275 $ilCtrl->getLinkTarget($this->getParentObject(),
"createSingleMemberTeam"));
276 $ilCtrl->setParameter($this->parent_obj,
"lmem",
"");
278 if($file_info[
"files"][
"count"])
280 $this->tpl->setVariable(
"TEAM_FILES_INFO",
"<br />".
281 $file_info[
"files"][
"txt"].
": ".
282 $file_info[
"files"][
"count"]);
284 $this->tpl->parseCurrentBlock();
288 if(!$has_no_team_yet)
290 $this->tpl->setVariable(
"VAL_LAST_SUBMISSION", $file_info[
"last_submission"][
"value"]);
291 $this->tpl->setVariable(
"TXT_LAST_SUBMISSION", $file_info[
"last_submission"][
"txt"]);
293 $this->tpl->setVariable(
"TXT_SUBMITTED_FILES", $file_info[
"files"][
"txt"]);
294 $this->tpl->setVariable(
"VAL_SUBMITTED_FILES", $file_info[
"files"][
"count"]);
296 if($file_info[
"files"][
"download_url"])
298 $this->tpl->setCurrentBlock(
"download_link");
299 $this->tpl->setVariable(
"LINK_DOWNLOAD", $file_info[
"files"][
"download_url"]);
300 $this->tpl->setVariable(
"TXT_DOWNLOAD", $file_info[
"files"][
"download_txt"]);
301 $this->tpl->parseCurrentBlock();
304 if($file_info[
"files"][
"download_new_url"])
306 $this->tpl->setCurrentBlock(
"download_link");
307 $this->tpl->setVariable(
"LINK_NEW_DOWNLOAD", $file_info[
"files"][
"download_new_url"]);
308 $this->tpl->setVariable(
"TXT_NEW_DOWNLOAD", $file_info[
"files"][
"download_new_txt"]);
309 $this->tpl->parseCurrentBlock();
313 $this->tpl->setVariable(
"TXT_NOTE", $lng->txt(
"exc_note_for_tutor"));
314 $this->tpl->setVariable(
"NAME_NOTE",
315 "notice[$member_id]");
316 $this->tpl->setVariable(
"VAL_NOTE",
324 $overlay_id =
"excasscomm_".$this->ass_id.
"_".$member_id;
325 $overlay_trigger_id = $overlay_id.
"_tr";
327 $overlay->setAnchor($overlay_trigger_id);
328 $overlay->setTrigger($overlay_trigger_id,
"click", $overlay_trigger_id);
331 $this->tpl->setVariable(
"LCOMMENT_ID", $overlay_id.
"_snip");
332 $this->tpl->setVariable(
"LCOMMENT_SNIPPET",
ilUtil::shortenText($lcomment_value, 25,
true));
333 $this->tpl->setVariable(
"COMMENT_OVERLAY_TRIGGER_ID", $overlay_trigger_id);
334 $this->tpl->setVariable(
"COMMENT_OVERLAY_TRIGGER_TEXT", $lng->txt(
"exc_comment_for_learner_edit"));
337 $lcomment_form->setId($overlay_id);
338 $lcomment_form->setPreventDoubleSubmission(
false);
340 $lcomment =
new ilTextAreaInputGUI($lng->txt(
"exc_comment_for_learner"),
"lcomment_".$this->ass_id.
"_".$member_id);
341 $lcomment->
setInfo($lng->txt(
"exc_comment_for_learner_info"));
342 $lcomment->setValue($lcomment_value);
343 $lcomment->setCols(45);
344 $lcomment->setRows(10);
345 $lcomment_form->addItem($lcomment);
347 $lcomment_form->addCommandButton(
"save", $lng->txt(
"save"));
350 $this->overlay_tpl->setCurrentBlock(
"overlay_bl");
351 $this->overlay_tpl->setVariable(
"COMMENT_OVERLAY_ID", $overlay_id);
352 $this->overlay_tpl->setVariable(
"COMMENT_OVERLAY_FORM", $lcomment_form->getHTML());
353 $this->overlay_tpl->parseCurrentBlock();
360 $this->tpl->setVariable(
"SEL_".strtoupper($status),
' selected="selected" ');
361 $this->tpl->setVariable(
"TXT_NOTGRADED", $lng->txt(
"exc_notgraded"));
362 $this->tpl->setVariable(
"TXT_PASSED", $lng->txt(
"exc_passed"));
363 $this->tpl->setVariable(
"TXT_FAILED", $lng->txt(
"exc_failed"));
366 $this->tpl->setCurrentBlock(
"status_date");
367 $this->tpl->setVariable(
"TXT_LAST_CHANGE", $lng->txt(
"last_change"));
368 $this->tpl->setVariable(
'VAL_STATUS_DATE',
370 $this->tpl->parseCurrentBlock();
374 case "passed": $pic =
"scorm/passed.svg";
break;
375 case "failed": $pic =
"scorm/failed.svg";
break;
376 default: $pic =
"scorm/not_attempted.svg";
break;
379 $this->tpl->setVariable(
"ALT_STATUS", $lng->txt(
"exc_".$status));
382 $this->tpl->setVariable(
"TXT_MARK", $lng->txt(
"exc_mark"));
383 $this->tpl->setVariable(
"NAME_MARK",
386 $this->tpl->setVariable(
"VAL_MARK",
390 $ilCtrl->setParameter($this->parent_obj,
"member_id", $member_id);
393 $this->tpl->setCurrentBlock(
"feedback_date");
394 $this->tpl->setVariable(
"TXT_FEEDBACK_MAIL_SENT",
395 sprintf($lng->txt(
"exc_sent_at"),
397 $this->tpl->parseCurrentBlock();
401 $this->tpl->setVariable(
"LINK_FEEDBACK",
402 $ilCtrl->getLinkTarget($this->parent_obj,
"redirectFeedbackMail"));
403 $this->tpl->setVariable(
"TXT_FEEDBACK",
404 $lng->txt(
"exc_send_mail"));
408 $feedback_id =
"t".$member[
"team_id"];
412 $feedback_id = $member_id;
416 $cnt_files = $this->storage->countFeedbackFiles($feedback_id);
417 $ilCtrl->setParameter($this->parent_obj,
"fsmode",
"feedback");
418 $this->tpl->setVariable(
"LINK_FILE_FEEDBACK",
419 $ilCtrl->getLinkTargetByClass(
"ilfilesystemgui",
"listFiles"));
422 $this->tpl->setVariable(
"TXT_FILE_FEEDBACK",
423 $lng->txt(
"exc_add_feedback_file"));
427 $this->tpl->setVariable(
"TXT_FILE_FEEDBACK",
428 $lng->txt(
"exc_fb_files").
" (".$cnt_files.
")");
434 $this->tpl->setCurrentBlock(
"peer_review_bl");
435 $this->tpl->setVariable(
"TXT_PEER_REVIEW", $lng->txt(
"exc_peer_review_show"));
437 $ilCtrl->setParameter($this->parent_obj,
"grd", 1);
438 $this->tpl->setVariable(
"LINK_PEER_REVIEW",
439 $ilCtrl->getLinkTarget($this->parent_obj,
"showPersonalPeerReview"));
440 $ilCtrl->setParameter($this->parent_obj,
"grd",
"");
443 $rating->setObject($this->ass_id,
"ass", $member_id,
"peer");
444 $rating->setUserId(0);
445 $this->tpl->setVariable(
"VAL_RATING", $rating->getHTML(
true,
false));
447 $this->tpl->parseCurrentBlock();
450 $this->tpl->parseCurrentBlock();
454 $this->tpl->touchBlock(
"member_has_no_team_bl");
462 $url = $ilCtrl->getLinkTarget($this->
getParentObject(),
"saveCommentForLearners",
"",
true,
false);
463 $this->overlay_tpl->setVariable(
"AJAX_URL", $url);
466 $this->overlay_tpl->get();