diff --git a/src/bundle/Resources/public/js/scripts/core/dropdown.js b/src/bundle/Resources/public/js/scripts/core/dropdown.js index 1c32ebfa15..4844fc5898 100644 --- a/src/bundle/Resources/public/js/scripts/core/dropdown.js +++ b/src/bundle/Resources/public/js/scripts/core/dropdown.js @@ -419,7 +419,6 @@ }, { dropdown: this }, ); - this.itemsPopover._element.removeAttribute('data-bs-original-title'); this.itemsPopover._element.removeAttribute('title'); if (this.isDynamic) { 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 230eae7f87..22fae864a2 100644 --- a/src/bundle/Resources/public/js/scripts/helpers/tooltips.helper.js +++ b/src/bundle/Resources/public/js/scripts/helpers/tooltips.helper.js @@ -117,6 +117,8 @@ : 'body'; const iframe = document.querySelector(tooltipNode.dataset.tooltipIframeSelector); + tooltipNode.dataset.originalTitle = tooltipNode.title; + new bootstrap.Tooltip(tooltipNode, { delay, placement, diff --git a/src/bundle/Resources/public/js/scripts/sidebar/main.menu.js b/src/bundle/Resources/public/js/scripts/sidebar/main.menu.js index d3f4ec90c7..5d27b4ff14 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/main.menu.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/main.menu.js @@ -108,8 +108,6 @@ if (firstLevelMenuNode.classList.contains('ibexa-main-menu__navbar--collapsed')) { item.setAttribute('title', label); - } else { - item.removeAttribute('data-bs-original-title'); } ibexa.helpers.tooltips.parse(mainMenuNode); diff --git a/src/bundle/Resources/public/scss/_custom.tooltip.scss b/src/bundle/Resources/public/scss/_custom.tooltip.scss index 43518598f0..48e48ffcee 100644 --- a/src/bundle/Resources/public/scss/_custom.tooltip.scss +++ b/src/bundle/Resources/public/scss/_custom.tooltip.scss @@ -5,35 +5,47 @@ opacity: 1; } - &.bs-tooltip-top &__arrow { - height: calculateRem(8px); + &.bs-tooltip-top, + &[data-popper-placement='top'] { + .ibexa-tooltip__arrow { + height: calculateRem(8px); - &::before { - border-top-color: $ibexa-color-white; + &::before { + border-top-color: $ibexa-color-white; + } } } - &.bs-tooltip-end &__arrow { - width: calculateRem(8px); + &.bs-tooltip-end, + &[data-popper-placement='right'] { + .ibexa-tooltip__arrow { + width: calculateRem(8px); - &::before { - border-right-color: $ibexa-color-white; + &::before { + border-right-color: $ibexa-color-white; + } } } - &.bs-tooltip-bottom &__arrow { - height: calculateRem(8px); + &.bs-tooltip-bottom, + &[data-popper-placement='bottom'] { + .ibexa-tooltip__arrow { + height: calculateRem(8px); - &::before { - border-bottom-color: $ibexa-color-white; + &::before { + border-bottom-color: $ibexa-color-white; + } } } - &.bs-tooltip-start &__arrow { - width: calculateRem(8px); + &.bs-tooltip-start, + &[data-popper-placement='left'] { + .ibexa-tooltip__arrow { + width: calculateRem(8px); - &::before { - border-left-color: $ibexa-color-white; + &::before { + border-left-color: $ibexa-color-white; + } } } @@ -59,27 +71,39 @@ } &.ibexa-tooltip { - &.bs-tooltip-top .ibexa-tooltip__arrow { - &::before { - border-top-color: $ibexa-color-complementary-strong; + &.bs-tooltip-top, + &[data-popper-placement='top'] { + .ibexa-tooltip__arrow { + &::before { + border-top-color: $ibexa-color-complementary-strong; + } } } - &.bs-tooltip-end .ibexa-tooltip__arrow { - &::before { - border-right-color: $ibexa-color-complementary-strong; + &.bs-tooltip-end, + &[data-popper-placement='right'] { + .ibexa-tooltip__arrow { + &::before { + border-right-color: $ibexa-color-complementary-strong; + } } } - &.bs-tooltip-bottom .ibexa-tooltip__arrow { - &::before { - border-bottom-color: $ibexa-color-complementary-strong; + &.bs-tooltip-bottom, + &[data-popper-placement='bottom'] { + .ibexa-tooltip__arrow { + &::before { + border-bottom-color: $ibexa-color-complementary-strong; + } } } - &.bs-tooltip-start .ibexa-tooltip__arrow { - &::before { - border-left-color: $ibexa-color-complementary-strong; + &.bs-tooltip-start, + &[data-popper-placement='left'] { + .ibexa-tooltip__arrow { + &::before { + border-left-color: $ibexa-color-complementary-strong; + } } } } @@ -96,27 +120,39 @@ } &.ibexa-tooltip { - &.bs-tooltip-top .ibexa-tooltip__arrow { - &::before { - border-top-color: $ibexa-color-info; + &.bs-tooltip-top, + &[data-popper-placement='top'] { + .ibexa-tooltip__arrow { + &::before { + border-top-color: $ibexa-color-info; + } } } - &.bs-tooltip-end .ibexa-tooltip__arrow { - &::before { - border-right-color: $ibexa-color-info; + &.bs-tooltip-end, + &[data-popper-placement='right'] { + .ibexa-tooltip__arrow { + &::before { + border-right-color: $ibexa-color-info; + } } } - &.bs-tooltip-bottom .ibexa-tooltip__arrow { - &::before { - border-bottom-color: $ibexa-color-info; + &.bs-tooltip-bottom, + &[data-popper-placement='bottom'] { + .ibexa-tooltip__arrow { + &::before { + border-bottom-color: $ibexa-color-info; + } } } - &.bs-tooltip-start .ibexa-tooltip__arrow { - &::before { - border-left-color: $ibexa-color-info; + &.bs-tooltip-start, + &[data-popper-placement='left'] { + .ibexa-tooltip__arrow { + &::before { + border-left-color: $ibexa-color-info; + } } } } diff --git a/src/lib/Behat/Component/LeftMenu.php b/src/lib/Behat/Component/LeftMenu.php index b801f63ce9..abf9cc8748 100644 --- a/src/lib/Behat/Component/LeftMenu.php +++ b/src/lib/Behat/Component/LeftMenu.php @@ -21,7 +21,7 @@ class LeftMenu extends Component public function goToTab(string $tabName): void { $buttonCriteron = new LogicalOrCriterion([ - new ElementAttributeCriterion('data-bs-original-title', $tabName), + new ElementAttributeCriterion('data-original-title', $tabName), new ElementTextCriterion($tabName), ]); diff --git a/src/lib/Behat/Component/Table/TableRow.php b/src/lib/Behat/Component/Table/TableRow.php index 13f9ee06a5..ae52bd92a4 100644 --- a/src/lib/Behat/Component/Table/TableRow.php +++ b/src/lib/Behat/Component/Table/TableRow.php @@ -82,8 +82,8 @@ protected function specifyLocators(): array return [ new VisibleCSSLocator('link', 'a'), new VisibleCSSLocator('checkbox', 'input[type=checkbox]'), - new VisibleCSSLocator('assign', '[data-bs-original-title="Assign content"],[data-bs-original-title="Assign to Users/Groups"]'), - new VisibleCSSLocator('edit', '.ibexa-icon--edit,[data-bs-original-title="Edit"]'), + new VisibleCSSLocator('assign', '[data-original-title="Assign content"],[data-original-title="Assign to Users/Groups"]'), + new VisibleCSSLocator('edit', '.ibexa-icon--edit,[data-original-title="Edit"]'), ]; } } diff --git a/src/lib/Behat/Component/UniversalDiscoveryWidget.php b/src/lib/Behat/Component/UniversalDiscoveryWidget.php index 7157c95984..0d537b16f8 100644 --- a/src/lib/Behat/Component/UniversalDiscoveryWidget.php +++ b/src/lib/Behat/Component/UniversalDiscoveryWidget.php @@ -134,7 +134,7 @@ public function isBookmarked(): bool public function changeTab($tabName): void { $this->getHTMLPage()->findAll($this->getLocator('categoryTabSelector')) - ->getByCriterion(new ElementAttributeCriterion('data-bs-original-title', $tabName))->click(); + ->getByCriterion(new ElementAttributeCriterion('data-original-title', $tabName))->click(); $this->getHTMLPage()->findAll($this->getLocator('selectedTab')) ->getByCriterion(new ElementAttributeCriterion('title', $tabName))->assert()->isVisible(); } diff --git a/src/lib/Behat/Page/ContentTypeGroupPage.php b/src/lib/Behat/Page/ContentTypeGroupPage.php index 34fa8468b9..1eec04cbf8 100644 --- a/src/lib/Behat/Page/ContentTypeGroupPage.php +++ b/src/lib/Behat/Page/ContentTypeGroupPage.php @@ -130,7 +130,7 @@ protected function specifyLocators(): array new VisibleCSSLocator('createButton', '.ibexa-icon--create'), new VisibleCSSLocator('listHeader', '.ibexa-table-header .ibexa-table-header__headline, header .ibexa-table__headline, header h5'), new VisibleCSSLocator('tableContainer', '.ibexa-container'), - new VisibleCSSLocator('deleteButton', '.ibexa-icon--trash,button[data-bs-original-title^="Delete"]'), + new VisibleCSSLocator('deleteButton', '.ibexa-icon--trash,button[data-original-title^="Delete"]'), new VisibleCSSLocator('tableItem', '.ibexa-main-container tbody tr'), new VisibleCSSLocator('contentTypeLabel', '.ibexa-table__cell > a'), ]; diff --git a/src/lib/Behat/Page/ContentTypeGroupsPage.php b/src/lib/Behat/Page/ContentTypeGroupsPage.php index 163a366acf..3969d7fb4f 100644 --- a/src/lib/Behat/Page/ContentTypeGroupsPage.php +++ b/src/lib/Behat/Page/ContentTypeGroupsPage.php @@ -87,7 +87,7 @@ protected function specifyLocators(): array new VisibleCSSLocator('pageTitle', '.ibexa-page-title h1'), new VisibleCSSLocator('listHeader', '.ibexa-table-header .ibexa-table-header__headline, header .ibexa-table__headline, header h5'), new VisibleCSSLocator('createButton', '.ibexa-icon--create'), - new VisibleCSSLocator('trashButton', '.ibexa-icon--trash,button[data-bs-original-title^="Delete"]'), + new VisibleCSSLocator('trashButton', '.ibexa-icon--trash,button[data-original-title^="Delete"]'), ]; } } diff --git a/src/lib/Behat/Page/LanguagePage.php b/src/lib/Behat/Page/LanguagePage.php index be5c087508..b0e6a442bb 100644 --- a/src/lib/Behat/Page/LanguagePage.php +++ b/src/lib/Behat/Page/LanguagePage.php @@ -107,9 +107,9 @@ protected function specifyLocators(): array { return [ new VisibleCSSLocator('pageTitle', '.ibexa-page-title h1'), - new VisibleCSSLocator('deleteButton', 'button[data-bs-original-title="Delete language"]'), - new VisibleCSSLocator('editButton', '[data-bs-original-title="Edit"]'), - new VisibleCSSLocator('enabledField', 'input[data-bs-original-title="Enabled"]'), + new VisibleCSSLocator('deleteButton', 'button[data-original-title="Delete language"]'), + new VisibleCSSLocator('editButton', '[data-original-title="Edit"]'), + new VisibleCSSLocator('enabledField', 'input[data-original-title="Enabled"]'), ]; } } diff --git a/src/lib/Behat/Page/LanguagesPage.php b/src/lib/Behat/Page/LanguagesPage.php index 89a8065f82..321a602aaf 100644 --- a/src/lib/Behat/Page/LanguagesPage.php +++ b/src/lib/Behat/Page/LanguagesPage.php @@ -82,7 +82,7 @@ protected function specifyLocators(): array new VisibleCSSLocator('pageTitle', '.ibexa-page-title h1'), new VisibleCSSLocator('listHeader', '.ibexa-table-header .ibexa-table-header__headline, header .ibexa-table__headline, header h5'), new VisibleCSSLocator('createButton', '.ibexa-icon--create'), - new VisibleCSSLocator('deleteButton', '.ibexa-icon--trash,button[data-bs-original-title^="Delete"]'), + new VisibleCSSLocator('deleteButton', '.ibexa-icon--trash,button[data-original-title^="Delete"]'), ]; } } diff --git a/src/lib/Behat/Page/SectionsPage.php b/src/lib/Behat/Page/SectionsPage.php index e0346a0d54..3dd0babe13 100644 --- a/src/lib/Behat/Page/SectionsPage.php +++ b/src/lib/Behat/Page/SectionsPage.php @@ -93,7 +93,7 @@ protected function specifyLocators(): array return [ new VisibleCSSLocator('pageTitle', '.ibexa-page-title h1'), new VisibleCSSLocator('createButton', '.ibexa-icon--create'), - new VisibleCSSLocator('deleteButton', '.ibexa-icon--trash,button[data-bs-original-title^="Delete"]'), + new VisibleCSSLocator('deleteButton', '.ibexa-icon--trash,button[data-original-title^="Delete"]'), new VisibleCSSLocator('tableContainer', '.ibexa-container'), new VisibleCSSLocator('scrollableContainer', '.ibexa-back-to-top-scroll-container'), ]; diff --git a/src/lib/Behat/Page/UserSettingsPage.php b/src/lib/Behat/Page/UserSettingsPage.php index c22c1bd5f4..6e054a1c1f 100644 --- a/src/lib/Behat/Page/UserSettingsPage.php +++ b/src/lib/Behat/Page/UserSettingsPage.php @@ -66,7 +66,7 @@ public function openAutosaveDraftEditionPage(): void $this->getHTMLPage() ->findAll(new VisibleCSSLocator('settingsSection', '#ibexa-tab-my-preferences .ibexa-details')) ->getByCriterion(new ChildElementTextCriterion(new VisibleCSSLocator('settingHeader', '.ibexa-table-header'), 'Edit Content')) - ->find(new VisibleCSSLocator('editButton', '[data-bs-original-title="Edit"]')) + ->find(new VisibleCSSLocator('editButton', '[data-original-title="Edit"]')) ->click(); }