ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilExerciseSubmissionTableGUI Class Reference

Exercise submission table. More...

+ Inheritance diagram for ilExerciseSubmissionTableGUI:
+ Collaboration diagram for ilExerciseSubmissionTableGUI:

Public Member Functions

 __construct ($a_parent_obj, $a_parent_cmd, ilObjExercise $a_exc, $a_item_id)
 Constructor. More...
 
 initFilter ()
 
 getSelectableColumns ()
 
 render ()
 
- Public Member Functions inherited from ilTable2GUI
 __construct ($a_parent_obj, $a_parent_cmd="", $a_template_context="")
 Constructor. More...
 
 setOpenFormTag ($a_val)
 Set open form tag. More...
 
 getOpenFormTag ()
 Get open form tag. More...
 
 setCloseFormTag ($a_val)
 Set close form tag. More...
 
 getCloseFormTag ()
 Get close form tag. More...
 
 determineLimit ()
 Determine the limit. More...
 
 getSelectableColumns ()
 Get selectable columns. More...
 
 determineSelectedColumns ()
 Determine selected columns. More...
 
 isColumnSelected ($a_col)
 Is given column selected? More...
 
 getSelectedColumns ()
 Get selected columns. More...
 
 executeCommand ()
 Execute command. More...
 
 resetOffset ($a_in_determination=false)
 Reset offset. More...
 
 initFilter ()
 Init filter. More...
 
 getParentObject ()
 Get parent object. More...
 
 getParentCmd ()
 Get parent command. More...
 
 setTopAnchor ($a_val)
 Set top anchor. More...
 
 getTopAnchor ()
 Get top anchor. More...
 
 setNoEntriesText ($a_text)
 Set text for an empty table. More...
 
 getNoEntriesText ()
 Get text for an empty table. More...
 
 setIsDataTable ($a_val)
 Set is data table. More...
 
 getIsDataTable ()
 Get is data table. More...
 
 setEnableTitle ($a_enabletitle)
 Set Enable Title. More...
 
 getEnableTitle ()
 Get Enable Title. More...
 
 setEnableHeader ($a_enableheader)
 Set Enable Header. More...
 
 getEnableHeader ()
 Get Enable Header. More...
 
 setEnableNumInfo ($a_val)
 Set enable num info. More...
 
 getEnableNumInfo ()
 Get enable num info. More...
 
 setTitle ($a_title, $a_icon=0, $a_icon_alt=0)
 Set title and title icon. More...
 
 setDescription ($a_val)
 Set description. More...
 
 getDescription ()
 Get description. More...
 
 setOrderField ($a_order_field)
 set order column More...
 
 getOrderField ()
 
 setData ($a_data)
 
 getData ()
 
 dataExists ()
 
 setPrefix ($a_prefix)
 
 getPrefix ()
 
 addFilterItem ($a_input_item, $a_optional=false)
 Add filter item. More...
 
 addFilterItemByMetaType ($id, $type=self::FILTER_TEXT, $a_optional=false, $caption=NULL)
 Add filter by standard type. More...
 
 getFilterItems ($a_optionals=false)
 Get filter items. More...
 
 getFilterItemByPostVar ($a_post_var)
 
 setFilterCols ($a_val)
 Set filter columns. More...
 
 getFilterCols ()
 Get filter columns. More...
 
 setDisableFilterHiding ($a_val=true)
 Set disable filter hiding. More...
 
 getDisableFilterHiding ()
 Get disable filter hiding. More...
 
 isFilterSelected ($a_col)
 Is given filter selected? More...
 
 getSelectedFilters ()
 Get selected filters. More...
 
 determineSelectedFilters ()
 Determine selected filters. More...
 
 setCustomPreviousNext ($a_prev_link, $a_next_link)
 Set custom previous/next links. More...
 
 setFormAction ($a_form_action, $a_multipart=false)
 Set Form action parameter. More...
 
 getFormAction ()
 Get Form action parameter. More...
 
 setFormName ($a_formname="")
 Set Form name. More...
 
 getFormName ()
 Get Form name. More...
 
 setId ($a_val)
 Set id. More...
 
 getId ()
 Get element id. More...
 
 setDisplayAsBlock ($a_val)
 Set display as block. More...
 
 getDisplayAsBlock ()
 Get display as block. More...
 
 getSelectAllCheckbox ()
 Get the name of the checkbox that should be toggled with a select all button. More...
 
 setSelectAllCheckbox ($a_select_all_checkbox)
 Set the name of the checkbox that should be toggled with a select all button. More...
 
 setExternalSorting ($a_val)
 Set external sorting. More...
 
 getExternalSorting ()
 Get external sorting. More...
 
 setFilterCommand ($a_val, $a_caption=null)
 Set filter command. More...
 
 getFilterCommand ()
 Get filter command. More...
 
 setResetCommand ($a_val, $a_caption=null)
 Set reset filter command. More...
 
 getResetCommand ()
 Get reset filter command. More...
 
 setExternalSegmentation ($a_val)
 Set external segmentation. More...
 
 getExternalSegmentation ()
 Get external segmentation. More...
 
 setRowTemplate ($a_template, $a_template_dir="")
 Set row template. More...
 
 setDefaultOrderField ($a_defaultorderfield)
 Set Default order field. More...
 
 getDefaultOrderField ()
 Get Default order field. More...
 
 setDefaultOrderDirection ($a_defaultorderdirection)
 Set Default order direction. More...
 
 getDefaultOrderDirection ()
 Get Default order direction. More...
 
 setDefaultFilterVisiblity ($a_status)
 Set default filter visiblity. More...
 
 getDefaultFilterVisibility ()
 Get default filter visibility. More...
 
 clearCommandButtons ()
 
 addCommandButton ($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
 Add Command button. More...
 
 addCommandButtonInstance (ilButtonBase $a_button)
 Add Command button instance. More...
 
 addSelectionButton ($a_sel_var, $a_options, $a_cmd, $a_text, $a_default_selection='')
 Add Selection List + Command button. More...
 
 addMultiItemSelectionButton ($a_sel_var, $a_options, $a_cmd, $a_text, $a_default_selection='')
 Add Selection List + Command button for selected items. More...
 
 setCloseCommand ($a_link)
 Add command for closing table. More...
 
 addMultiCommand ($a_cmd, $a_text)
 Add Command button. More...
 
 addHiddenInput ($a_name, $a_value)
 Add Hidden Input field. More...
 
 addHeaderCommand ($a_href, $a_text, $a_target="", $a_img="")
 Add Header Command (Link) (Image needed for now) More...
 
 setTopCommands ($a_val)
 Set top commands (display command buttons on top of table, too) More...
 
 getTopCommands ()
 Get top commands (display command buttons on top of table, too) More...
 
 addColumn ($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
 Add a column to the header. More...
 
 getNavParameter ()
 
 setOrderLink ($sort_field, $order_dir)
 
 fillHeader ()
 
 determineOffsetAndOrder ($a_omit_offset=false)
 Determine offset and order. More...
 
 storeNavParameter ()
 
 getHTML ()
 Get HTML. More...
 
 numericOrdering ($a_field)
 Should this field be sorted numeric? More...
 
 render ()
 render table public More...
 
 writeFilterToSession ()
 Write filter values to session. More...
 
 resetFilter ()
 Reset filter. More...
 
 fillFooter ()
 Fill footer row. More...
 
 getLinkbar ($a_num)
 Get previous/next linkbar. More...
 
 fillHiddenRow ()
 
 fillActionRow ()
 Fill Action Row. More...
 
 setHeaderHTML ($html)
 set header html More...
 
 storeProperty ($type, $value)
 Store table property. More...
 
 loadProperty ($type)
 Load table property. More...
 
 getCurrentState ()
 get current settings for order, limit, columns and filter More...
 
 setContext ($id)
 Set context. More...
 
 getContext ()
 Get context. More...
 
 setShowRowsSelector ($a_value)
 Toggle rows-per-page selector. More...
 
 getShowRowsSelector ()
 Get rows-per-page selector state. More...
 
 setShowTemplates ($a_value)
 Toggle templates. More...
 
 getShowTemplates ()
 Get template state. More...
 
 restoreTemplate ($a_name)
 Restore state from template. More...
 
 saveTemplate ($a_name)
 Save current state as template. More...
 
 deleteTemplate ($a_name)
 Delete template. More...
 
 getLimit ()
 Get limit. More...
 
 getOffset ()
 Get offset. More...
 
 setExportFormats (array $formats)
 Set available export formats. More...
 
 setPrintMode ($a_value=false)
 Toogle print mode. More...
 
 getPrintMode ()
 Get print mode. More...
 
 getExportMode ()
 Was export activated? More...
 
 exportData ($format, $send=false)
 Export and optionally send current table data. More...
 
 setEnableAllCommand ($a_value)
 Enable actions for all entries in current result. More...
 
 setRowSelectorLabel ($row_selector_label)
 
 getRowSelectorLabel ()
 
 setPreventDoubleSubmission ($a_val)
 Set prevent double submission. More...
 
 getPreventDoubleSubmission ()
 Get prevent double submission. More...
 
 setLimit ($a_limit=0, $a_default_limit=0)
 
- Public Member Functions inherited from ilTableGUI
 __construct ($a_data=0, $a_global_tpl=true)
 Constructor. More...
 
 setTemplate ($a_tpl)
 set template public More...
 
getTemplateObject ()
 
 setData ($a_data)
 set table data public More...
 
 getData ()
 
 setTitle ($a_title, $a_icon=0, $a_icon_alt=0)
 set table title public More...
 
 setHelp ($a_help_page, $a_help_icon, $a_help_icon_alt=0)
 set table help page public More...
 
 setHeaderNames ($a_header_names)
 set table header names public More...
 
 getColumnCount ()
 Returns the column count based on the number of the header row columns public. More...
 
 setHeaderVars ($a_header_vars, $a_header_params=0)
 set table header vars public More...
 
 setColumnWidth ($a_column_width)
 set table column widths public More...
 
 setOneColumnWidth ($a_column_width, $a_column_number)
 set one table column width public More...
 
 setMaxCount ($a_max_count)
 set max. More...
 
 setLimit ($a_limit=0, $a_default_limit=0)
 set max. More...
 
 getLimit ()
 Get limit. More...
 
 setPrefix ($a_prefix)
 set prefix for sort and offset fields (if you have two or more tables on a page that you want to sort separately) public More...
 
 setOffset ($a_offset)
 set dataset offset public More...
 
 getOffset ()
 Get offset. More...
 
 setOrderColumn ($a_order_column=0, $a_default_column=0)
 set order column public More...
 
 getOrderColumn ()
 Get order column. More...
 
 setOrderDirection ($a_order_direction)
 set order direction public More...
 
 getOrderDirection ()
 Get order direction. More...
 
 setFooter ($a_style, $a_previous=0, $a_next=0)
 set order direction public More...
 
 enable ($a_module_name)
 enables particular modules of table More...
 
 disable ($a_module_name)
 diesables particular modules of table More...
 
 sortData ()
 
 render ()
 render table public More...
 
 renderHeader ()
 
 setOrderLink ($key, $order_dir)
 
 setStyle ($a_element, $a_style)
 
 getStyle ($a_element)
 
 setBase ($a_base)
 Set Base script name (deprecated, only use this for workarounds). More...
 
 getBase ()
 Get Base script name (deprecated, only use this for workarounds). More...
 
 getFormName ()
 
 setFormName ($a_name="cmd")
 
 getSelectAllCheckbox ()
 
 setSelectAllCheckbox ($a_select_all_checkbox)
 
 clearActionButtons ()
 
 addActionButton ($btn_name, $btn_value)
 

Data Fields

const MODE_BY_ASSIGNMENT = 1
 
const MODE_BY_USER = 2
 
- Data Fields inherited from ilTable2GUI
const FILTER_TEXT = 1
 
const FILTER_SELECT = 2
 
const FILTER_DATE = 3
 
const FILTER_LANGUAGE = 4
 
const FILTER_NUMBER_RANGE = 5
 
const FILTER_DATE_RANGE = 6
 
const FILTER_DURATION_RANGE = 7
 
const FILTER_DATETIME_RANGE = 8
 
const EXPORT_EXCEL = 1
 
const EXPORT_CSV = 2
 
const ACTION_ALL_LIMIT = 1000
 
- Data Fields inherited from ilTableGUI
 $title
 
 $icon
 
 $icon_alt
 
 $help_page
 
 $help_icon
 
 $help_icon_alt
 
 $header_names
 
 $header_vars
 
 $linkbar_vars
 
 $data
 
 $column_count
 
 $column_width
 
 $max_count
 
 $limit
 
 $max_limit = false
 
 $offset
 
 $order_column
 
 $order_direction
 
 $footer_style
 
 $footer_previous
 
 $footer_next
 
 $lang_support = true
 
 $global_tpl
 
 $form_name
 
 $select_all_checkbox
 
 $action_buttons
 
 $prefix
 
 $base = ""
 
 $enabled
 
 $styles
 

Protected Member Functions

 initMode ($a_item_id)
 
 parseData ()
 
 parseModeColumns ()
 
 parseColumns ()
 
 parseRow ($a_user_id, ilExAssignment $a_ass, array $a_row)
 
- Protected Member Functions inherited from ilTable2GUI
 prepareOutput ()
 Anything that must be done before HTML is generated. More...
 
 isFilterVisible ()
 Check if filter is visible: manually shown (session, db) or default value set. More...
 
 isAdvMDFilter (ilAdvancedMDRecordGUI $a_gui, $a_element)
 Check if filter element is based on adv md. More...
 
 fillRow ($a_set)
 Standard Version of Fill Row. More...
 
 getFilterValue (ilFormPropertyGUI $a_item)
 Get current filter value. More...
 
 SetFilterValue (ilFormPropertyGUI $a_item, $a_value)
 Set current filter value. More...
 
 fillMetaExcel (ilExcel $a_excel, &$a_row)
 Add meta information to excel export. More...
 
 fillHeaderExcel (ilExcel $a_excel, &$a_row)
 Excel Version of Fill Header. More...
 
 fillRowExcel (ilExcel $a_excel, &$a_row, $a_set)
 Excel Version of Fill Row. More...
 
 fillMetaCSV ($a_csv)
 Add meta information to csv export. More...
 
 fillHeaderCSV ($a_csv)
 CSV Version of Fill Header. More...
 
 fillRowCSV ($a_csv, $a_set)
 CSV Version of Fill Row. More...
 

Protected Attributes

 $exc
 
 $mode
 
 $filter
 
 $comment_modals = array()
 
 $cols_mandatory = array("name", "status")
 
 $cols_default = array("image", "login", "submission_date", "idl")
 
 $cols_order
 
- Protected Attributes inherited from ilTable2GUI
 $close_command = ""
 
 $top_anchor = "il_table_top"
 
 $filters = array()
 
 $optional_filters = array()
 
 $filter_cmd = 'applyFilter'
 
 $reset_cmd = 'resetFilter'
 
 $filter_cols = 5
 
 $ext_sort = false
 
 $ext_seg = false
 
 $context = ""
 
 $mi_sel_buttons = null
 
 $disable_filter_hiding = false
 
 $selected_filter = false
 
 $top_commands = true
 
 $selectable_columns = array()
 
 $selected_column = array()
 
 $show_templates = false
 
 $show_rows_selector = true
 
 $rows_selector_off = false
 
 $nav_determined = false
 
 $limit_determined = false
 
 $filters_determined = false
 
 $columns_determined = false
 
 $open_form_tag = true
 
 $close_form_tag = true
 
 $export_formats
 
 $export_mode
 
 $print_mode
 
 $enable_command_for_all
 
 $restore_filter
 
 $restore_filter_values
 
 $default_filter_visibility = false
 
 $sortable_fields = array()
 
 $prevent_double_submission = true
 
 $row_selector_label
 

Additional Inherited Members

- Static Public Member Functions inherited from ilTable2GUI
static getAllCommandLimit ()
 Get maximum number of entries to enable actions for all. More...
 

Detailed Description

Exercise submission table.

Author
Jörg Lützenkirchen luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 17 of file class.ilExerciseSubmissionTableGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilExerciseSubmissionTableGUI::__construct (   $a_parent_obj,
  $a_parent_cmd,
ilObjExercise  $a_exc,
  $a_item_id 
)

Constructor.

Parameters
string$a_parent_obj
string$a_parent_cmd
ilObjExercise$a_exc
int$a_item_id
Returns
self

Definition at line 43 of file class.ilExerciseSubmissionTableGUI.php.

References $columns, $ilCtrl, ilTable2GUI\addColumn(), ilTable2GUI\addMultiCommand(), ilTable2GUI\getParentCmd(), ilTable2GUI\getSelectedColumns(), initFilter(), initMode(), parseColumns(), parseData(), ilTable2GUI\setData(), ilTable2GUI\setDefaultOrderDirection(), ilTable2GUI\setDefaultOrderField(), ilTable2GUI\setFilterCommand(), ilTable2GUI\setFormAction(), ilTable2GUI\setFormName(), ilTable2GUI\setResetCommand(), ilTable2GUI\setRowTemplate(), and ilTable2GUI\setShowTemplates().

44  {
45  global $ilCtrl;
46 
47  $this->exc = $a_exc;
48 
49  $this->initMode($a_item_id);
50 
51  parent::__construct($a_parent_obj, $a_parent_cmd);
52 
53  $this->setShowTemplates(true);
54 
55  $this->setFormAction($ilCtrl->getFormAction($a_parent_obj));
56  $this->setRowTemplate("tpl.exc_members_row.html", "Modules/Exercise");
57 
58  $this->setDefaultOrderField("name");
59  $this->setDefaultOrderDirection("asc");
60 
61 
62  // columns
63 
64  $this->addColumn("", "", "1", true);
65 
66  $selected = $this->getSelectedColumns();
67  $columns = $this->parseColumns();
68  foreach($this->cols_order as $id)
69  {
70  if(in_array($id, $this->cols_mandatory) ||
71  in_array($id, $selected))
72  {
73  if(array_key_exists($id, $columns))
74  {
75  $col = $columns[$id];
76  $this->addColumn($col[0], $col[1]);
77  }
78  }
79  }
80 
81  $this->addColumn($this->lng->txt("actions"));
82 
83 
84  // multi actions
85 
86  $this->addMultiCommand("saveStatusSelected", $this->lng->txt("exc_save_selected"));
87 
88  $this->setFormName("ilExcIDlForm");
89 
90  // see 0021530 and parseRow here with similar action per user
91  if ($this->mode == self::MODE_BY_ASSIGNMENT &&
92  $this->ass->hasActiveIDl() &&
93  !$this->ass->hasReadOnlyIDl())
94  {
95  $this->addMultiCommand("setIndividualDeadline", $this->lng->txt("exc_individual_deadline_action"));
96  }
97 
98  if($this->exc->hasTutorFeedbackMail() &&
99  $this->mode == self::MODE_BY_ASSIGNMENT)
100  {
101  $this->addMultiCommand("redirectFeedbackMail", $this->lng->txt("exc_tbl_action_feedback_mail"));
102  }
103 
104  $this->addMultiCommand("sendMembers", $this->lng->txt("exc_send_assignment"));
105 
106  if($this->mode == self::MODE_BY_ASSIGNMENT &&
107  $this->ass &&
108  $this->ass->hasTeam())
109  {
110  $this->addMultiCommand("createTeams", $this->lng->txt("exc_team_multi_create"));
111  $this->addMultiCommand("dissolveTeams", $this->lng->txt("exc_team_multi_dissolve"));
112  }
113 
114  if($this->mode == self::MODE_BY_ASSIGNMENT)
115  {
116  $this->addMultiCommand("confirmDeassignMembers", $this->lng->txt("exc_deassign_members"));
117  }
118 
119  $this->setFilterCommand($this->getParentCmd()."Apply");
120  $this->setResetCommand($this->getParentCmd()."Reset");
121 
122  $this->initFilter();
123  $this->setData($this->parseData());
124 
125  include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
126  }
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setShowTemplates($a_value)
Toggle templates.
getParentCmd()
Get parent command.
global $ilCtrl
Definition: ilias.php:18
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setResetCommand($a_val, $a_caption=null)
Set reset filter command.
addMultiCommand($a_cmd, $a_text)
Add Command button.
getSelectedColumns()
Get selected columns.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setFormName($a_formname="")
Set Form name.
if(! $in) $columns
Definition: Utf8Test.php:45
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setFilterCommand($a_val, $a_caption=null)
Set filter command.
+ Here is the call graph for this function:

Member Function Documentation

◆ getSelectableColumns()

ilExerciseSubmissionTableGUI::getSelectableColumns ( )

Definition at line 163 of file class.ilExerciseSubmissionTableGUI.php.

References $columns, array, and parseColumns().

164  {
165  $cols = array();
166 
167  $columns = $this->parseColumns();
168  foreach($this->cols_order as $id)
169  {
170  if(in_array($id, $this->cols_mandatory))
171  {
172  continue;
173  }
174 
175  if(array_key_exists($id, $columns))
176  {
177  $col = $columns[$id];
178 
179  $cols[$id] = array(
180  "txt" => $col[0],
181  "default" => in_array($id, $this->cols_default)
182  );
183  }
184  }
185 
186  return $cols;
187  }
Create styles array
The data for the language used.
if(! $in) $columns
Definition: Utf8Test.php:45
+ Here is the call graph for this function:

◆ initFilter()

ilExerciseSubmissionTableGUI::initFilter ( )

Definition at line 128 of file class.ilExerciseSubmissionTableGUI.php.

References $options, ilTable2GUI\addFilterItemByMetaType(), array, initMode(), parseData(), and parseModeColumns().

Referenced by __construct().

129  {
130  if($this->mode == self::MODE_BY_ASSIGNMENT)
131  {
132  $item = $this->addFilterItemByMetaType("flt_name", self::FILTER_TEXT, false, $this->lng->txt("name")." / ".$this->lng->txt("login"));
133  $this->filter["name"] = $item->getValue();
134  }
135 
136  $this->lng->loadLanguageModule("search");
137  $options = array(
138  "" => $this->lng->txt("search_any"),
139  "notgraded" => $this->lng->txt("exc_notgraded"),
140  "passed" => $this->lng->txt("exc_passed"),
141  "failed" => $this->lng->txt("exc_failed")
142  );
143  $item = $this->addFilterItemByMetaType("flt_status", self::FILTER_SELECT, false, $this->lng->txt("exc_tbl_status"));
144  $item->setOptions($options);
145  $this->filter["status"] = $item->getValue();
146 
147  $options = array(
148  "" => $this->lng->txt("search_any"),
149  "y" => $this->lng->txt("exc_tbl_filter_has_submission"),
150  "n" => $this->lng->txt("exc_tbl_filter_has_no_submission")
151  );
152  $item = $this->addFilterItemByMetaType("flt_subm", self::FILTER_SELECT, false, $this->lng->txt("exc_tbl_filter_submission"));
153  $item->setOptions($options);
154  $this->filter["subm"] = $item->getValue();
155  }
addFilterItemByMetaType($id, $type=self::FILTER_TEXT, $a_optional=false, $caption=NULL)
Add filter by standard type.
if(!is_array($argv)) $options
Create styles array
The data for the language used.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initMode()

ilExerciseSubmissionTableGUI::initMode (   $a_item_id)
abstractprotected

Referenced by __construct(), and initFilter().

+ Here is the caller graph for this function:

◆ parseColumns()

ilExerciseSubmissionTableGUI::parseColumns ( )
protected

Definition at line 189 of file class.ilExerciseSubmissionTableGUI.php.

References array, and parseModeColumns().

Referenced by __construct(), and getSelectableColumns().

190  {
191  $cols = $this->parseModeColumns();
192 
193  $cols["submission"] = array($this->lng->txt("exc_tbl_submission_date"), "submission");
194 
195  $cols["status"] = array($this->lng->txt("exc_tbl_status"), "status");
196  $cols["mark"] = array($this->lng->txt("exc_tbl_mark"), "mark");
197  $cols["status_time"] = array($this->lng->txt("exc_tbl_status_time"), "status_time");
198 
199  $cols["sent_time"] = array($this->lng->txt("exc_tbl_sent_time"), "sent_time");
200 
201  if($this->exc->hasTutorFeedbackText() ||
202  $this->exc->hasTutorFeedbackMail() ||
203  $this->exc->hasTutorFeedbackFile())
204  {
205  $cols["feedback_time"] = array($this->lng->txt("exc_tbl_feedback_time"), "feedback_time");
206  }
207 
208  if($this->exc->hasTutorFeedbackText())
209  {
210  $cols["comment"] = array($this->lng->txt("exc_tbl_comment"), "comment");
211  }
212 
213  $cols["notice"] = array($this->lng->txt("exc_tbl_notice"), "note");
214 
215  return $cols;
216  }
Create styles array
The data for the language used.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ parseData()

ilExerciseSubmissionTableGUI::parseData ( )
abstractprotected

Referenced by __construct(), and initFilter().

+ Here is the caller graph for this function:

◆ parseModeColumns()

ilExerciseSubmissionTableGUI::parseModeColumns ( )
abstractprotected

Referenced by initFilter(), and parseColumns().

+ Here is the caller graph for this function:

◆ parseRow()

ilExerciseSubmissionTableGUI::parseRow (   $a_user_id,
ilExAssignment  $a_ass,
array  $a_row 
)
protected

Definition at line 218 of file class.ilExerciseSubmissionTableGUI.php.

References $counter, $file, $ilCtrl, $info, $url, ilExAssignment\afterDeadlineStrict(), ilGlyphGUI\CLOSE, ilDatePresentation\formatDate(), ilGlyphGUI\get(), ilExAssignment\getId(), ilModalGUI\getInstance(), ilObjectFactory\getInstanceByObjId(), ilTable2GUI\getParentCmd(), ilTable2GUI\getParentObject(), ilTable2GUI\getSelectedColumns(), ilExAssignmentTeam\getTeamId(), ilExAssignment\hasActiveIDl(), ilExAssignment\hasReadOnlyIDl(), ilExAssignment\hasTeam(), IL_CAL_DATETIME, IL_CAL_UNIX, ilUtil\prepareFormOutput(), and ilFormPropertyGUI\setInfo().

Referenced by ilExParticipantTableGUI\fillRow(), and ilExerciseMemberTableGUI\fillRow().

219  {
220  global $ilCtrl, $ilAccess;
221 
222  $has_no_team_yet = ($a_ass->hasTeam() &&
223  !ilExAssignmentTeam::getTeamId($a_ass->getId(), $a_user_id));
224 
225 
226  // static columns
227 
228  if($this->mode == self::MODE_BY_ASSIGNMENT)
229  {
230  if(!$a_ass->hasTeam())
231  {
232  $this->tpl->setVariable("VAL_NAME", $a_row["name"]);
233 
234  // #18327
235  if(!$ilAccess->checkAccessOfUser($a_user_id, "read","", $this->exc->getRefId()) &&
236  is_array($info = $ilAccess->getInfo()))
237  {
238  $this->tpl->setCurrentBlock('access_warning');
239  $this->tpl->setVariable('PARENT_ACCESS', $info[0]["text"]);
240  $this->tpl->parseCurrentBlock();
241  }
242  }
243  else
244  {
245  asort($a_row["team"]);
246  foreach($a_row["team"] as $team_member_id => $team_member_name) // #10749
247  {
248  if(sizeof($a_row["team"]) > 1)
249  {
250  $ilCtrl->setParameterByClass("ilExSubmissionTeamGUI", "id", $team_member_id);
251  $url = $ilCtrl->getLinkTargetByClass("ilExSubmissionTeamGUI", "confirmRemoveTeamMember");
252  $ilCtrl->setParameterByClass("ilExSubmissionTeamGUI", "id", "");
253 
254  include_once "Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php";
255 
256  $this->tpl->setCurrentBlock("team_member_removal_bl");
257  $this->tpl->setVariable("URL_TEAM_MEMBER_REMOVAL", $url);
258  $this->tpl->setVariable("TXT_TEAM_MEMBER_REMOVAL",
259  ilGlyphGUI::get(ilGlyphGUI::CLOSE, $this->lng->txt("remove")));
260  $this->tpl->parseCurrentBlock();
261  }
262 
263  // #18327
264  if(!$ilAccess->checkAccessOfUser($team_member_id, "read","", $this->exc->getRefId()) &&
265  is_array($info = $ilAccess->getInfo()))
266  {
267  $this->tpl->setCurrentBlock('team_access_warning');
268  $this->tpl->setVariable('TEAM_PARENT_ACCESS', $info[0]["text"]);
269  $this->tpl->parseCurrentBlock();
270  }
271 
272  $this->tpl->setCurrentBlock("team_member");
273  $this->tpl->setVariable("TXT_MEMBER_NAME", $team_member_name);
274  $this->tpl->parseCurrentBlock();
275  }
276 
277  if($has_no_team_yet)
278  {
279  // #11957
280  $this->tpl->setCurrentBlock("team_info");
281  $this->tpl->setVariable("TXT_TEAM_INFO", $this->lng->txt("exc_no_team_yet"));
282  }
283  }
284  }
285  else
286  {
287  $this->tpl->setVariable("VAL_NAME", $a_row["name"]);
288  }
289 
290  // do not grade or mark if no team yet
291  if(!$has_no_team_yet)
292  {
293  // status
294  $this->tpl->setVariable("SEL_".strtoupper($a_row["status"]), ' selected="selected" ');
295  $this->tpl->setVariable("TXT_NOTGRADED", $this->lng->txt("exc_notgraded"));
296  $this->tpl->setVariable("TXT_PASSED", $this->lng->txt("exc_passed"));
297  $this->tpl->setVariable("TXT_FAILED", $this->lng->txt("exc_failed"));
298  }
299  else
300  {
301  $nt_colspan = in_array("mark", $this->getSelectedColumns())
302  ? 2
303  : 1;
304 
305  $this->tpl->setVariable("NO_TEAM_COLSPAN", $nt_colspan);
306  }
307 
308 
309  // comment modal
310 
311  if($this->exc->hasTutorFeedbackText())
312  {
313  $comment_id = "excasscomm_".$a_ass->getId()."_".$a_user_id;
314 
315  $modal = ilModalGUI::getInstance();
316  $modal->setId($comment_id);
317  $modal->setHeading($this->lng->txt("exc_tbl_action_feedback_text"));
318 
319  $lcomment_form = new ilPropertyFormGUI();
320  $lcomment_form->setId($comment_id);
321  $lcomment_form->setPreventDoubleSubmission(false);
322 
323  $lcomment = new ilTextAreaInputGUI($this->lng->txt("exc_comment_for_learner"), "lcomment_".$a_ass->getId()."_".$a_user_id);
324  $lcomment->setInfo($this->lng->txt("exc_comment_for_learner_info"));
325  $lcomment->setValue($a_row["comment"]);
326  $lcomment->setCols(45);
327  $lcomment->setRows(10);
328  $lcomment_form->addItem($lcomment);
329 
330  $lcomment_form->addCommandButton("save", $this->lng->txt("save"));
331  // $lcomment_form->addCommandButton("cancel", $lng->txt("cancel"));
332 
333  $modal->setBody($lcomment_form->getHTML());
334 
335  $this->comment_modals[] = $modal->getHTML();
336  unset($modal);
337  }
338 
339 
340  // selectable columns
341 
342  foreach($this->getSelectedColumns() as $col)
343  {
344  switch($col)
345  {
346  case "image":
347  if(!$a_ass->hasTeam())
348  {
349  include_once "./Services/Object/classes/class.ilObjectFactory.php";
350  if($usr_obj = ilObjectFactory::getInstanceByObjId($a_user_id, false))
351  {
352  $this->tpl->setVariable("VAL_IMAGE", $usr_obj->getPersonalPicturePath("xxsmall"));
353  $this->tpl->setVariable("TXT_IMAGE", $this->lng->txt("personal_picture"));
354  }
355  }
356  break;
357 
358  case "team_members":
359  if($a_ass->hasTeam())
360  {
361  if(!sizeof($a_row["team"]))
362  {
363  $this->tpl->setVariable("VAL_TEAM_MEMBER", $this->lng->txt("exc_no_team_yet"));
364  }
365  else
366  {
367  foreach($a_row["team"] as $name)
368  {
369  $this->tpl->setCurrentBlock("team_member_bl");
370  $this->tpl->setVariable("VAL_TEAM_MEMBER", $name);
371  $this->tpl->parseCurrentBlock();
372  }
373  }
374  }
375  else
376  {
377  $this->tpl->setVariable("VAL_TEAM_MEMBER", " ");
378  }
379  break;
380 
381  case "idl":
382  $this->tpl->setVariable("VAL_".strtoupper($col),
383  $a_row[$col]
385  : " ");
386  break;
387 
388 
389  case "mark":
390  if($has_no_team_yet)
391  {
392  continue;
393  }
394  // fallthrough
395 
396  case "notice":
397  // see #22076
398  $this->tpl->setVariable("VAL_".strtoupper($col), ilUtil::prepareFormOutput(trim($a_row[$col])));
399  break;
400 
401  case "comment":
402  // for js-updating
403  $this->tpl->setVariable("LCOMMENT_ID", $comment_id."_snip");
404 
405  // see #22076
406  $this->tpl->setVariable("VAL_".strtoupper($col), (trim($a_row[$col]) !== "")
407  ? nl2br(trim($a_row[$col]))
408  : " ");
409  break;
410 
411  case "submission":
412  if($a_row["submission_obj"])
413  {
414  foreach($a_row["submission_obj"]->getFiles() as $file)
415  {
416  if($file["late"])
417  {
418  $this->tpl->setVariable("TXT_LATE", $this->lng->txt("exc_late_submission"));
419  break;
420  }
421  }
422  }
423  // fallthrough
424 
425  case "feedback_time":
426  case "status_time":
427  case "sent_time":
428  $this->tpl->setVariable("VAL_".strtoupper($col),
429  $a_row[$col]
431  : " ");
432  break;
433 
434  case "login":
435  if($a_ass->hasTeam())
436  {
437  continue;
438  }
439  // fallthrough
440 
441  default:
442  $this->tpl->setVariable("VAL_".strtoupper($col), $a_row[$col]
443  ? trim($a_row[$col])
444  : " ");
445  break;
446  }
447  }
448 
449 
450  // actions
451 
452  include_once "Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php";
453  $actions = new ilAdvancedSelectionListGUI();
454  $actions->setId($a_ass->getId()."_".$a_user_id);
455  $actions->setListTitle($this->lng->txt("actions"));
456 
457  $file_info = $a_row["submission_obj"]->getDownloadedFilesInfoForTableGUIS($this->getParentObject(), $this->getParentCmd());
458 
459  $counter = $file_info["files"]["count"];
460  if($counter)
461  {
462  if($file_info["files"]["download_url"])
463  {
464  $actions->addItem(
465  $file_info["files"]["download_txt"]." (".$counter.")",
466  "",
467  $file_info["files"]["download_url"]
468  );
469  }
470 
471  if($file_info["files"]["download_new_url"])
472  {
473  $actions->addItem(
474  $file_info["files"]["download_new_txt"],
475  "",
476  $file_info["files"]["download_new_url"]
477  );
478  }
479  }
480 
481  if(!$has_no_team_yet &&
482  $a_ass->hasActiveIDl() &&
483  !$a_ass->hasReadOnlyIDl())
484  {
485  $idl_id = $a_ass->hasTeam()
486  ? "t".ilExAssignmentTeam::getTeamId($a_ass->getId(), $a_user_id)
487  : $a_user_id;
488 
489  $this->tpl->setVariable("VAL_IDL_ID", $a_ass->getId()."_".$idl_id);
490 
491  $actions->addItem(
492  $this->lng->txt("exc_individual_deadline_action"),
493  "",
494  "#",
495  "",
496  "",
497  "",
498  "",
499  false,
500  "il.ExcIDl.trigger('".$idl_id."',".$a_ass->getId().")"
501  );
502  }
503 
504  // feedback mail
505  if($this->exc->hasTutorFeedbackMail())
506  {
507  $actions->addItem(
508  $this->lng->txt("exc_tbl_action_feedback_mail"),
509  "",
510  $ilCtrl->getLinkTarget($this->parent_obj, "redirectFeedbackMail")
511  );
512  }
513 
514  // feedback files
515  if($this->exc->hasTutorFeedbackFile())
516  {
517  include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
518  $storage = new ilFSStorageExercise($this->exc->getId(), $a_ass->getId());
519  $counter = $storage->countFeedbackFiles($a_row["submission_obj"]->getFeedbackId());
520  $counter = $counter
521  ? " (".$counter.")"
522  : "";
523  $actions->addItem(
524  $this->lng->txt("exc_tbl_action_feedback_file").$counter,
525  "",
526  $ilCtrl->getLinkTargetByClass("ilfilesystemgui", "listFiles")
527  );
528  }
529 
530  // comment (modal - see above)
531  if($this->exc->hasTutorFeedbackText())
532  {
533  $actions->addItem(
534  $this->lng->txt("exc_tbl_action_feedback_text"),
535  "",
536  "#",
537  "",
538  "",
539  "",
540  "",
541  false,
542  "il.ExcManagement.showComment('".$comment_id."')"
543  );
544  }
545 
546  // peer review
547  if(($peer_review = $a_row["submission_obj"]->getPeerReview()) && $a_ass->afterDeadlineStrict()) // see #22246
548  {
549  $counter = $peer_review->countGivenFeedback(true, $a_user_id);
550  $counter = $counter
551  ? " (".$counter.")"
552  : "";
553  $actions->addItem(
554  $this->lng->txt("exc_tbl_action_peer_review_given").$counter,
555  "",
556  $ilCtrl->getLinkTargetByClass("ilexpeerreviewgui", "showGivenPeerReview")
557  );
558 
559  $counter = sizeof($peer_review->getPeerReviewsByPeerId($a_user_id, true));
560  $counter = $counter
561  ? " (".$counter.")"
562  : "";
563  $actions->addItem(
564  $this->lng->txt("exc_tbl_action_peer_review_received").$counter,
565  "",
566  $ilCtrl->getLinkTargetByClass("ilexpeerreviewgui", "showReceivedPeerReview")
567  );
568  }
569 
570  // team
571  if($has_no_team_yet)
572  {
573  $actions->addItem(
574  $this->lng->txt("exc_create_team"),
575  "",
576  $ilCtrl->getLinkTargetByClass("ilExSubmissionTeamGUI", "createSingleMemberTeam")
577  );
578  }
579  else if($a_ass->hasTeam())
580  {
581  $actions->addItem(
582  $this->lng->txt("exc_tbl_action_team_log"),
583  "",
584  $ilCtrl->getLinkTargetByClass("ilExSubmissionTeamGUI", "showTeamLog")
585  );
586  }
587 
588  $this->tpl->setVariable("ACTIONS", $actions->getHTML());
589  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
const IL_CAL_DATETIME
This class represents a property form user interface.
static getTeamId($a_assignment_id, $a_user_id, $a_create_on_demand=false)
Get team id for member id.
getId()
Get assignment id.
static get($a_glyph, $a_text="")
Get glyph html.
$url
Definition: shib_logout.php:72
const IL_CAL_UNIX
getParentCmd()
Get parent command.
getParentObject()
Get parent object.
global $ilCtrl
Definition: ilias.php:18
setInfo($a_info)
Set Information Text.
$counter
$info
Definition: example_052.php:80
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
getSelectedColumns()
Get selected columns.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
User interface class for advanced drop-down selection lists.
afterDeadlineStrict($a_include_personal=true)
static getInstance()
Get instance.
This class represents a text area property in a property form.
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ render()

ilExerciseSubmissionTableGUI::render ( )

Definition at line 591 of file class.ilExerciseSubmissionTableGUI.php.

References $ilCtrl, $tpl, $url, and ilTable2GUI\getParentObject().

592  {
593  global $ilCtrl, $tpl;
594 
595  $url = $ilCtrl->getLinkTarget($this->getParentObject(), "saveCommentForLearners", "", true, false);
596 
597  $tpl->addJavaScript("Modules/Exercise/js/ilExcManagement.js");
598  $tpl->addOnLoadCode('il.ExcManagement.init("'.$url.'");');
599 
600  return parent::render().
601  implode("\n", $this->comment_modals);
602  }
$url
Definition: shib_logout.php:72
getParentObject()
Get parent object.
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
+ Here is the call graph for this function:

Field Documentation

◆ $cols_default

ilExerciseSubmissionTableGUI::$cols_default = array("image", "login", "submission_date", "idl")
protected

Definition at line 29 of file class.ilExerciseSubmissionTableGUI.php.

◆ $cols_mandatory

ilExerciseSubmissionTableGUI::$cols_mandatory = array("name", "status")
protected

Definition at line 28 of file class.ilExerciseSubmissionTableGUI.php.

◆ $cols_order

ilExerciseSubmissionTableGUI::$cols_order
protected
Initial value:
= array("image", "name", "login", "team_members",
"sent_time", "submission", "idl", "status", "mark", "status_time",
"feedback_time", "comment", "notice")

Definition at line 30 of file class.ilExerciseSubmissionTableGUI.php.

◆ $comment_modals

ilExerciseSubmissionTableGUI::$comment_modals = array()
protected

Definition at line 22 of file class.ilExerciseSubmissionTableGUI.php.

◆ $exc

ilExerciseSubmissionTableGUI::$exc
protected

Definition at line 19 of file class.ilExerciseSubmissionTableGUI.php.

◆ $filter

ilExerciseSubmissionTableGUI::$filter
protected

Definition at line 21 of file class.ilExerciseSubmissionTableGUI.php.

◆ $mode

ilExerciseSubmissionTableGUI::$mode
protected

Definition at line 20 of file class.ilExerciseSubmissionTableGUI.php.

◆ MODE_BY_ASSIGNMENT

const ilExerciseSubmissionTableGUI::MODE_BY_ASSIGNMENT = 1

Definition at line 24 of file class.ilExerciseSubmissionTableGUI.php.

◆ MODE_BY_USER

const ilExerciseSubmissionTableGUI::MODE_BY_USER = 2

Definition at line 25 of file class.ilExerciseSubmissionTableGUI.php.


The documentation for this class was generated from the following file: