diff --git a/awx/ui/client/lib/components/layout/_index.less b/awx/ui/client/lib/components/layout/_index.less index 7b6e167f8a..f495b46876 100644 --- a/awx/ui/client/lib/components/layout/_index.less +++ b/awx/ui/client/lib/components/layout/_index.less @@ -91,25 +91,33 @@ overflow-y: auto; max-height: 100vh; min-width: @at-width-collapsed-side-nav; + z-index: @at-z-index-side-nav; .at-Layout-sideNavItem { display: flex; cursor: pointer; - i { - font-size: @at-height-side-nav-item-icon; - padding: @at-padding-side-nav-item-icon; - } - - &:hover, - &.is-active { - background: @at-color-side-nav-item-background-hover; - border-left: @at-highlight-left-border-size solid @at-color-side-nav-item-border-hover; + > i.fa { + padding-left: 20px; + } i { - margin-left: @at-highlight-left-border-margin-makeup; + cursor: pointer; + color: @at-color-side-nav-content; + font-size: @at-height-side-nav-item-icon; + padding: @at-padding-side-nav-item-icon; + } + + &:hover, + &.is-active { + background: @at-color-side-nav-item-background-hover; + border-left: @at-highlight-left-border-size solid @at-color-side-nav-item-border-hover; + + i { + color: @at-color-side-nav-content; + margin-left: @at-highlight-left-border-margin-makeup; + } } - } } .at-Layout-sideNavSpacer { diff --git a/awx/ui/client/lib/components/layout/side-nav-item.directive.js b/awx/ui/client/lib/components/layout/side-nav-item.directive.js index 0f881049ca..45029b87d2 100644 --- a/awx/ui/client/lib/components/layout/side-nav-item.directive.js +++ b/awx/ui/client/lib/components/layout/side-nav-item.directive.js @@ -7,7 +7,7 @@ function atSideNavItemLink (scope, element, attrs, ctrl) { function AtSideNavItemController ($state, $scope) { let vm = this || {}; - + vm.popoverText = $scope.name.replace(/_/g,' '); $scope.$watch('layoutVm.currentState', function(current) { if ($scope.name === 'portal mode') { vm.isRoute = (current && current.indexOf('portalMode') === 0); @@ -27,6 +27,16 @@ function AtSideNavItemController ($state, $scope) { vm.go = function() { $state.go($scope.route, {}, {reload: true}); } + + vm.tooltip = { + popover: { + text: vm.popoverText, + on: 'mouseenter', + icon: $scope.iconClass, + position: 'right', + arrowHeight: 18 + } + } } AtSideNavItemController.$inject = ['$state', '$scope']; diff --git a/awx/ui/client/lib/components/layout/side-nav-item.partial.html b/awx/ui/client/lib/components/layout/side-nav-item.partial.html index 80c4dfec73..cea8489b5c 100644 --- a/awx/ui/client/lib/components/layout/side-nav-item.partial.html +++ b/awx/ui/client/lib/components/layout/side-nav-item.partial.html @@ -1,8 +1,10 @@
- - - {{ layoutVm.getString(name) }} - + + + + + {{ layoutVm.getString(name) }} +
diff --git a/awx/ui/client/lib/components/layout/side-nav.directive.js b/awx/ui/client/lib/components/layout/side-nav.directive.js index 26e03cc47b..daeb334b3f 100644 --- a/awx/ui/client/lib/components/layout/side-nav.directive.js +++ b/awx/ui/client/lib/components/layout/side-nav.directive.js @@ -7,7 +7,7 @@ function atSideNavLink (scope, element, attrs, ctrl) { function AtSideNavController () { let vm = this || {}; - vm.isExpanded = true; + vm.isExpanded = false; vm.toggleExpansion = () => { vm.isExpanded = !vm.isExpanded; diff --git a/awx/ui/client/lib/components/popover/popover.directive.js b/awx/ui/client/lib/components/popover/popover.directive.js index c07086b427..c9eb13c368 100644 --- a/awx/ui/client/lib/components/popover/popover.directive.js +++ b/awx/ui/client/lib/components/popover/popover.directive.js @@ -43,6 +43,7 @@ function AtPopoverController () { scope.popover.icon = scope.popover.icon || DEFAULT_ICON; scope.popover.on = scope.popover.on || DEFAULT_ACTION; scope.popover.resetOnExit = scope.popover.resetOnExit || DEFAULT_RESET_ON_EXIT; + scope.popover.arrowHeight = scope.popover.arrowHeight || DEFAULT_ARROW_HEIGHT; if (scope.popover.resetOnExit) { scope.originalText = scope.popover.text; @@ -138,7 +139,7 @@ function AtPopoverController () { let arrow = popover.getElementsByClassName('at-Popover-arrow')[0]; arrow.style.lineHeight = `${DEFAULT_ARROW_HEIGHT}px`; - arrow.children[0].style.lineHeight = `${DEFAULT_ARROW_HEIGHT}px`; + arrow.children[0].style.lineHeight = `${scope.popover.arrowHeight}px`; let data = { arrow, @@ -149,6 +150,7 @@ function AtPopoverController () { data.cx = Math.floor(data.icon.left + (data.icon.width / 2)); data.cy = Math.floor(data.icon.top + (data.icon.height / 2)); + data.rightBoundary = Math.floor(data.icon.right); return data; }; @@ -161,7 +163,7 @@ function AtPopoverController () { popover.style.visibility = 'visible'; popover.style.opacity = 1; - if (scope.popover.position === 'right') { + if (scope.popover.position === 'right') { vm.displayRight(positions); } else if (scope.popover.position === 'top') { vm.displayTop(positions); @@ -169,8 +171,8 @@ function AtPopoverController () { }; vm.displayRight = (pos) => { - let arrowTop = Math.floor((pos.cy - (pos.icon.height / 2))); - let arrowLeft = pos.cx + DEFAULT_PADDING; + let arrowHeight = pos.arrow.offsetHeight; + let arrowLeft = pos.rightBoundary + DEFAULT_PADDING; let popoverTop; let popoverLeft = arrowLeft + DEFAULT_PADDING - 1; @@ -181,6 +183,8 @@ function AtPopoverController () { popoverTop = Math.floor((pos.cy - pos.popover.height / 2)); } + let arrowTop = Math.floor(popoverTop + (pos.popover.height / 2) - (arrowHeight / 2)); + pos.arrow.style.top = `${arrowTop}px`; pos.arrow.style.left = `${arrowLeft}px`; diff --git a/awx/ui/client/lib/components/popover/popover.partial.html b/awx/ui/client/lib/components/popover/popover.partial.html index cc96f34d65..dabf0df2a7 100644 --- a/awx/ui/client/lib/components/popover/popover.partial.html +++ b/awx/ui/client/lib/components/popover/popover.partial.html @@ -1,16 +1,16 @@
- - +
- - +
+
-

{{ popover.title | translate }}

-

{{ popover.text | translate}}

+

{{ popover.title }}

+

{{ popover.text }}

diff --git a/awx/ui/client/lib/theme/_variables.less b/awx/ui/client/lib/theme/_variables.less index 5660870ca6..5bdbec8fda 100644 --- a/awx/ui/client/lib/theme/_variables.less +++ b/awx/ui/client/lib/theme/_variables.less @@ -244,4 +244,6 @@ @at-highlight-left-border-size: 5px; @at-highlight-left-border-margin-makeup: -5px; @at-z-index-nav: 1040; +@at-z-index-side-nav: 1030; +@at-z-index-footer: 1020; @at-border-default-width: 1px;