ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ILIAS\Bibliographic\Field\Table\LevelResourcesTable Class Reference
+ Collaboration diagram for ILIAS\Bibliographic\Field\Table\LevelResourcesTable:

Public Member Functions

 __construct (int $ref_id, int $base_skill_id, int $tref_id, int $requested_level_id)
 
 getComponent ()
 

Protected Member Functions

 getColumns ()
 
 getActions ()
 
 getDataRetrieval ()
 

Protected Attributes

ilCtrl $ctrl
 
ilLanguage $lng
 
UI Factory $ui_fac
 
UI Renderer $ui_ren
 
ServerRequestInterface $request
 
ArrayBasedRequestWrapper $query
 
Data Factory $df
 
ilTree $tree
 
Access SkillTreeAccess $tree_access_manager
 
Resource SkillResourcesManager $resource_manager
 
Service SkillAdminGUIRequest $admin_gui_request
 
string $requested_table_action = ""
 
array $requested_table_rep_ref_ids = []
 
int $base_skill_id = 0
 
int $tref_id = 0
 
int $requested_level_id = 0
 

Detailed Description

Author
Thomas Famula famul.nosp@m.a@le.nosp@m.ifos..nosp@m.de

Definition at line 34 of file class.LevelResourcesTable.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Bibliographic\Field\Table\LevelResourcesTable::__construct ( int  $ref_id,
int  $base_skill_id,
int  $tref_id,
int  $requested_level_id 
)

Definition at line 56 of file class.LevelResourcesTable.php.

References ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$base_skill_id, $DIC, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$requested_level_id, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$tref_id, ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by ILIAS\Bibliographic\Field\Table\LevelResourcesTable\getDataRetrieval().

57  {
58  global $DIC;
59 
60  $this->ctrl = $DIC->ctrl();
61  $this->lng = $DIC->language();
62  $this->ui_fac = $DIC->ui()->factory();
63  $this->ui_ren = $DIC->ui()->renderer();
64  $this->request = $DIC->http()->request();
65  $this->query = $DIC->http()->wrapper()->query();
66  $this->df = new Data\Factory();
67  $this->tree = $DIC->repositoryTree();
68  $this->tree_access_manager = $DIC->skills()->internal()->manager()->getTreeAccessManager($ref_id);
69  $this->resource_manager = $DIC->skills()->internal()->manager()->getResourceManager();
70  $this->admin_gui_request = $DIC->skills()->internal()->gui()->admin_request();
71  $this->requested_table_action = $this->admin_gui_request->getTableLevelResourcesAction();
72  $this->requested_table_rep_ref_ids = $this->admin_gui_request->getTableRepoRefIds();
73  $this->base_skill_id = $base_skill_id;
74  $this->tref_id = $tref_id;
75  $this->requested_level_id = $requested_level_id;
76  }
$ref_id
Definition: ltiauth.php:65
global $DIC
Definition: shib_login.php:26
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Function Documentation

◆ getActions()

ILIAS\Bibliographic\Field\Table\LevelResourcesTable::getActions ( )
protected

Definition at line 161 of file class.LevelResourcesTable.php.

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by ILIAS\Bibliographic\Field\Table\LevelResourcesTable\getComponent().

