ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
SmoothTableConfig.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS\LegalDocuments;
22 
23 use ilTable2GUI;
24 
29 {
31  private array $later = [];
32 
33  public function __construct(private readonly ilTable2GUI $target)
34  {
35  }
36 
37  public function setTitle(
38  string $a_title,
39  string $a_icon = "",
40  string $a_icon_alt = ""
41  ): void {
42  $this->target->setTitle(...func_get_args());
43  }
44 
45  public function setExternalSorting(bool $a_val): void
46  {
47  $this->target->setExternalSorting($a_val);
48  }
49 
50  public function setDefaultOrderField(string $a_defaultorderfield): void
51  {
52  $this->target->setDefaultOrderField($a_defaultorderfield);
53  }
54 
55  public function setDefaultOrderDirection(string $a_defaultorderdirection): void
56  {
57  $this->target->setDefaultOrderDirection($a_defaultorderdirection);
58  }
59 
60  public function setSelectableColumns(...$names): void
61  {
62  $this->target->setSelectableColumns(...$names);
63  }
64 
65  public function addMultiCommand(string $a_cmd, string $a_text): void
66  {
67  $this->later[] = fn() => $this->target->addMultiCommand($a_cmd, $a_text);
68  }
69 
70  public function addCommandButton(
71  string $a_cmd,
72  string $a_text,
73  string $a_onclick = '',
74  string $a_id = "",
75  string $a_class = ""
76  ): void {
77  $args = func_get_args();
78  $this->later[] = fn() => $this->target->addCommandButton(...$args);
79  }
80 
81  public function asFilter(string $reset_command): TableFilter
82  {
83  $filter = new SmoothTableFilter($this->target, $reset_command);
84  $this->later[] = $filter->flush(...);
85  return $filter;
86  }
87 
88  public function flush(): void
89  {
90  array_map(fn($proc) => $proc(), $this->later);
91  $this->later = [];
92  }
93 }
This class takes care of the order in which the methods must be called.
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
addCommandButton(string $a_cmd, string $a_text, string $a_onclick='', string $a_id="", string $a_class="")
__construct(private readonly ilTable2GUI $target)
setDefaultOrderField(string $a_defaultorderfield)
addMultiCommand(string $a_cmd, string $a_text)
setDefaultOrderDirection(string $a_defaultorderdirection)