3 declare(strict_types=1);
38 protected \ilLanguage
$lng;
42 protected ArrayBasedRequestWrapper
$query;
43 protected Data\Factory
$df;
59 $this->
ctrl = $DIC->ctrl();
60 $this->
lng = $DIC->language();
61 $this->ui_fac = $DIC->ui()->factory();
62 $this->ui_ren = $DIC->ui()->renderer();
63 $this->request = $DIC->http()->request();
64 $this->query = $DIC->http()->wrapper()->query();
65 $this->df =
new Data\Factory();
66 $this->tree_access_manager = $DIC->skills()->internal()->manager()->getTreeAccessManager($ref_id);
67 $this->profile_manager = $DIC->skills()->internal()->manager()->getProfileManager();
68 $this->admin_gui_request = $DIC->skills()->internal()->gui()->admin_request();
69 $this->requested_table_profile_action = $this->admin_gui_request->getTableProfileAction();
70 $this->requested_table_profile_ids = $this->admin_gui_request->getTableProfileIds();
80 if ($this->requested_table_profile_action ===
"deleteProfiles") {
82 foreach ($this->requested_table_profile_ids as
$id) {
83 if ($id ===
"ALL_OBJECTS") {
84 $profiles = $this->skill_tree_id
85 ? $this->profile_manager->getProfilesForSkillTree($this->skill_tree_id)
86 : $this->profile_manager->getProfilesForAllSkillTrees();
87 foreach ($profiles as $profile) {
88 $items[] = $this->ui_fac->modal()->interruptiveItem()->standard(
89 (
string) $profile->getId(),
94 $items[] = $this->ui_fac->modal()->interruptiveItem()->standard(
96 $this->profile_manager->lookupTitle((
int) $id)
100 echo($this->ui_ren->renderAsync([
101 $this->ui_fac->modal()->interruptive(
103 empty($items) ? $this->
lng->txt(
"no_checkbox") : $this->
lng->txt(
"skmg_delete_profiles"),
104 $this->
ctrl->getFormActionByClass(
"ilskillprofilegui",
"deleteProfiles")
106 ->withAffectedItems($items)
107 ->withActionButtonLabel(empty($items) ? $this->
lng->txt(
"ok") : $this->
lng->txt(
"delete"))
112 $table = $this->ui_fac->table()
113 ->data($this->
lng->txt(
"skmg_skill_profiles"), $columns, $data_retrieval)
118 ->withActions($actions)
119 ->withRequest($this->request);
127 "title" => $this->ui_fac->table()->column()->link($this->
lng->txt(
"title")),
128 "context" => $this->ui_fac->table()->column()->text($this->
lng->txt(
"context"))
129 ->withIsSortable(
false),
130 "users" => $this->ui_fac->table()->column()->text($this->
lng->txt(
"users"))
131 ->withIsSortable(
false),
132 "roles" => $this->ui_fac->table()->column()->text($this->
lng->txt(
"roles"))
133 ->withIsSortable(
false),
141 $query_params_namespace = [
"skl_profile_table"];
143 $url_builder_delete =
new UI\URLBuilder($this->df->uri($this->request->getUri()->__toString()));
144 list($url_builder_delete, $action_parameter_token_delete, $row_id_token_delete) =
145 $url_builder_delete->acquireParameters(
146 $query_params_namespace,
151 $uri_export = $this->df->uri(
152 ILIAS_HTTP_PATH .
"/" . $this->
ctrl->getLinkTargetByClass(
"ilskillprofilegui",
"exportProfiles")
154 $url_builder_export =
new UI\URLBuilder($uri_export);
155 list($url_builder_export, $action_parameter_token_export, $row_id_token_export) =
156 $url_builder_export->acquireParameters(
157 $query_params_namespace,
163 if ($this->tree_access_manager->hasManageProfilesPermission()) {
164 $actions[
"delete"] = $this->ui_fac->table()->action()->multi(
165 $this->
lng->txt(
"delete"),
166 $url_builder_delete->withParameter($action_parameter_token_delete,
"deleteProfiles"),
170 $actions[
"export"] = $this->ui_fac->table()->action()->multi(
171 $this->
lng->txt(
"export"),
172 $url_builder_export->withParameter($action_parameter_token_export,
"exportProfiles"),
182 $data_retrieval =
new class (
193 protected int $skill_tree_id,
194 protected Profile\SkillProfileManager $skill_profile_manager,
200 public function getRows(
202 array $visible_column_ids,
206 ?array $additional_parameters
208 $records = $this->getRecords($range, $order);
209 foreach ($records as $idx => $record) {
210 $row_id = (string) $record[
"profile_id"];
212 yield $row_builder->buildDataRow($row_id, $record);
216 public function getTotalRowCount(
218 ?array $additional_parameters
220 return count($this->getRecords());
223 protected function getRecords(
Data\Range $range = null,
Data\
Order $order = null): array
225 if ($this->skill_tree_id) {
226 $profiles = $this->skill_profile_manager->getProfilesForSkillTree($this->skill_tree_id);
228 $profiles = $this->skill_profile_manager->getProfilesForAllSkillTrees();
233 foreach ($profiles as $profile) {
234 $records[$i][
"profile_id"] = $profile->getId();
235 $this->
ctrl->setParameterByClass(
"ilskillprofilegui",
"sprof_id", $profile->getId());
236 $records[$i][
"title"] = $this->ui_fac->link()->standard(
237 $profile->getTitle(),
238 $this->
ctrl->getLinkTargetByClass(
"ilskillprofilegui",
"showLevels")
240 $this->
ctrl->clearParameterByClass(
"ilskillprofilegui",
"sprof_id");
241 $profile_ref_id = $this->skill_profile_manager->lookupRefId($profile->getId());
244 if ($profile_ref_id > 0) {
245 $records[$i][
"context"] = $this->
lng->txt(
"skmg_context_local") .
" (" . $profile_obj_title .
")";
247 $records[$i][
"context"] = $this->
lng->txt(
"skmg_context_global");
249 $records[$i][
"users"] = $this->skill_profile_manager->countUsers($profile->getId());
250 $records[$i][
"roles"] = $this->skill_profile_manager->countRoles($profile->getId());
255 $records = $this->orderRecords($records, $order);
259 $records = $this->limitRecords($records, $range);
266 return $data_retrieval;
__construct(int $ref_id, int $skill_tree_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Service SkillAdminGUIRequest $admin_gui_request
string $requested_table_profile_action
ServerRequestInterface $request
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Both the subject and the direction need to be specified when expressing an order. ...
Profile SkillProfileManager $profile_manager
static _lookupTitle(int $obj_id)
This is how the factory for UI elements looks.
static _lookupObjectId(int $ref_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Access SkillTreeAccess $tree_access_manager
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
array $requested_table_profile_ids
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ArrayBasedRequestWrapper $query
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...