diff --git a/src/bundle/Resources/public/js/scripts/helpers/tooltips.helper.js b/src/bundle/Resources/public/js/scripts/helpers/tooltips.helper.js index b34575d4ba..ac71f512e4 100644 --- a/src/bundle/Resources/public/js/scripts/helpers/tooltips.helper.js +++ b/src/bundle/Resources/public/js/scripts/helpers/tooltips.helper.js @@ -123,6 +123,12 @@ const isTitleEllipsized = (node) => { return textHeight > nodeHeight; }; +const getContainer = (tooltipNode) => { + const { tooltipContainerSelector } = tooltipNode.dataset; + const container = tooltipNode.closest(tooltipContainerSelector); + + return container ?? doc.body; +}; const initializeTooltip = (tooltipNode, hasEllipsisStyle) => { const { delayShow, delayHide } = tooltipNode.dataset; const delay = { @@ -134,9 +140,7 @@ const initializeTooltip = (tooltipNode, hasEllipsisStyle) => { const placement = tooltipNode.dataset.tooltipPlacement ?? 'bottom'; const trigger = tooltipNode.dataset.tooltipTrigger ?? 'hover'; const useHtml = tooltipNode.dataset.tooltipUseHtml !== undefined; - const container = tooltipNode.dataset.tooltipContainerSelector - ? tooltipNode.closest(tooltipNode.dataset.tooltipContainerSelector) - : 'body'; + const container = getContainer(tooltipNode); const iframe = document.querySelector(tooltipNode.dataset.tooltipIframeSelector); new bootstrap.Tooltip(tooltipNode, { diff --git a/src/lib/Menu/Action/VersionListActionMenuBuilder.php b/src/lib/Menu/Action/VersionListActionMenuBuilder.php index 9fd0f37bbc..f503a3f23c 100644 --- a/src/lib/Menu/Action/VersionListActionMenuBuilder.php +++ b/src/lib/Menu/Action/VersionListActionMenuBuilder.php @@ -99,6 +99,8 @@ private function createEditDraftAction( bool $isDraftConflict = false ): ItemInterface { $parameters['attributes']['class'] = self::IBEXA_BTN_CONTENT_DRAFT_EDIT_CLASS; + $parameters['attributes']['data-tooltip-container-selector'] = '.ibexa-modal'; + if ($isDraftConflict) { return $this->createDraftEditLinkAction($versionInfo, self::ITEM_EDIT_DRAFT, $parameters, $locationId); } diff --git a/tests/lib/Menu/Action/BaseActionMenuBuilderTest.php b/tests/lib/Menu/Action/BaseActionMenuBuilderTest.php index 8a0538ebfc..1aa55ce042 100644 --- a/tests/lib/Menu/Action/BaseActionMenuBuilderTest.php +++ b/tests/lib/Menu/Action/BaseActionMenuBuilderTest.php @@ -96,7 +96,7 @@ protected function assertActionItemSame( self::assertSame($url, $actionItem->getUri()); self::assertSame($itemName, $actionItem->getLabel()); self::assertSame($extras, $actionItem->getExtras()); - self::assertSame($attributes, $actionItem->getAttributes()); + self::assertEquals($attributes, $actionItem->getAttributes()); } protected function createVersionInfo(int $status = ApiVersionInfo::STATUS_DRAFT): ApiVersionInfo diff --git a/tests/lib/Menu/Action/VersionListActionMenuBuilderTest.php b/tests/lib/Menu/Action/VersionListActionMenuBuilderTest.php index 28e2b17eeb..16acac64c6 100644 --- a/tests/lib/Menu/Action/VersionListActionMenuBuilderTest.php +++ b/tests/lib/Menu/Action/VersionListActionMenuBuilderTest.php @@ -104,7 +104,10 @@ public function provideDataForTestBuildVersionListActionMenu(): iterable self::EDIT_ACTION_ITEM_EXTRAS, array_merge( self::EDIT_ACTION_ITEM_ATTRIBUTES, - ['data-content-draft-edit-url' => '/content/edit/draft/1/1/eng-GB'] + [ + 'data-tooltip-container-selector' => '.ibexa-modal', + 'data-content-draft-edit-url' => '/content/edit/draft/1/1/eng-GB', + ] ), ]; @@ -118,7 +121,10 @@ public function provideDataForTestBuildVersionListActionMenu(): iterable self::EDIT_ACTION_ITEM_EXTRAS, array_merge( self::EDIT_ACTION_ITEM_ATTRIBUTES, - ['data-content-draft-edit-url' => '/content/edit/draft/1/1/eng-GB/5'] + [ + 'data-content-draft-edit-url' => '/content/edit/draft/1/1/eng-GB/5', + 'data-tooltip-container-selector' => '.ibexa-modal', + ] ), ]; @@ -130,7 +136,10 @@ public function provideDataForTestBuildVersionListActionMenu(): iterable self::ITEM_EDIT_DRAFT, '/content/edit/draft/1/1/eng-GB', self::EDIT_ACTION_ITEM_EXTRAS, - ['class' => self::IBEXA_BTN_CONTENT_DRAFT_EDIT_CLASS], + [ + 'class' => self::IBEXA_BTN_CONTENT_DRAFT_EDIT_CLASS, + 'data-tooltip-container-selector' => '.ibexa-modal', + ], ]; yield 'Restore version action item' => [ @@ -166,7 +175,10 @@ public function testAddUserUpdateItemAction(): void self::EDIT_ACTION_ITEM_EXTRAS, array_merge( self::EDIT_ACTION_ITEM_ATTRIBUTES, - ['data-content-draft-edit-url' => '/user/update/1/1/eng-GB'] + [ + 'data-tooltip-container-selector' => '.ibexa-modal', + 'data-content-draft-edit-url' => '/user/update/1/1/eng-GB', + ] ) ); }