ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
class.ilLTIConsumerGradeSynchronizationTableGUI.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
26
36{
37 protected ilLanguage $lng;
39 protected \ILIAS\UI\Renderer $ui_renderer;
40 protected $request;
41 protected bool $isMultiActorReport;
42 private array $records = [];
43
44 public function __construct(bool $isMultiActorReport)
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 }
56
60 public function getRows(
61 DataRowBuilder $row_builder,
62 array $visible_column_ids,
64 Order $order,
65 mixed $additional_viewcontrol_data,
66 mixed $filter_data,
67 mixed $additional_parameters
68 ): Generator {
69 foreach ($this->records as $record) {
70 $record['lti_timestamp'] = new DateTimeImmutable($record['lti_timestamp']);
71 $record['score_given'] = $record['score_given'] . ' / ' . $record['score_maximum'];
72 $record['activity_progress'] = $this->lng->txt('grade_activity_progress_' . strtolower($record['activity_progress']));
73 $record['grading_progress'] = $this->lng->txt('grade_grading_progress_' . strtolower($record['grading_progress']));
74 $record['stored'] = new DateTimeImmutable($record['stored']);
75
76 yield $row_builder->buildDataRow((string) $record['id'], $record);
77 }
78 }
79
80 public function getTotalRowCount(
81 mixed $additional_viewcontrol_data,
82 mixed $filter_data,
83 mixed $additional_parameters
84 ): ?int {
85 return count($this->records);
86 }
87
88 public function setRecords(array $records): void
89 {
90 $this->records = $records;
91 }
92
93 public function getHTML(): string
94 {
95 $table = $this->ui_factory->table()
96 ->data("", $this->getColumns(), $this)
97 ->withOrder(new Order("lti_timestamp", Order::DESC))
98 ->withRequest($this->request);
99
100 return $this->ui_renderer->render($table);
101 }
102
103 private function getColumns(): array
104 {
105 global $DIC;
106 $df = new \ILIAS\Data\Factory();
107
108
109 return [
110 "lti_timestamp" => $this->ui_factory->table()->column()->date($this->lng->txt('tbl_grade_date'), $df->dateFormat()->withTime24($DIC->user()->getDateFormat())),
111 "actor" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_grade_actor')),
112 "score_given" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_grade_score')),
113 "activity_progress" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_grade_activity_progress')),
114 "grading_progress" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_grade_grading_progress')),
115 "stored" => $this->ui_factory->table()->column()->date($this->lng->txt('tbl_grade_stored'), $df->dateFormat()->withTime24($DIC->user()->getDateFormat()))
116 ];
117 }
118}
Builds a Color from either hex- or rgb values.
Definition: Factory.php:31
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
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 recor...
getRows(DataRowBuilder $row_builder, array $visible_column_ids, Range $range, Order $order, mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
language handling
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
buildDataRow(string $id, array $record)
This is how the factory for UI elements looks.
Definition: Factory.php:38
global $DIC
Definition: shib_login.php:26