19 declare(strict_types=1);
47 $this->tabs_gui->addTab(
48 self::TAB_ID_LRS_TYPES,
49 $this->
lng->txt(self::TAB_ID_LRS_TYPES),
50 $this->
ctrl->getLinkTargetByClass(self::class)
54 if ($this->rbac_system->checkAccess(
'edit_permission', $this->object->getRefId())) {
55 $this->tabs_gui->addTab(
56 self::TAB_ID_PERMISSIONS,
57 $this->
lng->txt(self::TAB_ID_PERMISSIONS),
58 $this->
ctrl->getLinkTargetByClass(ilPermissionGUI::class,
'perm')
65 $this->
lng->loadLanguageModule(
'cmix');
69 switch ($this->
ctrl->getNextClass()) {
70 case 'ilpermissiongui':
72 $this->tabs_gui->activateTab(self::TAB_ID_PERMISSIONS);
74 $this->
ctrl->forwardCommand($gui);
79 $command = $this->
ctrl->getCmd(self::DEFAULT_CMD) .
'Cmd';
91 $this->tabs_gui->activateTab(self::TAB_ID_LRS_TYPES);
94 if ($this->rbac_system->checkAccess(
'write', $this->getRefId())) {
101 $this->tpl->setContent($toolbarHtml . $table->getHTML());
112 $button = $DIC->ui()->factory()->button()->primary(
113 $this->
lng->txt(
"btn_create_lrs_type"),
114 $this->
ctrl->getLinkTarget($this, self::CMD_SHOW_LRS_TYPE_FORM)
125 $this->tabs_gui->activateTab(self::TAB_ID_LRS_TYPES);
127 if ($form ===
null) {
133 $this->tpl->setContent($form->getHTML());
138 if ($this->post_wrapper->has(
'lrs_type_id')) {
139 if (is_int($this->post_wrapper->retrieve(
'lrs_type_id', $this->refinery->kindlyTo()->int()))) {
140 return new ilCmiXapiLrsType($this->post_wrapper->retrieve(
'lrs_type_id', $this->refinery->kindlyTo()->int()));
144 if ($this->request_wrapper->has(
'lrs_type_id')) {
145 if (is_int($this->request_wrapper->retrieve(
'lrs_type_id', $this->refinery->kindlyTo()->int()))) {
146 return new ilCmiXapiLrsType($this->request_wrapper->retrieve(
'lrs_type_id', $this->refinery->kindlyTo()->int()));
158 $form->setFormAction($DIC->ctrl()->getFormAction($this));
161 $form->setTitle($DIC->language()->txt(
'edit_lrs_type_form'));
163 $form->setTitle($DIC->language()->txt(
'create_lrs_type_form'));
166 $form->addCommandButton(self::CMD_SAVE_LRS_TYPE_FORM, $DIC->language()->txt(
'save'));
167 $form->addCommandButton(self::CMD_SHOW_LRS_TYPES_LIST, $DIC->language()->txt(
'cancel'));
170 $hiddenId->setValue((
string) $lrsType->
getTypeId());
171 $form->addItem($hiddenId);
174 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_title'),
'title');
175 $item->setValue($lrsType->
getTitle());
176 $item->setInfo($DIC->language()->txt(
'info_title'));
177 $item->setRequired(
true);
178 $item->setMaxLength(255);
179 $form->addItem($item);
181 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_description'),
'description');
183 $item->setInfo($DIC->language()->txt(
'info_description'));
184 $form->addItem($item);
192 $item->addOption($optionCreate);
198 $item->addOption($optionCreate);
204 $item->addOption($optionCreate);
206 $item->setRequired(
true);
207 $form->addItem($item);
210 $sectionHeader->setTitle($DIC->language()->txt(
'lrs_authentication'));
211 $form->addItem($sectionHeader);
213 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_lrs_endpoint'),
'lrs_endpoint');
215 $item->setInfo($DIC->language()->txt(
'info_lrs_endpoint'));
216 $item->setRequired(
true);
217 $item->setMaxLength(255);
218 $form->addItem($item);
220 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_lrs_key'),
'lrs_key');
222 $item->setInfo($DIC->language()->txt(
'info_lrs_key'));
223 $item->setRequired(
true);
224 $item->setMaxLength(128);
225 $form->addItem($item);
227 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_lrs_secret'),
'lrs_secret');
229 $item->setInfo($DIC->language()->txt(
'info_lrs_secret'));
230 $item->setRequired(
true);
231 $item->setMaxLength(128);
232 $form->addItem($item);
235 $sectionHeader->setTitle($DIC->language()->txt(
'privacy_options'));
236 $form->addItem($sectionHeader);
238 $useProxy =
new ilCheckboxInputGUI($DIC->language()->txt(
'conf_use_proxy'),
'use_proxy');
239 $useProxy->setInfo($DIC->language()->txt(
'conf_use_proxy_info'));
241 $useProxy->setChecked(
true);
245 "achieved" => $DIC->language()->txt(
'achieved_label'),
246 "answered" => $DIC->language()->txt(
'answered_label'),
247 "completed" => $DIC->language()->txt(
'completed_label'),
248 "failed" => $DIC->language()->txt(
'failed_label'),
249 "initialized" => $DIC->language()->txt(
'initialized_label'),
250 "passed" => $DIC->language()->txt(
'passed_label'),
251 "progressed" => $DIC->language()->txt(
'progressed_label'),
252 "satisfied" => $DIC->language()->txt(
'satisfied_label'),
253 "terminated" => $DIC->language()->txt(
'terminated_label'),
255 $multi = $DIC->ui()->factory()->input()->field()->multiselect($DIC->language()->txt(
'conf_store_only_verbs'), $options, $DIC->language()->txt(
'conf_store_only_verbs_info'))
256 ->withRequired(
true);
260 $item =
new ilCheckboxInputGUI($DIC->language()->txt(
'only_moveon_label'),
'only_moveon');
261 $item->setInfo($DIC->language()->txt(
'only_moveon_info'));
264 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'achieved_label'),
'achieved');
265 $subitem->setInfo($DIC->language()->txt(
'achieved_info'));
267 $item->addSubItem($subitem);
269 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'answered_label'),
'answered');
270 $subitem->setInfo($DIC->language()->txt(
'answered_info'));
272 $item->addSubItem($subitem);
274 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'completed_label'),
'completed');
275 $subitem->setInfo($DIC->language()->txt(
'completed_info'));
277 $item->addSubItem($subitem);
280 $subitem->setInfo($DIC->language()->txt(
'failed_info'));
281 $subitem->setChecked($lrsType->
getFailed());
282 $item->addSubItem($subitem);
284 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'initialized_label'),
'initialized');
285 $subitem->setInfo($DIC->language()->txt(
'initialized_info'));
287 $item->addSubItem($subitem);
290 $subitem->setInfo($DIC->language()->txt(
'passed_info'));
291 $subitem->setChecked($lrsType->
getPassed());
292 $item->addSubItem($subitem);
294 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'progressed_label'),
'progressed');
295 $subitem->setInfo($DIC->language()->txt(
'progressed_info'));
297 $item->addSubItem($subitem);
299 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'satisfied_label'),
'satisfied');
300 $subitem->setInfo($DIC->language()->txt(
'satisfied_info'));
302 $item->addSubItem($subitem);
304 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'terminated_label'),
'terminated');
305 $subitem->setInfo($DIC->language()->txt(
'terminated_info'));
307 $item->addSubItem($subitem);
309 $useProxy->addSubItem($item);
311 $item =
new ilCheckboxInputGUI($DIC->language()->txt(
'hide_data_label'),
'hide_data');
312 $item->setInfo($DIC->language()->txt(
'hide_data_info'));
315 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'timestamp_label'),
'timestamp');
316 $subitem->setInfo($DIC->language()->txt(
'timestamp_info'));
318 $item->addSubItem($subitem);
320 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'duration_label'),
'duration');
321 $subitem->setInfo($DIC->language()->txt(
'duration_info'));
323 $item->addSubItem($subitem);
325 $useProxy->addSubItem($item);
327 $item =
new ilCheckboxInputGUI($DIC->language()->txt(
'no_substatements_label'),
'no_substatements');
328 $item->setInfo($DIC->language()->txt(
'no_substatements_info'));
330 $useProxy->addSubItem($item);
334 $form->addItem($useProxy);
342 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_user_id'),
345 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_user_id_info'));
346 $item->addOption($op);
348 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_login'),
351 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_login_info'));
352 $item->addOption($op);
354 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_ext_account'),
357 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_ext_account_info'));
358 $item->addOption($op);
360 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_sha256'),
363 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_sha256_info'));
364 $item->addOption($op);
366 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_sha256url'),
369 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_sha256url_info'));
370 $item->addOption($op);
373 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_random'),
376 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_random_info'));
377 $item->addOption($op);
379 $DIC->language()->txt(
'conf_privacy_ident_real_email'),
382 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_real_email_info'));
383 $item->addOption($op);
388 $item->setRequired(
false);
389 $form->addItem($item);
393 $DIC->language()->txt(
'conf_privacy_name_none'),
396 $op->
setInfo($DIC->language()->txt(
'conf_privacy_name_none_info'));
397 $item->addOption($op);
399 $DIC->language()->txt(
'conf_privacy_name_firstname'),
402 $item->addOption($op);
404 $DIC->language()->txt(
'conf_privacy_name_lastname'),
407 $item->addOption($op);
409 $DIC->language()->txt(
'conf_privacy_name_fullname'),
412 $item->addOption($op);
414 $item->setInfo($DIC->language()->txt(
'conf_privacy_name_info'));
415 $item->setRequired(
false);
416 $form->addItem($item);
491 $options = [
"0",
"1",
"2",
"11",
"12"];
492 for ((
int) $i = 0; $i < count($options); $i++) {
493 $op =
new ilRadioOption($DIC->language()->txt(
'conf_delete_data_opt' . $options[$i]), $options[$i]);
494 $item->addOption($op);
497 $item->setInfo($DIC->language()->txt(
'conf_delete_data_info'));
498 $form->addItem($item);
500 $item =
new ilRadioGroupInputGUI($DIC->language()->txt(
'conf_privacy_setting_conf'),
'force_privacy_setting');
501 $op =
new ilRadioOption($DIC->language()->txt(
'conf_privacy_setting_default'),
"0");
502 $item->addOption($op);
503 $op =
new ilRadioOption($DIC->language()->txt(
'conf_privacy_setting_force'),
"1");
504 $item->addOption($op);
506 $form->addItem($item);
509 $sectionHeader->setTitle(
'Hints');
510 $form->addItem($sectionHeader);
512 $item =
new ilCheckboxInputGUI($DIC->language()->txt(
'conf_external_lrs'),
'external_lrs');
514 $item->setInfo($DIC->language()->txt(
'info_external_lrs'));
515 $form->addItem($item);
517 $item =
new ilTextAreaInputGUI($DIC->language()->txt(
'conf_privacy_comment_default'),
'privacy_comment_default');
518 $item->
setInfo($DIC->language()->txt(
'info_privacy_comment_default'));
521 $form->addItem($item);
524 $item->
setInfo($DIC->language()->txt(
'info_remarks'));
527 $form->addItem($item);
540 if (!$form->checkInput()) {
545 $lrsType->setTitle($form->getInput(
"title"));
546 $lrsType->setDescription($form->getInput(
"description"));
547 $lrsType->setAvailability((
int) $form->getInput(
"availability"));
549 $lrsType->setLrsEndpoint(
553 $lrsType->setLrsKey($form->getInput(
"lrs_key"));
554 $lrsType->setLrsSecret($form->getInput(
"lrs_secret"));
555 $lrsType->setExternalLrs((
bool) $form->getInput(
"external_lrs"));
556 $lrsType->setPrivacyIdent((
int) $form->getInput(
"privacy_ident"));
557 $lrsType->setPrivacyName((
int) $form->getInput(
"privacy_name"));
558 $lrsType->setPrivacyCommentDefault($form->getInput(
"privacy_comment_default"));
559 $lrsType->setRemarks($form->getInput(
"remarks"));
561 $oldBypassProxyEnabled = $lrsType->isBypassProxyEnabled();
562 $newBypassProxyEnabled =
false;
563 if ((
bool) $form->getInput(
"use_proxy") ==
false) {
564 $newBypassProxyEnabled =
true;
566 $lrsType->setBypassProxyEnabled($newBypassProxyEnabled);
567 if ($newBypassProxyEnabled && $newBypassProxyEnabled != $oldBypassProxyEnabled) {
571 $lrsType->setOnlyMoveon((
bool) $form->getInput(
"only_moveon"));
572 $lrsType->setAchieved((
bool) $form->getInput(
"achieved"));
573 $lrsType->setAnswered((
bool) $form->getInput(
"answered"));
574 $lrsType->setCompleted((
bool) $form->getInput(
"completed"));
575 $lrsType->setFailed((
bool) $form->getInput(
"failed"));
576 $lrsType->setInitialized((
bool) $form->getInput(
"initialized"));
577 $lrsType->setPassed((
bool) $form->getInput(
"passed"));
578 $lrsType->setProgressed((
bool) $form->getInput(
"progressed"));
579 $lrsType->setSatisfied((
bool) $form->getInput(
"satisfied"));
580 $lrsType->setTerminated((
bool) $form->getInput(
"terminated"));
581 $lrsType->setHideData((
bool) $form->getInput(
"hide_data"));
582 $lrsType->setTimestamp((
bool) $form->getInput(
"timestamp"));
583 $lrsType->setDuration((
bool) $form->getInput(
"duration"));
584 $lrsType->setNoSubstatements((
bool) $form->getInput(
"no_substatements"));
585 $lrsType->setDeleteData((
int) $form->getInput(
"delete_data"));
587 $lrsType->setForcePrivacySettings((
bool) $form->getInput(
"force_privacy_setting"));
588 if ($lrsType->getForcePrivacySettings()) {
594 $DIC->ctrl()->redirect($this, self::CMD_SHOW_LRS_TYPES_LIST);
This class represents an option in a radio group.
buildLrsTypeForm(ilCmiXapiLrsType $lrsType)
const PRIVACY_IDENT_REAL_EMAIL
prepareOutput(bool $show_sub_objects=true)
const PRIVACY_NAME_FULLNAME
const CMD_SHOW_LRS_TYPES_LIST
const CMD_SAVE_LRS_TYPE_FORM
const PRIVACY_NAME_LASTNAME
static updatePrivacySettingsFromLrsType(ilCmiXapiLrsType $lrsType)
buildLrsTypesToolbarGUI()
const PRIVACY_IDENT_IL_UUID_USER_ID
static removeTrailingPathSeparators(string $path)
getForcePrivacySettings()
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
const AVAILABILITY_CREATE
const CMD_SHOW_LRS_TYPE_FORM
const AVAILABILITY_EXISTING
Class ilObjectGUI Basic methods of all Output classes.
setValue(string $a_value)
const PRIVACY_IDENT_IL_UUID_SHA256URL
getPrivacyCommentDefault()
showLrsTypeFormCmd(?ilPropertyFormGUI $form=null)
This class represents a text area property in a property form.
const PRIVACY_IDENT_IL_UUID_EXT_ACCOUNT
const PRIVACY_IDENT_IL_UUID_SHA256
const PRIVACY_IDENT_IL_UUID_RANDOM
static updateByPassProxyFromLrsType(ilCmiXapiLrsType $lrsType)
const PRIVACY_NAME_FIRSTNAME
static getTypesData(bool $a_extended=false, ?int $a_availability=null)
Get basic data array of all types (without field definitions)
const PRIVACY_IDENT_IL_UUID_LOGIN