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;