ILIAS  trunk Revision v12.0_alpha-1221-g4e438232683
ilLTIConsumerGradeSynchronizationTableGUI Class Reference
+ Inheritance diagram for ilLTIConsumerGradeSynchronizationTableGUI:
+ Collaboration diagram for ilLTIConsumerGradeSynchronizationTableGUI:

Public Member Functions

 __construct (bool $isMultiActorReport)
 
 getRows (DataRowBuilder $row_builder, array $visible_column_ids, Range $range, Order $order, mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
 
 getTotalRowCount (mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
 Mainly for the purpose of pagination-support, it is important to know about the total number of records available. More...
 
 setRecords (array $records)
 
 getHTML ()
 
 getRows (DataRowBuilder $row_builder, array $visible_column_ids, Range $range, Order $order, mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
 This is called by the table to retrieve rows; map data-records to rows using the $row_builder e.g. More...
 
 getTotalRowCount (mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
 Mainly for the purpose of pagination-support, it is important to know about the total number of records available. More...
 

Protected Member Functions

 applyOrdering (array $records, Order $order, ?Range $range=null)
 

Protected Attributes

ilLanguage $lng
 
Factory $ui_factory
 
ILIAS UI Renderer $ui_renderer
 
 $request
 
bool $isMultiActorReport
 

Private Member Functions

 getColumns ()
 

Private Attributes

array $records = []
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilLTIConsumerGradeSynchronizationTableGUI::__construct ( bool  $isMultiActorReport)

Definition at line 44 of file class.ilLTIConsumerGradeSynchronizationTableGUI.php.

45 {
46 global $DIC;
47
48 $this->isMultiActorReport = $isMultiActorReport;
49
50 $this->lng = $DIC->language();
51 $this->ui_factory = $DIC->ui()->factory();
52 $this->ui_renderer = $DIC->ui()->renderer();
53 $this->request = $DIC->http()->request();
54
55 }
global $DIC
Definition: shib_login.php:26

References $DIC, $isMultiActorReport, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

Member Function Documentation

◆ applyOrdering()

ilLTIConsumerGradeSynchronizationTableGUI::applyOrdering ( array  $records,
Order  $order,
?Range  $range = null 
)
protected

Definition at line 94 of file class.ilLTIConsumerGradeSynchronizationTableGUI.php.

94 : array
95 {
96 [$order_field, $order_direction] = $order->join(
97 [],
98 fn($ret, $key, $value) => [$key, $value]
99 );
100
101 usort($records, static function (array $left, array $right) use ($order_field): int {
102 $left_val = $left[$order_field] ?? '';
103 $right_val = $right[$order_field] ?? '';
104
105 if ($left_val instanceof DateTimeImmutable) {
106 $left_val = $left_val->getTimestamp();
107 }
108 if ($right_val instanceof DateTimeImmutable) {
109 $right_val = $right_val->getTimestamp();
110 }
111
112 return $left_val <=> $right_val;
113 });
114
115 if ($order_direction === Order::DESC) {
116 $records = array_reverse($records);
117 }
118
119 if ($range !== null) {
120 $records = array_slice($records, $range->getStart(), $range->getLength());
121 }
122
123 return $records;
124 }
join($init, callable $fn)
Definition: Order.php:75

References ILIAS\UI\Implementation\Component\Table\$range, ILIAS\Data\Range\getLength(), ILIAS\Data\Range\getStart(), and ILIAS\Data\Order\join().

+ Here is the call graph for this function:

◆ getColumns()

ilLTIConsumerGradeSynchronizationTableGUI::getColumns ( )
private

Definition at line 137 of file class.ilLTIConsumerGradeSynchronizationTableGUI.php.

137 : array
138 {
139 global $DIC;
140 $df = new \ILIAS\Data\Factory();
141
142
143 return [
144 "lti_timestamp" => $this->ui_factory->table()->column()->date($this->lng->txt('tbl_grade_date'), $df->dateFormat()->withTime24($DIC->user()->getDateFormat())),
145 "actor" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_grade_actor')),
146 "score_given" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_grade_score')),
147 "activity_progress" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_grade_activity_progress')),
148 "grading_progress" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_grade_grading_progress')),
149 "stored" => $this->ui_factory->table()->column()->date($this->lng->txt('tbl_grade_stored'), $df->dateFormat()->withTime24($DIC->user()->getDateFormat()))
150 ];
151 }

References $DIC, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getHTML()

ilLTIConsumerGradeSynchronizationTableGUI::getHTML ( )

Definition at line 126 of file class.ilLTIConsumerGradeSynchronizationTableGUI.php.

126 : string
127 {
128 $table = $this->ui_factory->table()
129 ->data($this, "", $this->getColumns())
130 ->withOrder(new Order("lti_timestamp", Order::DESC))
131 ->withRange(new Range(0, 20))
132 ->withRequest($this->request);
133
134 return $this->ui_renderer->render($table);
135 }
Both the subject and the direction need to be specified when expressing an order.
Definition: Order.php:29
A simple class to express a naive range of whole positive numbers.
Definition: Range.php:29

◆ getRows()

ilLTIConsumerGradeSynchronizationTableGUI::getRows ( DataRowBuilder  $row_builder,
array  $visible_column_ids,
Range  $range,
Order  $order,
mixed  $additional_viewcontrol_data,
mixed  $filter_data,
mixed  $additional_parameters 
)
Exceptions
DateMalformedStringException

Implements ILIAS\UI\Component\Table\DataRetrieval.

Definition at line 60 of file class.ilLTIConsumerGradeSynchronizationTableGUI.php.

68 : Generator {
69 $records = $this->applyOrdering($this->records, $order, $range);
70 foreach ($records as $record) {
71 $record['lti_timestamp'] = new DateTimeImmutable($record['lti_timestamp']);
72 $record['score_given'] = $record['score_given'] . ' / ' . $record['score_maximum'];
73 $record['activity_progress'] = $this->lng->txt('grade_activity_progress_' . strtolower($record['activity_progress']));
74 $record['grading_progress'] = $this->lng->txt('grade_grading_progress_' . strtolower($record['grading_progress']));
75 $record['stored'] = new DateTimeImmutable($record['stored']);
76
77 yield $row_builder->buildDataRow((string) $record['id'], $record);
78 }
79 }
applyOrdering(array $records, Order $order, ?Range $range=null)
buildDataRow(string $id, array $record)

References ILIAS\UI\Component\Table\DataRowBuilder\buildDataRow(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getTotalRowCount()

ilLTIConsumerGradeSynchronizationTableGUI::getTotalRowCount ( mixed  $additional_viewcontrol_data,
mixed  $filter_data,
mixed  $additional_parameters 
)

Mainly for the purpose of pagination-support, it is important to know about the total number of records available.

Given the nature of a DataTable, which is, opposite to a PresentationTable, rather administrative than explorative, this information will increase user experience quite a bit. However, you may return null, if the call is to costly, but expect the View Control to look a little different in this case.

Make sure that potential filters or user restrictions are being applied to the count.

Implements ILIAS\UI\Component\Table\DataRetrieval.

Definition at line 81 of file class.ilLTIConsumerGradeSynchronizationTableGUI.php.

85 : ?int {
86 return count($this->records);
87 }

◆ setRecords()

ilLTIConsumerGradeSynchronizationTableGUI::setRecords ( array  $records)

Definition at line 89 of file class.ilLTIConsumerGradeSynchronizationTableGUI.php.

89 : void
90 {
91 $this->records = $records;
92 }

Field Documentation

◆ $isMultiActorReport

bool ilLTIConsumerGradeSynchronizationTableGUI::$isMultiActorReport
protected

Definition at line 41 of file class.ilLTIConsumerGradeSynchronizationTableGUI.php.

Referenced by __construct().

◆ $lng

ilLanguage ilLTIConsumerGradeSynchronizationTableGUI::$lng
protected

◆ $records

array ilLTIConsumerGradeSynchronizationTableGUI::$records = []
private

◆ $request

ilLTIConsumerGradeSynchronizationTableGUI::$request
protected

◆ $ui_factory

Factory ilLTIConsumerGradeSynchronizationTableGUI::$ui_factory
protected

◆ $ui_renderer

ILIAS UI Renderer ilLTIConsumerGradeSynchronizationTableGUI::$ui_renderer
protected

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