4include_once(
"./Services/Table/classes/class.ilTable2GUI.php");
 
    5include_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;
 
   43                parent::__construct($a_parent_obj, $a_parent_cmd);
 
   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.
")");
 
  432                        if(!isset($member[
"team"]) && $this->peer_review)
 
  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");
 
  463                $this->overlay_tpl->setVariable(
"AJAX_URL", $url);
 
  465                return parent::render().
 
  466                        $this->overlay_tpl->get();
 
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
lookupMarkOfUser($a_ass_id, $a_user_id)
Lookup user mark.
getMemberListData($a_exc_id, $a_ass_id)
get member list data
static lookupSentTimeOfUser($a_ass_id, $a_user_id)
Get time when exercise has been sent per e-mail to user.
static lookupAnyExerciseSent($a_exc_id, $a_ass_id)
Check whether exercise has been sent to any student per mail.
static lookupFeedbackTimeOfUser($a_ass_id, $a_user_id)
Get time when feedback mail has been sent.
lookupStatusSentOfUser($a_ass_id, $a_user_id)
was: getStatusSentByMember($a_member_id)
lookupCommentForUser($a_ass_id, $a_user_id)
Lookup comment for the user.
lookupStatusOfUser($a_ass_id, $a_user_id)
was: getStatusByMember
static getAssignmentTeamMap($a_ass_id)
Get team structure for assignment.
static getDownloadedFilesInfoForTableGUIS($a_parent_obj, $a_exercise_id, $a_ass_type, $a_ass_id, $a_user_id, $a_parent_cmd=null)
lookupNoticeOfUser($a_ass_id, $a_user_id)
was: getNoticeByMember($a_member_id)
static lookupTitle($a_id)
Lookup title.
static lookupType($a_id)
Lookup type.
static lookupStatusTimeOfUser($a_ass_id, $a_user_id)
Get status time.
render()
render table @access public
__construct($a_parent_obj, $a_parent_cmd, $a_exc, $a_ass_id)
Constructor.
fillRow($member)
Fill table row.
getSelectableColumns()
Get selectable columns.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
This is a utility class for the yui overlays.
getSelectedColumns()
Get selected columns.
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="")
Add a column to the header.
setEnableHeader($a_enableheader)
Set Enable Header.
getParentObject()
Get parent object.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
setData($a_data)
set table data @access public
setEnableTitle($a_enabletitle)
Set Enable Title.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
addMultiCommand($a_cmd, $a_text)
Add Command button.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
static formCheckbox($checked, $varname, $value, $disabled=false)
??? @access public
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public