19declare(strict_types=1);
53 public readonly
string $reset_command,
54 private readonly
string $auto_complete_link,
55 private readonly
UI $ui,
57 private readonly Closure $create,
66 'created' => [$this->
ui->txt(
'tbl_hist_head_acceptance_date'),
'created'],
67 'login' => [$this->
ui->txt(
'tbl_hist_head_login'),
'login'],
68 'firstname' => [$this->
ui->txt(
'tbl_hist_head_firstname'),
'firstname'],
69 'lastname' => [$this->
ui->txt(
'tbl_hist_head_lastname'),
'lastname'],
70 'document' => [$this->
ui->txt(
'tbl_hist_head_document'),
'document'],
71 'criteria' => [$this->
ui->txt(
'tbl_hist_head_criteria')],
77 $config->
setTitle($this->
ui->txt(
'acceptance_history'));
82 $filter = $config->
asFilter($this->reset_command);
83 $filter->addFilterItem($this->
userName());
84 $filter->addFilterItem($this->
time(),
true);
89 $filter = $selection->
filter();
90 $period = $filter[
'period'] ?? [];
91 unset($filter[
'period']);
92 $filter = array_filter([...$filter, ...$period]);
111 $user = ($this->create)(ilObjUser::class, $record->
creation()->user());
115 'login' => $user?->getLogin() ?? $this->
ui->txt(
'deleted'),
116 'firstname' => $user?->getFirstname() ??
'-',
117 'lastname' => $user?->getLastname() ??
'-',
118 'document' => [...$this->modal->create($record->
documentContent()), ...$this->
modal->popComponents()],
125 $ul = ($this->create)(ilTextInputGUI::class, join(
'/', array_map($this->
ui->txt(...), [
'login',
'email',
'name'])),
'query');
128 $ul->setSubmitFormOnEnter(
true);
134 class_exists(ilDateTime::class);
135 $duration = ($this->create)(ResettingDurationInputGUI::class, $this->
ui->txt(
'period'),
'period');
138 $duration->setStartText($this->
ui->txt(
'period_from'));
139 $duration->setEndText($this->
ui->txt(
'period_until'));
151 $conv = $this->document->toCondition(...);
155 $this->
ui->txt(
'tbl_hist_cell_not_criterion') :
__construct(private readonly HistoryRepository $repository, private readonly ProvideDocument $document, public readonly string $reset_command, private readonly string $auto_complete_link, private readonly UI $ui, private readonly DocumentModal $modal, private readonly Closure $create, ?Closure $format_date=null)
@template C
rows(TableSelection $selection)
config(TableConfig $config)
showCriteria(History $record)
readonly Closure $format_date
Class for date presentation.
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ?ilObjUser $user=null,)
@classDescription Date and time handling
This class represents a text property in a property form.
setDataSource(string $href, ?string $a_delimiter=null)
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
setDefaultOrderField(string $a_defaultorderfield)
setDefaultOrderDirection(string $a_defaultorderdirection)
asFilter(string $reset_command)
setSelectableColumns(string ... $names)
setMaxCount(int $a_max_count)
A component is the most general form of an entity in the UI.
modal(string $title="", string $cancel_label="")