161  : array
162  {
163  $query_params_namespace = ["skl_level_resources_table"];
164 
165  $uri_suggested = $this->df->uri(
166  ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTargetByClass("ilbasicskillgui", "saveResourcesAsSuggested")
167  );
168  $url_builder_suggested = new UI\URLBuilder($uri_suggested);
169  list($url_builder_suggested, $action_parameter_token_suggested, $row_id_token_suggested) =
170  $url_builder_suggested->acquireParameters(
171  $query_params_namespace,
172  "action",
173  "rep_ref_ids"
174  );
175 
176  $uri_not_suggested = $this->df->uri(
177  ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTargetByClass("ilbasicskillgui", "saveResourcesAsNotSuggested")
178  );
179  $url_builder_not_suggested = new UI\URLBuilder($uri_not_suggested);
180  list($url_builder_not_suggested, $action_parameter_token_not_suggested, $row_id_token_not_suggested) =
181  $url_builder_not_suggested->acquireParameters(
182  $query_params_namespace,
183  "action",
184  "rep_ref_ids"
185  );
186 
187  $uri_trigger = $this->df->uri(
188  ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTargetByClass("ilbasicskillgui", "saveResourcesAsTrigger")
189  );
190  $url_builder_trigger = new UI\URLBuilder($uri_trigger);
191  list($url_builder_trigger, $action_parameter_token_trigger, $row_id_token_trigger) =
192  $url_builder_trigger->acquireParameters(
193  $query_params_namespace,
194  "action",
195  "rep_ref_ids"
196  );
197 
198  $uri_no_trigger = $this->df->uri(
199  ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTargetByClass("ilbasicskillgui", "saveResourcesAsNoTrigger")
200  );
201  $url_builder_no_trigger = new UI\URLBuilder($uri_no_trigger);
202  list($url_builder_no_trigger, $action_parameter_token_no_trigger, $row_id_token_no_trigger) =
203  $url_builder_no_trigger->acquireParameters(
204  $query_params_namespace,
205  "action",
206  "rep_ref_ids"
207  );
208 
209  $url_builder_remove = new UI\URLBuilder($this->df->uri($this->request->getUri()->__toString()));
210  list($url_builder_remove, $action_parameter_token_remove, $row_id_token_remove) =
211  $url_builder_remove->acquireParameters(
212  $query_params_namespace,
213  "action",
214  "rep_ref_ids"
215  );
216 
217  $actions = [];
218  if ($this->tree_access_manager->hasManageCompetencesPermission()) {
219  $actions = [
220  "setSuggested" => $this->ui_fac->table()->action()->standard(
221  $this->lng->txt("skmg_set_as_suggested"),
222  $url_builder_suggested->withParameter($action_parameter_token_suggested, "setSuggested"),
223  $row_id_token_suggested
224  ),
225  "unsetSuggested" => $this->ui_fac->table()->action()->standard(
226  $this->lng->txt("skmg_set_as_no_suggested"),
227  $url_builder_not_suggested->withParameter($action_parameter_token_not_suggested, "unsetSuggested"),
228  $row_id_token_not_suggested
229  ),
230  "setTrigger" => $this->ui_fac->table()->action()->standard(
231  $this->lng->txt("skmg_set_as_lp_trigger"),
232  $url_builder_trigger->withParameter($action_parameter_token_trigger, "setTrigger"),
233  $row_id_token_trigger
234  ),
235  "unsetTrigger" => $this->ui_fac->table()->action()->standard(
236  $this->lng->txt("skmg_set_as_no_lp_trigger"),
237  $url_builder_no_trigger->withParameter($action_parameter_token_no_trigger, "unsetTrigger"),
238  $row_id_token_no_trigger
239  ),
240  "remove" => $this->ui_fac->table()->action()->multi(
241  $this->lng->txt("remove"),
242  $url_builder_remove->withParameter($action_parameter_token_remove, "removeResources"),
243  $row_id_token_remove
244  )
245  ->withAsync()
246  ];
247  }
248 
249  return $actions;
250  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getColumns()

ILIAS\Bibliographic\Field\Table\LevelResourcesTable::getColumns ( )
protected

Definition at line 144 of file class.LevelResourcesTable.php.

References ILIAS\Repository\lng().

Referenced by ILIAS\Bibliographic\Field\Table\LevelResourcesTable\getComponent().

144  : array
145  {
146  $columns = [
147  "type" => $this->ui_fac->table()->column()->statusIcon($this->lng->txt("type"))
148  ->withIsSortable(false),
149  "title" => $this->ui_fac->table()->column()->text($this->lng->txt("title")),
150  "path" => $this->ui_fac->table()->column()->text($this->lng->txt("path"))
151  ->withIsSortable(false),
152  "suggested" => $this->ui_fac->table()->column()->text($this->lng->txt("skmg_suggested"))
153  ->withIsSortable(false),
154  "lp_trigger" => $this->ui_fac->table()->column()->text($this->lng->txt("skmg_lp_triggers_level"))
155  ->withIsSortable(false),
156  ];
157 
158  return $columns;
159  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getComponent()

ILIAS\Bibliographic\Field\Table\LevelResourcesTable::getComponent ( )

Definition at line 78 of file class.LevelResourcesTable.php.

References $id, $resources, ilObject\_getIcon(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ILIAS\Repository\ctrl(), exit, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\getActions(), ILIAS\Bibliographic\Field\Table\LevelResourcesTable\getColumns(), ILIAS\Bibliographic\Field\Table\LevelResourcesTable\getDataRetrieval(), and ILIAS\Repository\lng().

78  : UI\Component\Table\Data
79  {
80  $columns = $this->getColumns();
81  $actions = $this->getActions();
82  $data_retrieval = $this->getDataRetrieval();
83 
84  if ($this->requested_table_action === "removeResources") {
85  $items = [];
86  foreach ($this->requested_table_rep_ref_ids as $id) {
87  if ($id === "ALL_OBJECTS") {
88  $resources = $this->resource_manager->getResourcesOfLevel(
89  $this->base_skill_id,
90  $this->tref_id,
91  $this->requested_level_id
92  );
93  foreach ($resources as $resource) {
94  $obj_id = \ilObject::_lookupObjId($resource->getRepoRefId());
95  $obj_type = \ilObject::_lookupType($obj_id);
96  $items[] = $this->ui_fac->modal()->interruptiveItem()->standard(
97  (string) $resource->getRepoRefId(),
98  \ilObject::_lookupTitle($obj_id),
99  $this->ui_fac->image()->standard(
100  \ilObject::_getIcon($obj_id, "small", $obj_type),
101  $this->lng->txt("icon") . " " . $this->lng->txt("obj_" . $obj_type)
102  )
103  );
104  }
105  } else {
106  $obj_id = \ilObject::_lookupObjId((int) $id);
107  $obj_type = \ilObject::_lookupType($obj_id);
108  $items[] = $this->ui_fac->modal()->interruptiveItem()->standard(
109  $id,
110  \ilObject::_lookupTitle($obj_id),
111  $this->ui_fac->image()->standard(
112  \ilObject::_getIcon($obj_id, "small", $obj_type),
113  $this->lng->txt("icon") . " " . $this->lng->txt("obj_" . $obj_type)
114  )
115  );
116  }
117  }
118  echo($this->ui_ren->renderAsync([
119  $this->ui_fac->modal()->interruptive(
120  "",
121  empty($items) ? $this->lng->txt("no_checkbox") : $this->lng->txt("skmg_confirm_level_resources_removal"),
122  $this->ctrl->getFormActionByClass("ilbasicskillgui", "removeLevelResources")
123  )
124  ->withAffectedItems($items)
125  ->withActionButtonLabel(empty($items) ? $this->lng->txt("ok") : $this->lng->txt("delete"))
126  ]));
127  exit();
128  }
129 
130  $table = $this->ui_fac->table()
131  ->data($data_retrieval, $this->lng->txt("skmg_suggested_resources"), $columns)
132  ->withId(
133  self::class . "_" .
134  $this->base_skill_id . "_" .
135  $this->tref_id . "_" .
136  $this->requested_level_id
137  )
138  ->withActions($actions)
139  ->withRequest($this->request);
140 
141  return $table;
142  }
$resources
Definition: ltiservices.php:65
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
exit
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:

◆ getDataRetrieval()

ILIAS\Bibliographic\Field\Table\LevelResourcesTable::getDataRetrieval ( )
protected

Definition at line 252 of file class.LevelResourcesTable.php.

References ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$base_skill_id, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$lng, $path, ILIAS\UI\Implementation\Component\Table\$range, $ref_id, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$requested_level_id, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$resource_manager, $resources, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$tree, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$tref_id, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$ui_fac, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\$ui_ren, ILIAS\Bibliographic\Field\Table\LevelResourcesTable\__construct(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ilObjectLP\isSupportedObjectType(), ILIAS\Repository\lng(), and null.

Referenced by ILIAS\Bibliographic\Field\Table\LevelResourcesTable\getComponent().

252  : UI\Component\Table\DataRetrieval
253  {
254  $data_retrieval = new class (
255  $this->lng,
258  $this->tree,
263  ) implements UI\Component\Table\DataRetrieval {
264  use TableRecords;
265 
266  public function __construct(
267  protected \ilLanguage $lng,
268  protected UI\Factory $ui_fac,
269  protected UI\Renderer $ui_ren,
270  protected \ilTree $tree,
271  protected Resource\SkillResourcesManager $resource_manager,
272  protected int $base_skill_id,
273  protected int $tref_id,
274  protected int $level_id
275  ) {
276  }
277 
278  public function getRows(
279  UI\Component\Table\DataRowBuilder $row_builder,
280  array $visible_column_ids,
281  Data\Range $range,
282  Data\Order $order,
283  ?array $filter_data,
284  ?array $additional_parameters
285  ): \Generator {
286  $records = $this->getRecords($range, $order);
287  foreach ($records as $idx => $record) {
288  $row_id = (string) $record["rep_ref_id"];
289 
290  yield $row_builder->buildDataRow($row_id, $record)
291  ->withDisabledAction("setSuggested", ($record["suggested"] === $this->lng->txt("yes")))
292  ->withDisabledAction("unsetSuggested", ($record["suggested"] === $this->lng->txt("no")))
293  ->withDisabledAction("setTrigger", ($record["lp_trigger"] === $this->lng->txt("yes")))
294  ->withDisabledAction("setTrigger", ($record["lp_trigger"] === $this->lng->txt("not_available")))
295  ->withDisabledAction("unsetTrigger", ($record["lp_trigger"] === $this->lng->txt("no")))
296  ->withDisabledAction("unsetTrigger", ($record["lp_trigger"] === $this->lng->txt("not_available")));
297  }
298  }
299 
300  public function getTotalRowCount(
301  ?array $filter_data,
302  ?array $additional_parameters
303  ): ?int {
304  return count($this->getRecords());
305  }
306 
307  protected function getRecords(?Data\Range $range = null, ?Data\Order $order = null): array
308  {
309  $resources = $this->resource_manager->getResourcesOfLevel(
310  $this->base_skill_id,
311  $this->tref_id,
312  $this->level_id
313  );
314 
315  $records = [];
316  $i = 0;
317  foreach ($resources as $resource) {
318  $ref_id = $resource->getRepoRefId();
319  $obj_id = \ilObject::_lookupObjId($ref_id);
320  $obj_type = \ilObject::_lookupType($obj_id);
321 
322  $records[$i]["rep_ref_id"] = $ref_id;
323  $records[$i]["title"] = \ilObject::_lookupTitle($obj_id);
324  $records[$i]["suggested"] = $resource->getImparting()
325  ? $this->lng->txt("yes")
326  : $this->lng->txt("no");
327 
328  if (!\ilObjectLP::isSupportedObjectType($obj_type)) {
329  $trigger = $this->lng->txt("not_available");
330  } elseif ($resource->getTrigger()) {
331  $trigger = $this->lng->txt("yes");
332  } else {
333  $trigger = $this->lng->txt("no");
334  }
335  $records[$i]["lp_trigger"] = $trigger;
336 
337  $icon = $this->ui_fac->symbol()->icon()->standard(
338  $obj_type,
339  $this->lng->txt("icon") . " " . $this->lng->txt($obj_type),
340  "medium"
341  );
342  $records[$i]["type"] = $icon;
343 
344  $path = $this->tree->getPathFull($ref_id);
345  $path_items = [];
346  foreach ($path as $p) {
347  if ($p["type"] != "root" && $p["child"] != $ref_id) {
348  $path_items[] = $p["title"];
349  }
350  }
351  $records[$i]["path"] = implode(" > ", $path_items);
352 
353  $i++;
354  }
355 
356  if ($order) {
357  $records = $this->orderRecords($records, $order);
358  }
359 
360  if ($range) {
361  $records = $this->limitRecords($records, $range);
362  }
363 
364  return $records;
365  }
366  };
367 
368  return $data_retrieval;
369  }
$resources
Definition: ltiservices.php:65
static isSupportedObjectType(string $type)
$path
Definition: ltiservices.php:29
static _lookupObjId(int $ref_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
__construct(int $ref_id, int $base_skill_id, int $tref_id, int $requested_level_id)
$ref_id
Definition: ltiauth.php:65
static _lookupTitle(int $obj_id)
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $admin_gui_request

Service SkillAdminGUIRequest ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$admin_gui_request
protected

Definition at line 46 of file class.LevelResourcesTable.php.

◆ $base_skill_id

int ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$base_skill_id = 0
protected

◆ $ctrl

ilCtrl ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$ctrl
protected

Definition at line 36 of file class.LevelResourcesTable.php.

◆ $df

Data Factory ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$df
protected

Definition at line 42 of file class.LevelResourcesTable.php.

◆ $lng

ilLanguage ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$lng
protected

◆ $query

ArrayBasedRequestWrapper ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$query
protected

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

◆ $request

ServerRequestInterface ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$request
protected

Definition at line 40 of file class.LevelResourcesTable.php.

◆ $requested_level_id

int ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$requested_level_id = 0
protected

◆ $requested_table_action

string ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$requested_table_action = ""
protected

Definition at line 47 of file class.LevelResourcesTable.php.

◆ $requested_table_rep_ref_ids

array ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$requested_table_rep_ref_ids = []
protected

Definition at line 51 of file class.LevelResourcesTable.php.

◆ $resource_manager

Resource SkillResourcesManager ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$resource_manager
protected

◆ $tree

ilTree ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$tree
protected

◆ $tree_access_manager

Access SkillTreeAccess ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$tree_access_manager
protected

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

◆ $tref_id

int ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$tref_id = 0
protected

◆ $ui_fac

UI Factory ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$ui_fac
protected

◆ $ui_ren

UI Renderer ILIAS\Bibliographic\Field\Table\LevelResourcesTable::$ui_ren
protected

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