ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction Class Reference
+ Inheritance diagram for ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction:
+ Collaboration diagram for ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction:

Public Member Functions

 __construct (private readonly Language $lng, private readonly UIFactory $ui_factory, private readonly \ilObjUser $user, private readonly PersonalSettingsRepository $repository, private readonly MainSettingsRepository $main_settings_repository, private readonly ScoreSettingsRepository $score_settings_repository, private readonly MarksRepository $marks_repository, private readonly AdditionalInformationGenerator $information_generator,)
 
 getActionId ()
 
 buildTableAction (URLBuilder $url_builder, URLBuilderToken $row_id_token, URLBuilderToken $action_token, URLBuilderToken $action_type_token)
 
 buildModal (URLBuilder $url_builder, array $selected_templates)
 
 onSubmit (URLBuilder $url_builder, ServerRequestInterface $request, array $selected_templates,)
 
 getActionId ()
 
 buildTableAction (URLBuilder $url_builder, URLBuilderToken $row_id_token, URLBuilderToken $action_token, URLBuilderToken $action_type_token)
 
 buildModal (URLBuilder $url_builder, array $selected_templates)
 
 onSubmit (URLBuilder $url_builder, ServerRequestInterface $request, array $selected_templates,)
 

Data Fields

const string ACTION_ID = 'show_template'
 

Detailed Description

Definition at line 36 of file PersonalSettingsTableShowAction.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction::__construct ( private readonly Language  $lng,
private readonly UIFactory  $ui_factory,
private readonly \ilObjUser  $user,
private readonly PersonalSettingsRepository  $repository,
private readonly MainSettingsRepository  $main_settings_repository,
private readonly ScoreSettingsRepository  $score_settings_repository,
private readonly MarksRepository  $marks_repository,
private readonly AdditionalInformationGenerator  $information_generator 
)

Definition at line 40 of file PersonalSettingsTableShowAction.php.

49 {
50 }

Member Function Documentation

◆ buildModal()

ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction::buildModal ( URLBuilder  $url_builder,
array  $selected_templates 
)
Parameters
array<PersonalSettingsTemplate>$selected_templates

Implements ILIAS\Test\Settings\Templates\TableAction.

Definition at line 72 of file PersonalSettingsTableShowAction.php.

72 : ?Modal
73 {
74 if (count($selected_templates) !== 1) {
75 throw new \InvalidArgumentException('Expected exactly one template to show');
76 }
77 $template = reset($selected_templates);
78 $modal_content = [];
79
80 $environment = [
81 'timezone' => new \DateTimeZone($this->user->getTimeZone()),
82 'date_format' => $this->user->getDateFormat()->toString()
83 ];
84
85 $settings_id = $template->getSettingsId();
86 $settings_info = array_merge(
87 $this->main_settings_repository->getById($settings_id)->getArrayForLog($this->information_generator),
88 $this->score_settings_repository->getById($settings_id)->getArrayForLog($this->information_generator),
89 );
90
91 $modal_content[] = $this->information_generator->parseForTable(
92 array_map(static fn(mixed $v): mixed => $v ?? '', $settings_info),
93 $environment
94 );
95
96 $mark_steps = $this->repository->lookupMarkSteps($template->getId());
97 $mark_schema = $this->marks_repository->getMarkSchemaBySteps($mark_steps);
98
99 $modal_content[] = $this->ui_factory->legacy()->content("<h4>{$this->lng->txt('mark_schema')}</h4>");
100
101 // le, 2025-10-27: This is not the right way to go, as a logging facility is used directly for presentation.
102 $modal_content[] = $this->information_generator->parseForTable(
103 $mark_schema->toLog($this->information_generator),
104 $environment
105 );
106
107 return $this->ui_factory->modal()->roundtrip(
108 $this->lng->txt('additional_info'),
109 $modal_content,
110 )->withCancelButtonLabel($this->lng->txt('ok'));
111 }

References ILIAS\Repository\lng(), ILIAS\UI\examples\Deck\repository(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ buildTableAction()

ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction::buildTableAction ( URLBuilder  $url_builder,
URLBuilderToken  $row_id_token,
URLBuilderToken  $action_token,
URLBuilderToken  $action_type_token 
)

Implements ILIAS\Test\Settings\Templates\TableAction.

Definition at line 57 of file PersonalSettingsTableShowAction.php.

62 : Action {
63 return $this->ui_factory->table()->action()->single(
64 $this->lng->txt('personal_settings_show'),
65 $url_builder
66 ->withParameter($action_token, self::ACTION_ID)
67 ->withParameter($action_type_token, ParticipantTableActions::SHOW_ACTION),
68 $row_id_token
69 )->withAsync();
70 }
withParameter(URLBuilderToken $token, string|array $value)
Change an acquired parameter's value if the supplied token is valid.
Definition: URLBuilder.php:166

◆ getActionId()

ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction::getActionId ( )

◆ onSubmit()

ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction::onSubmit ( URLBuilder  $url_builder,
ServerRequestInterface  $request,
array  $selected_templates 
)
Parameters
array<PersonalSettingsTemplate>$selected_templates

Implements ILIAS\Test\Settings\Templates\TableAction.

Definition at line 113 of file PersonalSettingsTableShowAction.php.

117 : ?Modal {
118 return null;
119 }

Field Documentation

◆ ACTION_ID

const string ILIAS\Test\Settings\Templates\PersonalSettingsTableShowAction::ACTION_ID = 'show_template'

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