diff --git a/components/ILIAS/UI/src/Implementation/Component/Input/Field/Duration.php b/components/ILIAS/UI/src/Implementation/Component/Input/Field/Duration.php index 5aca3ece6537..43d940ffe278 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Input/Field/Duration.php +++ b/components/ILIAS/UI/src/Implementation/Component/Input/Field/Duration.php @@ -301,7 +301,19 @@ public function getUpdateOnLoadCode(): Closure return fn($id) => "var combinedDuration = function() { var options = []; $('#$id').find('input').each(function() { - options.push($(this).val()); + const value = $(this).val(); + if (value == '') { + options.push(''); + return; + } + const date = new Date(value); + var readable_value = ''; + if (value.includes('T')) { + readable_value = date.toLocaleString([], { dateStyle: 'short', timeStyle: 'short' }); + } else { + readable_value = date.toLocaleDateString(); + } + options.push(readable_value); }); return options.join(' - '); } diff --git a/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php b/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php index f65d35f0a9a2..5067cd338290 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php @@ -158,7 +158,7 @@ protected function wrapInFilterContext( $tpl->parseCurrentBlock(); $tpl->setCurrentBlock("filter_field"); if ($component->isComplex()) { - $tpl->setVariable("FILTER_FIELD", $this->renderProxyField($input_html, $default_renderer)); + $tpl->setVariable("FILTER_FIELD", $this->renderProxyField($component, $input_html, $default_renderer)); } else { $tpl->setVariable("FILTER_FIELD", $input_html); } @@ -176,6 +176,7 @@ protected function maybeDisable(FormInput $component, Template $tpl): void } protected function renderProxyField( + FormInput $component, string $input_html, RendererInterface $default_renderer ): string { @@ -183,6 +184,9 @@ protected function renderProxyField( $tpl = $this->getTemplate("tpl.filter_field.html", true, true); $popover = $f->popover()->standard($f->legacy($input_html))->withVerticalPosition(); + if ($component->getOnLoadCode() !== null) { + $popover = $popover->withAdditionalOnLoadCode($component->getOnLoadCode()); + } $tpl->setVariable("POPOVER", $default_renderer->render($popover)); $prox = new ProxyFilterField();