3 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)
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')
64 $this->
lng->loadLanguageModule(
'cmix');
68 switch ($this->
ctrl->getNextClass()) {
69 case 'ilpermissiongui':
71 $this->tabs_gui->activateTab(self::TAB_ID_PERMISSIONS);
73 $this->
ctrl->forwardCommand($gui);
78 $command = $this->
ctrl->getCmd(self::DEFAULT_CMD) .
'Cmd';
90 $this->tabs_gui->activateTab(self::TAB_ID_LRS_TYPES);
97 $this->tpl->setContent(
$toolbar->getHTML() . $table->getHTML());
109 $createTypeButton->setCaption(
'btn_create_lrs_type');
110 $createTypeButton->setUrl($this->
ctrl->getLinkTarget($this, self::CMD_SHOW_LRS_TYPE_FORM));
120 $this->tabs_gui->activateTab(self::TAB_ID_LRS_TYPES);
122 if ($form === null) {
128 $this->tpl->setContent($form->getHTML());
133 if ($this->post_wrapper->has(
'lrs_type_id')) {
134 if (is_int($this->post_wrapper->retrieve(
'lrs_type_id', $this->refinery->kindlyTo()->int()))) {
135 return new ilCmiXapiLrsType($this->post_wrapper->retrieve(
'lrs_type_id', $this->refinery->kindlyTo()->int()));
139 if ($this->request_wrapper->has(
'lrs_type_id')) {
140 if (is_int($this->request_wrapper->retrieve(
'lrs_type_id', $this->refinery->kindlyTo()->int()))) {
141 return new ilCmiXapiLrsType($this->request_wrapper->retrieve(
'lrs_type_id', $this->refinery->kindlyTo()->int()));
153 $form->setFormAction($DIC->ctrl()->getFormAction($this));
156 $form->setTitle($DIC->language()->txt(
'edit_lrs_type_form'));
157 $form->addCommandButton(self::CMD_SAVE_LRS_TYPE_FORM, $DIC->language()->txt(
'save'));
159 $form->setTitle($DIC->language()->txt(
'create_lrs_type_form'));
160 $form->addCommandButton(self::CMD_SAVE_LRS_TYPE_FORM, $DIC->language()->txt(
'create'));
163 $form->addCommandButton(self::CMD_SHOW_LRS_TYPES_LIST, $DIC->language()->txt(
'cancel'));
166 $hiddenId->setValue((
string) $lrsType->
getTypeId());
167 $form->addItem($hiddenId);
170 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_title'),
'title');
171 $item->setValue($lrsType->
getTitle());
172 $item->setInfo($DIC->language()->txt(
'info_title'));
173 $item->setRequired(
true);
174 $item->setMaxLength(255);
175 $form->addItem($item);
177 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_description'),
'description');
179 $item->setInfo($DIC->language()->txt(
'info_description'));
180 $form->addItem($item);
187 $item->addOption($optionCreate);
192 $item->addOption($optionCreate);
197 $item->addOption($optionCreate);
199 $item->setInfo($DIC->language()->txt(
'info_availability'));
200 $item->setRequired(
true);
201 $form->addItem($item);
204 $sectionHeader->setTitle($DIC->language()->txt(
'lrs_authentication'));
205 $form->addItem($sectionHeader);
207 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_lrs_endpoint'),
'lrs_endpoint');
209 $item->setInfo($DIC->language()->txt(
'info_lrs_endpoint'));
210 $item->setRequired(
true);
211 $item->setMaxLength(255);
212 $form->addItem($item);
214 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_lrs_key'),
'lrs_key');
216 $item->setInfo($DIC->language()->txt(
'info_lrs_key'));
217 $item->setRequired(
true);
218 $item->setMaxLength(128);
219 $form->addItem($item);
221 $item =
new ilTextInputGUI($DIC->language()->txt(
'conf_lrs_secret'),
'lrs_secret');
223 $item->setInfo($DIC->language()->txt(
'info_lrs_secret'));
224 $item->setRequired(
true);
225 $item->setMaxLength(128);
226 $form->addItem($item);
229 $sectionHeader->setTitle($DIC->language()->txt(
'sect_learning_progress_options'));
230 $form->addItem($sectionHeader);
232 $cronjob =
new ilCheckboxInputGUI($DIC->language()->txt(
'conf_cronjob_neccessary'),
'cronjob_neccessary');
233 $cronjob->
setInfo($DIC->language()->txt(
'conf_cronjob_neccessary_info'));
235 $form->addItem($cronjob);
238 $sectionHeader->setTitle(
'Privacy Settings');
239 $form->addItem($sectionHeader);
243 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_user_id'),
246 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_user_id_info'));
247 $item->addOption($op);
249 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_login'),
252 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_login_info'));
253 $item->addOption($op);
255 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_ext_account'),
258 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_ext_account_info'));
259 $item->addOption($op);
261 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_sha256'),
264 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_sha256_info'));
265 $item->addOption($op);
267 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_sha256url'),
270 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_sha256url_info'));
271 $item->addOption($op);
274 $DIC->language()->txt(
'conf_privacy_ident_il_uuid_random'),
277 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_il_uuid_random_info'));
278 $item->addOption($op);
280 $DIC->language()->txt(
'conf_privacy_ident_real_email'),
283 $op->
setInfo($DIC->language()->txt(
'conf_privacy_ident_real_email_info'));
284 $item->addOption($op);
289 $item->setRequired(
false);
290 $form->addItem($item);
294 $DIC->language()->txt(
'conf_privacy_name_none'),
297 $op->
setInfo($DIC->language()->txt(
'conf_privacy_name_none_info'));
298 $item->addOption($op);
300 $DIC->language()->txt(
'conf_privacy_name_firstname'),
303 $op->
setInfo($DIC->language()->txt(
'conf_privacy_name_firstname_info'));
304 $item->addOption($op);
306 $DIC->language()->txt(
'conf_privacy_name_lastname'),
309 $op->
setInfo($DIC->language()->txt(
'conf_privacy_name_lastname_info'));
310 $item->addOption($op);
312 $DIC->language()->txt(
'conf_privacy_name_fullname'),
315 $op->
setInfo($DIC->language()->txt(
'conf_privacy_name_fullname_info'));
316 $item->addOption($op);
318 $item->setInfo($DIC->language()->txt(
'conf_privacy_name_info'));
319 $item->setRequired(
false);
320 $form->addItem($item);
322 $item =
new ilCheckboxInputGUI($DIC->language()->txt(
'only_moveon_label'),
'only_moveon');
323 $item->
setInfo($DIC->language()->txt(
'only_moveon_info'));
326 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'achieved_label'),
'achieved');
327 $subitem->
setInfo($DIC->language()->txt(
'achieved_info'));
329 $item->addSubItem($subitem);
331 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'answered_label'),
'answered');
332 $subitem->
setInfo($DIC->language()->txt(
'answered_info'));
334 $item->addSubItem($subitem);
336 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'completed_label'),
'completed');
337 $subitem->
setInfo($DIC->language()->txt(
'completed_info'));
339 $item->addSubItem($subitem);
342 $subitem->
setInfo($DIC->language()->txt(
'failed_info'));
343 $subitem->setChecked($lrsType->
getFailed());
344 $item->addSubItem($subitem);
346 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'initialized_label'),
'initialized');
347 $subitem->
setInfo($DIC->language()->txt(
'initialized_info'));
349 $item->addSubItem($subitem);
352 $subitem->
setInfo($DIC->language()->txt(
'passed_info'));
353 $subitem->setChecked($lrsType->
getPassed());
354 $item->addSubItem($subitem);
356 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'progressed_label'),
'progressed');
357 $subitem->
setInfo($DIC->language()->txt(
'progressed_info'));
359 $item->addSubItem($subitem);
361 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'satisfied_label'),
'satisfied');
362 $subitem->
setInfo($DIC->language()->txt(
'satisfied_info'));
364 $item->addSubItem($subitem);
366 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'terminated_label'),
'terminated');
367 $subitem->
setInfo($DIC->language()->txt(
'terminated_info'));
369 $item->addSubItem($subitem);
371 $form->addItem($item);
373 $item =
new ilCheckboxInputGUI($DIC->language()->txt(
'hide_data_label'),
'hide_data');
374 $item->
setInfo($DIC->language()->txt(
'hide_data_info'));
377 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'timestamp_label'),
'timestamp');
378 $subitem->
setInfo($DIC->language()->txt(
'timestamp_info'));
380 $item->addSubItem($subitem);
382 $subitem =
new ilCheckboxInputGUI($DIC->language()->txt(
'duration_label'),
'duration');
383 $subitem->
setInfo($DIC->language()->txt(
'duration_info'));
385 $item->addSubItem($subitem);
387 $form->addItem($item);
389 $item =
new ilCheckboxInputGUI($DIC->language()->txt(
'no_substatements_label'),
'no_substatements');
390 $item->
setInfo($DIC->language()->txt(
'no_substatements_info'));
392 $form->addItem($item);
394 $item =
new ilRadioGroupInputGUI($DIC->language()->txt(
'conf_privacy_setting_conf'),
'force_privacy_setting');
395 $op =
new ilRadioOption($DIC->language()->txt(
'conf_privacy_setting_default'),
"0");
396 $item->addOption($op);
397 $op =
new ilRadioOption($DIC->language()->txt(
'conf_privacy_setting_force'),
"1");
398 $item->addOption($op);
400 $form->addItem($item);
403 $sectionHeader->setTitle(
'Hints');
404 $form->addItem($sectionHeader);
406 $item =
new ilCheckboxInputGUI($DIC->language()->txt(
'conf_external_lrs'),
'external_lrs');
408 $item->setInfo($DIC->language()->txt(
'info_external_lrs'));
409 $form->addItem($item);
411 $item =
new ilTextAreaInputGUI($DIC->language()->txt(
'conf_privacy_comment_default'),
'privacy_comment_default');
412 $item->
setInfo($DIC->language()->txt(
'info_privacy_comment_default'));
415 $form->addItem($item);
418 $item->
setInfo($DIC->language()->txt(
'info_remarks'));
421 $form->addItem($item);
434 if (!$form->checkInput()) {
439 $lrsType->setTitle($form->getInput(
"title"));
440 $lrsType->setDescription($form->getInput(
"description"));
441 $lrsType->setAvailability((
int) $form->getInput(
"availability"));
443 $lrsType->setLrsEndpoint(
447 $lrsType->setLrsKey($form->getInput(
"lrs_key"));
448 $lrsType->setLrsSecret($form->getInput(
"lrs_secret"));
449 $lrsType->setExternalLrs((
bool) $form->getInput(
"external_lrs"));
450 $lrsType->setPrivacyIdent((
int) $form->getInput(
"privacy_ident"));
451 $lrsType->setPrivacyName((
int) $form->getInput(
"privacy_name"));
452 $lrsType->setPrivacyCommentDefault($form->getInput(
"privacy_comment_default"));
453 $lrsType->setRemarks($form->getInput(
"remarks"));
455 $oldBypassProxyEnabled = $lrsType->isBypassProxyEnabled();
456 $newBypassProxyEnabled = (bool) $form->getInput(
"cronjob_neccessary");
457 $lrsType->setBypassProxyEnabled($newBypassProxyEnabled);
458 if ($newBypassProxyEnabled && $newBypassProxyEnabled != $oldBypassProxyEnabled) {
462 $lrsType->setOnlyMoveon((
bool) $form->getInput(
"only_moveon"));
463 $lrsType->setAchieved((
bool) $form->getInput(
"achieved"));
464 $lrsType->setAnswered((
bool) $form->getInput(
"answered"));
465 $lrsType->setCompleted((
bool) $form->getInput(
"completed"));
466 $lrsType->setFailed((
bool) $form->getInput(
"failed"));
467 $lrsType->setInitialized((
bool) $form->getInput(
"initialized"));
468 $lrsType->setPassed((
bool) $form->getInput(
"passed"));
469 $lrsType->setProgressed((
bool) $form->getInput(
"progressed"));
470 $lrsType->setSatisfied((
bool) $form->getInput(
"satisfied"));
471 $lrsType->setTerminated((
bool) $form->getInput(
"terminated"));
472 $lrsType->setHideData((
bool) $form->getInput(
"hide_data"));
473 $lrsType->setTimestamp((
bool) $form->getInput(
"timestamp"));
474 $lrsType->setDuration((
bool) $form->getInput(
"duration"));
475 $lrsType->setNoSubstatements((
bool) $form->getInput(
"no_substatements"));
477 $lrsType->setForcePrivacySettings((
bool) $form->getInput(
"force_privacy_setting"));
478 if ($lrsType->getForcePrivacySettings()) {
484 $DIC->ctrl()->redirect($this, self::CMD_SHOW_LRS_TYPES_LIST);
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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()
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
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
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