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

Public Member Functions

 __construct (private readonly Language $lng, private readonly UIFactory $ui_factory, private readonly GlobalTemplate $tpl, private readonly PersonalSettingsRepository $repository, private readonly MarksRepository $marks_repository,)
 
 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,)
 
 deleteTemplate (PersonalSettingsTemplate $template)
 
 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 = 'delete_template'
 

Detailed Description

Definition at line 34 of file PersonalSettingsTableDeleteAction.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Test\Settings\Templates\PersonalSettingsTableDeleteAction::__construct ( private readonly Language  $lng,
private readonly UIFactory  $ui_factory,
private readonly GlobalTemplate  $tpl,
private readonly PersonalSettingsRepository  $repository,
private readonly MarksRepository  $marks_repository 
)

Definition at line 38 of file PersonalSettingsTableDeleteAction.php.

44 {
45 }

Member Function Documentation

◆ buildModal()

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

Implements ILIAS\Test\Settings\Templates\TableAction.

Definition at line 67 of file PersonalSettingsTableDeleteAction.php.

70 : ?Modal {
71 return $this->ui_factory->modal()->interruptive(
72 $this->lng->txt('confirm'),
73 $this->lng->txt('personal_settings_delete_confirmation'),
74 $url_builder->buildURI()->__toString()
75 )->withAffectedItems(
76 array_map(
77 fn(PersonalSettingsTemplate $v) => $this->ui_factory->modal()->interruptiveItem()->standard(
78 (string) $v->getId(), $v->getName()
79 ),
80 $selected_templates
81 )
82 )->withActionButtonLabel($this->lng->txt('delete'));
83 }
buildURI()
Get a URI representation of the full URL including query string and fragment/hash.
Definition: URLBuilder.php:214

◆ buildTableAction()

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

Implements ILIAS\Test\Settings\Templates\TableAction.

Definition at line 52 of file PersonalSettingsTableDeleteAction.php.

57 : Action {
58 return $this->ui_factory->table()->action()->standard(
59 $this->lng->txt('delete'),
60 $url_builder
61 ->withParameter($action_token, self::ACTION_ID)
62 ->withParameter($action_type_token, ParticipantTableActions::SHOW_ACTION),
63 $row_id_token
64 )->withAsync();
65 }
withParameter(URLBuilderToken $token, string|array $value)
Change an acquired parameter's value if the supplied token is valid.
Definition: URLBuilder.php:166

◆ deleteTemplate()

ILIAS\Test\Settings\Templates\PersonalSettingsTableDeleteAction::deleteTemplate ( PersonalSettingsTemplate  $template)

Definition at line 102 of file PersonalSettingsTableDeleteAction.php.

102 : void
103 {
104 $mark_ids = $this->repository->lookupMarkSteps($template->getId());
105 $this->repository->detachMarkSteps($template->getId(), $mark_ids);
106 $this->marks_repository->deleteSteps($mark_ids);
107
108 $this->repository->delete($template);
109 }

References ILIAS\Test\Settings\Templates\PersonalSettingsTemplate\getId(), and ILIAS\UI\examples\Deck\repository().

+ Here is the call graph for this function:

◆ getActionId()

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

◆ onSubmit()

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

Implements ILIAS\Test\Settings\Templates\TableAction.

Definition at line 85 of file PersonalSettingsTableDeleteAction.php.

89 : ?Modal {
90 foreach ($selected_templates as $template) {
91 $this->deleteTemplate($template);
92 }
93
94 $this->tpl->setOnScreenMessage(
96 $this->lng->txt('personal_settings_delete_success'),
97 true
98 );
99 return null;
100 }

Field Documentation

◆ ACTION_ID

const string ILIAS\Test\Settings\Templates\PersonalSettingsTableDeleteAction::ACTION_ID = 'delete_template'

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