diff --git a/awx/ui/client/legacy-styles/ansible-ui.less b/awx/ui/client/legacy-styles/ansible-ui.less
index c2d59dc1b6..28b5d999ed 100644
--- a/awx/ui/client/legacy-styles/ansible-ui.less
+++ b/awx/ui/client/legacy-styles/ansible-ui.less
@@ -464,17 +464,6 @@ textarea.allowresize {
}
}
-.tooltip {
- z-index: 2050;
- opacity: 1.0;
-}
-
-.tooltip-inner {
- padding: 10px;
- text-align:left;
- max-width: 150px;
-}
-
.alert {
margin-top: 15px;
margin-bottom: 15px;
@@ -2031,40 +2020,6 @@ tr td button i {
padding-bottom: 5px;
}
-.tooltip.bottom .tooltip-arrow {
- border-bottom-color: @default-interface-txt;
-}
-
-
-.tooltip.top .tooltip-arrow {
- border-top-color: @default-interface-txt;
-}
-
-.tooltip.left .tooltip-arrow {
- border-left-color: @default-interface-txt;
-}
-
-.tooltip.right .tooltip-arrow {
- border-right-color: @default-interface-txt;
-}
-
-.tooltip.Tooltip.fade.bottom.in {
- opacity: 1;
- padding-top: 4px;
-}
-
-.tooltip.in {
- opacity: 1;
-}
-
-.tooltip-inner {
- background-color: @default-interface-txt;
-}
-
-.tooltip-inner--logOut {
- margin-left: -15px !important;
-}
-
.modal {
transition: all 0.3s ease-out !important;
}
diff --git a/awx/ui/client/src/inventories-hosts/inventories/list/host-summary-popover/host-summary-popover.directive.js b/awx/ui/client/src/inventories-hosts/inventories/list/host-summary-popover/host-summary-popover.directive.js
index ac0334cc64..e180289984 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/list/host-summary-popover/host-summary-popover.directive.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/list/host-summary-popover/host-summary-popover.directive.js
@@ -44,7 +44,7 @@ export default ['templateUrl', 'Wait', '$filter', '$compile', 'i18n',
}
scope.generateTable = function(data, event){
- var html, title = "Recent Jobs";
+ var html, title = (scope.inventory.has_active_failures) ? "Recent Failed Jobs" : "Recent Successful Jobs";
Wait('stop');
if (data.count > 0) {
html = "
\n";
@@ -60,10 +60,10 @@ export default ['templateUrl', 'Wait', '$filter', '$compile', 'i18n',
data.results.forEach(function(row) {
html += "\n";
html += " | \n";
+ ". Click for details\" aw-tip-placement=\"top\" data-tooltip-outer-class=\"Tooltip-secondary\">\n";
html += "" + ($filter('longDate')(row.finished)) + " | ";
html += "" + $filter('sanitize')(ellipsis(row.name)) + " | ";
+ ". Click for details\" aw-tip-placement=\"top\" data-tooltip-outer-class=\"Tooltip-secondary\">" + $filter('sanitize')(ellipsis(row.name)) + "";
html += "
\n";
});
html += "\n";
diff --git a/awx/ui/client/src/inventories-hosts/inventories/list/source-summary-popover/source-summary-popover.directive.js b/awx/ui/client/src/inventories-hosts/inventories/list/source-summary-popover/source-summary-popover.directive.js
index df340ddeda..391c9d20a8 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/list/source-summary-popover/source-summary-popover.directive.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/list/source-summary-popover/source-summary-popover.directive.js
@@ -61,14 +61,14 @@ export default ['templateUrl', '$compile', 'Wait', '$filter', 'i18n',
data.results.forEach( function(row) {
if (row.related.last_update) {
html += "";
- html += ` | `;
+ html += ` | `;
html += "" + ($filter('longDate')(row.last_updated)) + " | ";
html += "" + $filter('sanitize')(ellipsis(row.name)) + " | ";
html += "
\n";
}
else {
html += "";
- html += " | ";
+ html += " | ";
html += "NA | ";
html += "" + $filter('sanitize')(ellipsis(row.name)) + " | ";
html += "
\n";
diff --git a/awx/ui/client/src/shared/directives.js b/awx/ui/client/src/shared/directives.js
index 64f542c1d8..884b00dc9d 100644
--- a/awx/ui/client/src/shared/directives.js
+++ b/awx/ui/client/src/shared/directives.js
@@ -814,13 +814,12 @@ function(ConfigurationUtils, i18n, $rootScope) {
container = attrs.container ? attrs.container : 'body';
- var template, custom_class;
- if (attrs.tooltipInnerClass || attrs.tooltipinnerclass) {
- custom_class = attrs.tooltipInnerClass || attrs.tooltipinnerclass;
- template = '';
- } else {
- template = '';
- }
+ var template;
+
+ let tooltipInnerClass = (attrs.tooltipInnerClass || attrs.tooltipinnerclass) ? (attrs.tooltipInnerClass || attrs.tooltipinnerclass) : '';
+ let tooltipOuterClass = attrs.tooltipOuterClass ? attrs.tooltipOuterClass : '';
+
+ template = '';
// This block helps clean up tooltips that may get orphaned by a click event
$(element).on('mouseenter', function() {
diff --git a/awx/ui/client/src/tooltip/tooltip.block.less b/awx/ui/client/src/tooltip/tooltip.block.less
index e51483507a..bfc3cea871 100644
--- a/awx/ui/client/src/tooltip/tooltip.block.less
+++ b/awx/ui/client/src/tooltip/tooltip.block.less
@@ -1,4 +1,47 @@
/** @define Tooltip */
+.tooltip.bottom .tooltip-arrow {
+ border-bottom-color: @default-interface-txt;
+}
+
+.tooltip.top .tooltip-arrow {
+ border-top-color: @default-interface-txt;
+}
+
+.tooltip.left .tooltip-arrow {
+ border-left-color: @default-interface-txt;
+}
+
+.tooltip.right .tooltip-arrow {
+ border-right-color: @default-interface-txt;
+}
+
+.tooltip.Tooltip.fade.bottom.in {
+ opacity: 1;
+ padding-top: 4px;
+}
+
+.tooltip.in {
+ opacity: 1;
+}
+
+.tooltip-inner {
+ background-color: @default-interface-txt;
+}
+
+.tooltip-inner--logOut {
+ margin-left: -15px !important;
+}
+
+.tooltip {
+ z-index: 2050;
+ opacity: 1.0;
+}
+
+.tooltip-inner {
+ padding: 10px;
+ text-align:left;
+ max-width: 150px;
+}
.Tooltip-inner {
white-space: pre-wrap;
@@ -7,3 +50,33 @@
.Tooltip-wide {
max-width: 300px!important;
}
+
+.Tooltip-secondary {
+ .Tooltip-inner {
+ background-color: @default-icon;
+ }
+}
+
+.Tooltip-secondary.top {
+ .Tooltip-arrow {
+ border-top-color: @default-icon;
+ }
+}
+
+.Tooltip-secondary.bottom {
+ .Tooltip-arrow {
+ border-bottom-color: @default-icon;
+ }
+}
+
+.Tooltip-secondary.left {
+ .Tooltip-arrow {
+ border-left-color: @default-icon;
+ }
+}
+
+.Tooltip-secondary.right {
+ .Tooltip-arrow {
+ border-right-color: @default-icon;
+ }
+}