Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
1333697
Chatroom: Add missing typecast for JS timestamps (ms)
lscharmer Dec 17, 2024
b72f173
Test: Fix Attempt Might Be Null
kergomard Dec 18, 2024
127f5a3
Cron: Fix code style
mjansenDatabay Dec 18, 2024
27374af
Fix settings and presentation of multiple dc fields (#8751)
iszmais Dec 18, 2024
9fbb05f
fix filter for formula-sensitive-titles (#8758)
iszmais Dec 19, 2024
a39a05f
fix dc typo (#8763)
iszmais Dec 19, 2024
dce1921
Fixed some icon issues (Mantis #35573, #43318 and #43320) by adding i…
matthiaskunkel Dec 19, 2024
ae37ca0
Added modified icon for enlarge action to images>media directory
matthiaskunkel Dec 19, 2024
ef75f6d
[FIX] #43134: remove unused `jquery-dragster` npm package.
thibsy Dec 20, 2024
f2c2af5
UI: 43109, align dropdown with title in secondary panels. (#8700)
lukastocker Dec 23, 2024
82f105e
style/copage: type and import fixes
alex40724 Dec 26, 2024
dfaf58e
content style: fix text_block import
alex40724 Dec 26, 2024
4cc3e5f
Improved labels for optional use of pool in survey
matthiaskunkel Jan 2, 2025
c4be8b9
Fixed Mantis #40914: Failed test: Rechte nach Positionen - Zuweisunge…
matthiaskunkel Jan 2, 2025
3c97215
Fixed Mantis #41291: Fehler in der Benennung / Beschreibung von "Enab…
matthiaskunkel Jan 2, 2025
d675944
Fixed Mantis #43403: Insert Advanced Metadata < Insert Custom Metadata
matthiaskunkel Jan 2, 2025
3698967
Fixed Mantis #41975: German: Blacklist statt Negativliste
matthiaskunkel Jan 2, 2025
adf0cd3
Fixed Mantis #32156: Streamline spelling: "ILIAS-Seiteneditor" und "T…
matthiaskunkel Jan 2, 2025
014c12e
Test: Fix Wrong Return Type
kergomard Jan 3, 2025
b369edd
Test: Fix UsrPassOverviewMode Must be Int
kergomard Jan 3, 2025
1b84214
Forum: Add missing language variables
mjansenDatabay Jan 6, 2025
e795f0d
Dependencies: Update PHPSpreadsheet
kergomard Jan 6, 2025
ca733c8
TA: 43313, fix calculations of points (#8757)
nhaagen Jan 6, 2025
2ae27e8
RBAC: Fix Typo in PermissionsStatusGUI
kergomard Jan 6, 2025
a14eac7
Test: Fix Default Settings for PositionAccess
kergomard Jan 6, 2025
851e673
CopyWizard: Fix duplicate copies (in 2nd - nth target) when selecting…
mjansenDatabay Jan 6, 2025
0811b82
37770: Download all submissions, Umlaut-problems
alex40724 Jan 7, 2025
424434c
LegalDocuments: Fix duplicated onscreen message
lscharmer Jan 6, 2025
c29ebe8
LegalDocuments: Show error message on invalid order in Administration
lscharmer Jan 8, 2025
2f58f74
Revert "TA: 43313, fix calculations of points (#8757)"
kergomard Jan 8, 2025
d3edc9a
Test: Revert Changes in Formula Question
kergomard Jan 8, 2025
13b9371
41859: CSS style ignored when page content is presented
alex40724 Jan 8, 2025
9afe225
fixed 42276: no certificate creation in excisting courses (service in…
alex40724 Jan 9, 2025
14da94b
Test: Fix Detailed evaluation show questions not answered (#8794)
fneumann Jan 9, 2025
57dcedf
Hide language item comments by default in the UI. (#8806)
katringross Jan 9, 2025
eff4ab7
Fix file (inc. media) record upload changes and deletions (#8809)
iszmais Jan 9, 2025
7d65ae9
41859: CSS style ignored when page content is presented
alex40724 Jan 9, 2025
945cb7c
Object: Remove Wrong Text in Tranlsation Modal
kergomard Jan 10, 2025
2ffb877
fix: allow empty values in access code modal (43349)
lukas-heinrich Jan 6, 2025
78f30ae
43006: Failed test: Confirmation-Form stays after having confirmed
alex40724 Jan 10, 2025
299a6c0
Merge branch 'release_9' of https://github.com/ILIAS-eLearning/ILIAS …
alex40724 Jan 10, 2025
ea3efe7
Test: Fix Import of Cloze-Question in LM
kergomard Jan 10, 2025
8dbd1c1
getTreeChilds & getXMLTree: add checks for empty types and user_ids
jeph864 Jan 13, 2025
526a975
set image max-height (#8792)
iszmais Jan 13, 2025
8927044
Test: Fix Presentation Of Enlarge Icon
kergomard Jan 13, 2025
f7e4cc6
sync language files
fwolf-ilias Jan 14, 2025
c4f7a3d
Release 9.7
fwolf-ilias Jan 14, 2025
da22153
Certificate: Fix "MainBar" visibility
mjansenDatabay Jan 14, 2025
1640b19
Test: Fix Import of Answer-Options in LongMenu
kergomard Jan 15, 2025
2701011
Test: Fix Error on Null Title
kergomard Jan 15, 2025
278ad9a
Test: Remove Title from Statistics
kergomard Jan 15, 2025
0cb2dd4
Test: Fix EvaluationTable Test
kergomard Jan 15, 2025
811cb48
Fix duplicate global roles for FILTER_ALL
ingoj Jan 14, 2025
0516a18
RBAC: A Little Clean-Up
kergomard Jan 15, 2025
a86e489
User: Fix Error Message on Non-Existent Local Role
kergomard Jan 15, 2025
7428e33
RBAC: Add Precise Name to Role Selection Table
kergomard Jan 15, 2025
90bd274
EmployeeTalk: fix loading of repository picker for internal links (43…
schmitz-ilias Jan 15, 2025
feb208c
Fix #0043165: SOAP addObject: undefined keys (#8856)
jeph864 Jan 16, 2025
eea2b8d
fixed #41844: Fehlerhafte Darstellung selbst definierter Absatzformate
alex40724 Jan 16, 2025
f333058
41844: Fehlerhafte Darstellung selbst definierter Absatzformate beim …
alex40724 Jan 16, 2025
dc96e82
removed page objects for createviewtable and editviewtable (#8864)
iszmais Jan 17, 2025
7963219
[FIX] 0042303: Automatically generated preview image for tile view ca…
chfsx Jan 17, 2025
bb98e55
[FIX] 0042394: Download ILIAS folder as ZIP: All File endings get dou…
chfsx Jan 17, 2025
8b2aeb1
[FIX] static call
chfsx Jan 17, 2025
c1bc8fb
fix issue for xapi learning progress
Uwe-Kohnle Jan 19, 2025
c90b73e
Type error fixed
qualitus-dahme Jan 20, 2025
aba59d6
Forum: Fix author presentation if account is deleted
mjansenDatabay Jan 20, 2025
f31de84
Type error fixed (#8876)
qualitus-dahme Jan 20, 2025
74816cc
Search: fix invalid query from empty cache (43626)
schmitz-ilias Jan 21, 2025
ed15fac
Update composer.lock and package-lock.json after release v9.7
fwolf-ilias Jan 14, 2025
3f4d110
possible fix for Mantis #40359
Uwe-Kohnle Jan 21, 2025
3b1a3df
Chatroom: Fix saving nested form elements
mjansenDatabay Jan 21, 2025
ddb9c16
Forum: Cast null values to string when presenting author
mjansenDatabay Jan 22, 2025
39450e0
Test: Fix `\ilTestEvaluationUserData::getAvailablePoints` accesses un…
mjansenDatabay Dec 20, 2024
a3f39f2
Object: Readd Option to Delete References
kergomard Jan 22, 2025
8d179f3
dc fix collision of multiple datatype properties (#8885)
iszmais Jan 22, 2025
d542c86
improvement for fix Mantis #40359
Uwe-Kohnle Jan 22, 2025
5610f46
Forum: Adopt XSD for forums to allow NULL as string value
mjansenDatabay Jan 23, 2025
c9ee3c3
User: Fix Visibility Check for User Table
kergomard Jan 23, 2025
cbc6eef
Obj: 43324, _lookupDeletedDate will return null for missing entry
nhaagen Dec 19, 2024
ab1c5a6
LegalDocuments: Fix label & dpro column in user administration table …
lscharmer Jan 23, 2025
ed6778e
[FIX] missing export format
chfsx Jan 17, 2025
707fc76
[FIX] 0043071: Files in "personal ressources" lost/invisible after up…
chfsx Jan 24, 2025
35ee154
Saml: Add level.logger migration note to readme
lscharmer Jan 24, 2025
7a99709
Fix compatible set of packages regarding composer-plugin-api, simples…
fwolf-ilias Jan 24, 2025
b596fa0
Test: Plugin Question Without Name Not Importable
kergomard Jan 27, 2025
58352a1
Merge pull request #8854 from Minervis-GmbH/bugfixes/soap/43452
jeph864 Jan 27, 2025
7f23537
[FIX] missing commands in action dropdowns
chfsx Jan 27, 2025
0816f97
Object: Fix Access Check on Availability Period
kergomard Jan 27, 2025
02c5006
[FIX] file actions target
chfsx Jan 28, 2025
bab94fe
File: Fix Missing Flavour in Tile
kergomard Jan 28, 2025
b81c543
Test: Fix Name Presentation in User Table
kergomard Jan 27, 2025
4443792
Test: Fix Check Marks Editability
kergomard Jan 29, 2025
5fd5b94
0043656: SCORM-Player is flooding the logs (#8920)
qualitus-dahme Jan 29, 2025
ef18085
0042271: Scorm-Module lassen sich nicht kopieren (#8923)
qualitus-dahme Jan 29, 2025
45d8f21
Test: Set Max Length for Question Properties
kergomard Jan 29, 2025
5b0f10b
fix typo (#8932)
iszmais Jan 29, 2025
3e2bb4a
Fix typo in ilias_de.lang
Hufschmidt Jan 29, 2025
03c5921
customized filenames for certificates on course level
Feb 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ public function back(): void
if ($retCmd !== "") {
$this->ctrl->redirectByClass(get_class($this->parent_gui), $retCmd);
} else {
//var_dump(get_class($this->parent_gui));
//exit;
$this->ctrl->returnToParent($this->parent_gui);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ public function book(): void // ok

$this->lng->loadLanguageModule("dateplaner");
$this->ctrl->setParameter($this, 'object_id', $obj->getId());
$this->ctrl->setParameter($this, 'returnCmd', "book");
$this->ctrl->setParameter($this, 'returnCmd', "back");

if ($this->user_id_to_book !== $this->user_id_assigner) {
$this->ctrl->setParameter($this, 'bkusr', $this->user_id_to_book);
Expand Down Expand Up @@ -360,6 +360,6 @@ public function deliverPostFile(): void

public function back(): void
{
$this->util_gui->back();
$this->ctrl->redirectByClass(\ilObjBookingPoolGUI::class, 'render');
}
}
4 changes: 2 additions & 2 deletions Modules/Chatroom/classes/class.ilChatroom.php
Original file line number Diff line number Diff line change
Expand Up @@ -823,8 +823,8 @@ public function getLastMessages(int $number, ilChatroomUser $chatuser): array
}

usort($results, static function (stdClass $a, stdClass $b): int {
$a_timestamp = strlen((string) $a->timestamp) === 13 ? ((int) substr($a->timestamp, 0, -3)) : $a->timestamp;
$b_timestamp = strlen((string) $b->timestamp) === 13 ? ((int) substr($b->timestamp, 0, -3)) : $b->timestamp;
$a_timestamp = strlen((string) $a->timestamp) === 13 ? ((int) substr((string) $a->timestamp, 0, -3)) : $a->timestamp;
$b_timestamp = strlen((string) $b->timestamp) === 13 ? ((int) substr((string) $b->timestamp, 0, -3)) : $b->timestamp;

return $b_timestamp - $a_timestamp;
});
Expand Down
6 changes: 5 additions & 1 deletion Modules/Chatroom/classes/gui/class.ilChatroomSettingsGUI.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,11 @@ public function saveGeneral(): void
}

foreach ($mutated_settings as $setting => &$value) {
if (array_key_exists($setting, $values)) {
if ($setting === ilChatroomFormFactory::PROP_ALLOW_CUSTOM_NAMES) {
$value = is_array($values[$setting] ?? null);
} elseif ($setting === ilChatroomFormFactory::PROP_AUTOGEN_USERNAMES) {
$value = $values[ilChatroomFormFactory::PROP_ALLOW_CUSTOM_NAMES][ilChatroomFormFactory::PROP_AUTOGEN_USERNAMES] ?? '';
} elseif (array_key_exists($setting, $values)) {
$value = $values[$setting];
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,23 +75,27 @@ public function evaluateReport(ilCmiXapiStatementsReport $report): void
$xapiStatement = json_decode(json_encode($xapiStatement));
$cmixUser = $this->getCmixUser($xapiStatement);

$this->evaluateStatement($xapiStatement, $cmixUser->getUsrId());
if ($cmixUser != null) {
$this->evaluateStatement($xapiStatement, $cmixUser->getUsrId());

$this->log->debug('update lp for object (' . $this->object->getId() . ')');
if ($cmixUser->getUsrId() != ANONYMOUS_USER_ID) {
ilLPStatusWrapper::_updateStatus($this->object->getId(), $cmixUser->getUsrId());
$this->log->debug('update lp for object (' . $this->object->getId() . ')');
if ($cmixUser->getUsrId() != ANONYMOUS_USER_ID) {
ilLPStatusWrapper::_updateStatus($this->object->getId(), $cmixUser->getUsrId());
}
}
}
}

public function getCmixUser(object $xapiStatement): \ilCmiXapiUser
public function getCmixUser(object $xapiStatement): ?\ilCmiXapiUser
{
$cmixUser = null;
if ($this->object->getContentType() == ilObjCmiXapi::CONT_TYPE_CMI5) {
$cmixUser = ilCmiXapiUser::getInstanceByObjectIdAndUsrIdent(
$this->object->getId(),
$xapiStatement->actor->account->name
);
if (isset($xapiStatement->actor->account->name)) {
$cmixUser = ilCmiXapiUser::getInstanceByObjectIdAndUsrIdent(
$this->object->getId(),
$xapiStatement->actor->account->name
);
}
} else {
$cmixUser = ilCmiXapiUser::getInstanceByObjectIdAndUsrIdent(
$this->object->getId(),
Expand Down Expand Up @@ -135,9 +139,11 @@ public function evaluateStatement(object $xapiStatement, int $usrId): void
if (($xapiVerb == ilCmiXapiVerbList::COMPLETED || $xapiVerb == ilCmiXapiVerbList::PASSED) && $this->isLpModeInterestedInResultStatus($newResultStatus, false)) {
// it is possible to check against authToken usrId!
$cmixUser = $this->getCmixUser($xapiStatement);
$cmixUser->setSatisfied(true);
$cmixUser->save();
$this->sendSatisfiedStatement($cmixUser);
if ($cmixUser != null) {
$cmixUser->setSatisfied(true);
$cmixUser->save();
$this->sendSatisfiedStatement($cmixUser);
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Modules/CmiXapi/classes/class.ilCmiXapiResult.php
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ public static function getResultsForObject(int $objId): array

$results = [];

if ($row = $DIC->database()->fetchAssoc($res)) {
while ($row = $DIC->database()->fetchAssoc($res)) {
$result = new self();
$result->assignFromDbRow($row);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,13 +261,9 @@ protected function fillRow(array $a_set): void

if ($a_set["_front"]) {
$this->tpl->setCurrentBlock('view');
$this->tpl->setVariable("VIEW_IMAGE_LINK", $a_set["_front"]);
$this->tpl->setVariable(
"VIEW_IMAGE_SRC",
ilUtil::img(
ilUtil::getImagePath("media/enlarge.svg"),
$this->lng->txt('dcl_display_record_alt')
)
"VIEW_DETAILS",
$this->ui->renderer()->render($this->ui->factory()->symbol()->glyph()->search($a_set["_front"]))
);
$this->tpl->parseCurrentBlock();
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,172 +16,42 @@
*
*********************************************************************/


declare(strict_types=1);

/**
* Class ilDclCreateViewDefinitionGUI
* @ilCtrl_Calls ilDclCreateViewDefinitionGUI: ilPageEditorGUI, ilEditClipboardGUI, ilMediaPoolTargetSelector
* @ilCtrl_Calls ilDclCreateViewDefinitionGUI: ilPublicUserProfileGUI, ilPageObjectGUI
* @ilCtrl_IsCalledBy ilDclCreateViewDefinitionGUI: ilDclTableViewEditGUI
*/
class ilDclCreateViewDefinitionGUI extends ilPageObjectGUI
class ilDclCreateViewDefinitionGUI
{
public ilDclTableView $tableview;
protected ilDclCreateViewTableGUI $table_gui;
protected ilCtrl $ctrl;
protected int $tableview_id;
protected ilLanguage $lng;
protected ILIAS\HTTP\Services $http;
protected ILIAS\Refinery\Factory $refinery;
protected ilGlobalTemplateInterface $tpl;

public function __construct(int $tableview_id)
{
global $DIC;
$this->ctrl = $DIC->ctrl();
$this->tableview_id = $tableview_id;
$this->lng = $DIC->language();
$this->http = $DIC->http();
$this->refinery = $DIC->refinery();

$this->tpl = $DIC->ui()->mainTemplate();
$this->tableview = ilDclTableView::findOrGetInstance($tableview_id);

// we always need a page object - create on demand
if (!ilPageObject::_exists('dclf', $tableview_id)) {
$ref_id = $this->http->wrapper()->query()->retrieve('ref_id', $this->refinery->kindlyTo()->int());

$viewdef = new ilDclCreateViewDefinition();
$viewdef->setId($tableview_id);
$viewdef->setParentId(ilObject2::_lookupObjectId($ref_id));
$viewdef->setActive(false);
$viewdef->create();
}

parent::__construct("dclf", $tableview_id);

$table = new ilDclCreateViewTableGUI($this);
$this->table_gui = $table;
$this->tpl->setContent($table->getHTML());
}

public function executeCommand(): string
{
global $DIC;
$ilLocator = $DIC['ilLocator'];
$lng = $DIC['lng'];

$next_class = $this->ctrl->getNextClass($this);

$viewdef = $this->getPageObject();
$this->ctrl->setParameter($this, "dclv", $viewdef->getId());
$title = $lng->txt("dcl_view_viewdefinition");

switch ($next_class) {
case "ilpageobjectgui":
throw new ilCOPageException("Deprecated. ilDclDetailedViewDefinitionGUI gui forwarding to ilpageobject");
default:
$this->setPresentationTitle($title);
$ilLocator->addItem($title, $this->ctrl->getLinkTarget($this, "preview"));
return parent::executeCommand();
}
}

protected function activate(): void
{
$page = $this->getPageObject();
$page->setActive(true);
$page->update();
$this->ctrl->redirect($this, 'edit');
}

protected function deactivate(): void
{
$page = $this->getPageObject();
$page->setActive(false);
$page->update();
$this->ctrl->redirect($this, 'edit');
}

public function confirmDelete(): void
{
global $DIC;
$ilCtrl = $DIC['ilCtrl'];
$lng = $DIC['lng'];
$tpl = $DIC['tpl'];

$conf = new ilConfirmationGUI();
$conf->setFormAction($ilCtrl->getFormAction($this));
$conf->setHeaderText($lng->txt('dcl_confirm_delete_detailed_view_title'));

$conf->addItem('tableview', (string) $this->tableview_id, $lng->txt('dcl_confirm_delete_detailed_view_text'));

$conf->setConfirm($lng->txt('delete'), 'deleteView');
$conf->setCancel($lng->txt('cancel'), 'cancelDelete');

$tpl->setContent($conf->getHTML());
}

public function cancelDelete(): void
{
global $DIC;
$ilCtrl = $DIC['ilCtrl'];

$ilCtrl->redirect($this, "edit");
}

public function deleteView(): void
{
global $DIC;
$ilCtrl = $DIC['ilCtrl'];
$lng = $DIC['lng'];

if ($this->tableview_id && ilDclDetailedViewDefinition::exists($this->tableview_id)) {
$pageObject = new ilDclDetailedViewDefinition($this->tableview_id);
$pageObject->delete();
}

$this->tpl->setOnScreenMessage('success', $lng->txt("dcl_empty_detailed_view_success"), true);

// Bug fix for mantis 22537: Redirect to settings-tab instead of fields-tab. This solves the problem and is more intuitive.
$ilCtrl->redirectByClass("ilDclTableViewEditGUI", "editGeneralSettings");
}

/**
* Finalizing output processing
* @param string $a_output
* @return string
*/
public function postOutputProcessing(string $a_output): string
{
// You can use this to parse placeholders and the like before outputting

if ($this->getOutputMode() == ilPageObjectGUI::PREVIEW) {
//page preview is not being used inside DataCollections - if you are here, something's probably wrong

//
// // :TODO: find a suitable presentation for matched placeholders
// $allp = ilDataCollectionRecordViewViewdefinition::getAvailablePlaceholders($this->table_id, true);
// foreach ($allp as $id => $item) {
// $parsed_item = new ilTextInputGUI("", "fields[" . $item->getId() . "]");
// $parsed_item = $parsed_item->getToolbarHTML();
//
// $a_output = str_replace($id, $item->getTitle() . ": " . $parsed_item, $a_output);
// }
} // editor
else {
if ($this->getOutputMode() == ilPageObjectGUI::EDIT) {
$allp = $this->getPageObject()->getAvailablePlaceholders();

// :TODO: find a suitable markup for matched placeholders
foreach ($allp as $item) {
$a_output = str_replace($item, "<span style=\"color:green\">" . $item . "</span>", $a_output);
}
}
if ($this->ctrl->getCmd() === 'saveTable') {
$this->saveTable();
}
$table = new ilDclCreateViewTableGUI($this);
$this->tpl->setContent($table->getHTML());
return '';

return $a_output;
}

/**
* Save table entries
*/
public function saveTable(): void
{
$f = new ilDclDefaultValueFactory();
Expand Down
Loading