mirror of
https://github.com/ansible/awx.git
synced 2026-02-14 17:50:02 -03:30
[system_tracking] Display all facts for latest scan when no diffs
This commit is contained in:
@@ -41,7 +41,9 @@ export function compareFacts(module, facts) {
|
|||||||
.unique('displayKeyPath')
|
.unique('displayKeyPath')
|
||||||
.thru(function(result) {
|
.thru(function(result) {
|
||||||
return { factData: result,
|
return { factData: result,
|
||||||
isNestedDisplay: _.isPlainObject(renderOptions.factTemplate)
|
isNestedDisplay: _.isPlainObject(renderOptions.factTemplate),
|
||||||
|
leftData: facts[0].facts,
|
||||||
|
rightData: facts[1].facts
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
.value();
|
.value();
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ export default
|
|||||||
leftDataNoScans: '=',
|
leftDataNoScans: '=',
|
||||||
rightDataNoScans: '=',
|
rightDataNoScans: '=',
|
||||||
isNestedDisplay: '=',
|
isNestedDisplay: '=',
|
||||||
|
singleResultView: '=',
|
||||||
factData: '='
|
factData: '='
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
<section class="FactDataTable SystemTrackingContainer-main" ng-if="!error">
|
<section class="FactDataTable SystemTrackingContainer-main" ng-if="!error">
|
||||||
|
<div class="alert alert-info" ng-if="singleResultView">
|
||||||
|
The selected fact scans were identical for this module. Showing all facts from the latest selected scan instead.
|
||||||
|
</div>
|
||||||
<div class="FactDataTable-headingRow">
|
<div class="FactDataTable-headingRow">
|
||||||
<h3 class="FactDataTable-column FactDataTableHeading">
|
<h3 class="FactDataTable-column FactDataTableHeading">
|
||||||
<span class="FactDataTableHeading-label">
|
<span class="FactDataTableHeading-label">
|
||||||
@@ -10,7 +13,7 @@
|
|||||||
<span class="FactDataTableHeading-host" ng-if="!leftDataNoScans">{{leftHostname}}</span>
|
<span class="FactDataTableHeading-host" ng-if="!leftDataNoScans">{{leftHostname}}</span>
|
||||||
<span class="FactDataTableHeading-date">{{leftScanDate|longDate}}</span>
|
<span class="FactDataTableHeading-date">{{leftScanDate|longDate}}</span>
|
||||||
</h3>
|
</h3>
|
||||||
<h3 class="FactDataTable-column FactDataTableHeading">
|
<h3 class="FactDataTable-column FactDataTableHeading" ng-if="!singleResultView">
|
||||||
<span ng-if="rightDataNoScans">No scans for {{rightHostname}} on</span>
|
<span ng-if="rightDataNoScans">No scans for {{rightHostname}} on</span>
|
||||||
<span class="FactDataTableHeading-host" ng-if="!rightDataNoScans">{{rightHostname}}</span>
|
<span class="FactDataTableHeading-host" ng-if="!rightDataNoScans">{{rightHostname}}</span>
|
||||||
<span class="FactDataTableHeading-date">{{rightScanDate|longDate}}</span>
|
<span class="FactDataTableHeading-date">{{rightScanDate|longDate}}</span>
|
||||||
@@ -25,7 +28,7 @@
|
|||||||
{{value}}
|
{{value}}
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="FactDataTable-column FactDataTable-columnArray">
|
<span class="FactDataTable-column FactDataTable-columnArray" ng-if="!singleResultView">
|
||||||
<span class="FactDataTable-columnMember" ng-repeat="value in group.facts.value2">
|
<span class="FactDataTable-columnMember" ng-repeat="value in group.facts.value2">
|
||||||
{{value}}
|
{{value}}
|
||||||
</span>
|
</span>
|
||||||
@@ -34,7 +37,7 @@
|
|||||||
<div class="FactDataTable-row" ng-if="!group.containsValueArray">
|
<div class="FactDataTable-row" ng-if="!group.containsValueArray">
|
||||||
<span class="FactDataTable-column">{{group.facts.keyName}}</span>
|
<span class="FactDataTable-column">{{group.facts.keyName}}</span>
|
||||||
<span class="FactDataTable-column">{{group.facts.value1}}</span>
|
<span class="FactDataTable-column">{{group.facts.value1}}</span>
|
||||||
<span class="FactDataTable-column">{{group.facts.value2}}</span>
|
<span class="FactDataTable-column" ng-if="!singleResultView">{{group.facts.value2}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
13
awx/ui/static/js/system-tracking/format-facts.js
Normal file
13
awx/ui/static/js/system-tracking/format-facts.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
export function formatFactForDisplay(fact, renderOptions) {
|
||||||
|
|
||||||
|
var factTemplate = renderOptions.factTemplate;
|
||||||
|
|
||||||
|
var template = factTemplate;
|
||||||
|
|
||||||
|
// if (!renderOptions.supportsValueArray) {
|
||||||
|
// comparatorFact = comparatorFact[0];
|
||||||
|
// }
|
||||||
|
|
||||||
|
return template.render(fact);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
import {searchDateRange} from './search-date-range';
|
import {searchDateRange} from './search-date-range';
|
||||||
import {compareFacts} from './compare-facts/main';
|
import {compareFacts} from './compare-facts/main';
|
||||||
|
import {formatFactForDisplay} from './format-facts';
|
||||||
|
import FactTemplate from './compare-facts/fact-template';
|
||||||
|
|
||||||
function controller($rootScope,
|
function controller($rootScope,
|
||||||
$scope,
|
$scope,
|
||||||
@@ -75,6 +77,8 @@ function controller($rootScope,
|
|||||||
$scope.leftDateWarning = false;
|
$scope.leftDateWarning = false;
|
||||||
$scope.rightDateWarning = false;
|
$scope.rightDateWarning = false;
|
||||||
|
|
||||||
|
$scope.singleFactOnly = false;
|
||||||
|
|
||||||
waitIndicator('start');
|
waitIndicator('start');
|
||||||
|
|
||||||
return getDataForComparison(
|
return getDataForComparison(
|
||||||
@@ -173,17 +177,76 @@ function controller($rootScope,
|
|||||||
$scope.error = null;
|
$scope.error = null;
|
||||||
|
|
||||||
if (_.isEmpty(info.factData)) {
|
if (_.isEmpty(info.factData)) {
|
||||||
info = _.reject({
|
// info = _.reject({
|
||||||
name: 'NoScanDifferences',
|
// name: 'NoScanDifferences',
|
||||||
message: 'No differences in the scans on the dates you selected. Please try selecting different dates.',
|
// message: 'No differences in the scans on the dates you selected. Please try selecting different dates.',
|
||||||
dateValues:
|
// dateValues:
|
||||||
{ leftDate: $scope.leftDate.clone(),
|
// { leftDate: $scope.leftDate.clone(),
|
||||||
rightDate: $scope.rightDate.clone()
|
// rightDate: $scope.rightDate.clone()
|
||||||
}
|
// }
|
||||||
|
// });
|
||||||
|
$scope.singleFactOnly = true;
|
||||||
|
$scope.factData = info.leftData.map(function(fact) {
|
||||||
|
var keyNameMap = activeModule.keyNameMap;
|
||||||
|
var nameKey = activeModule.nameKey;
|
||||||
|
var renderOptions = _.merge({}, activeModule);
|
||||||
|
var isNestedDisplay = false;
|
||||||
|
var facts;
|
||||||
|
|
||||||
|
if (_.isObject(renderOptions.factTemplate) &&
|
||||||
|
_.isArray(renderOptions.compareKey)) {
|
||||||
|
|
||||||
|
isNestedDisplay = true;
|
||||||
|
|
||||||
|
var templates = _.mapValues(renderOptions.factTemplate, function(template, key) {
|
||||||
|
if (template === true) {
|
||||||
|
return { render: function(fact) {
|
||||||
|
return fact[key];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return new FactTemplate(template);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
facts = _.map(templates, function(template, key) {
|
||||||
|
var keyName = key;
|
||||||
|
|
||||||
|
if (_.isObject(keyNameMap) && keyNameMap.hasOwnProperty(key)) {
|
||||||
|
keyName = keyNameMap[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
renderOptions.factTemplate = template;
|
||||||
|
var formattedValue = formatFactForDisplay(fact, renderOptions);
|
||||||
|
return { keyName: keyName,
|
||||||
|
isNestedDisplay: true,
|
||||||
|
value1: formattedValue
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
renderOptions.factTemplate = new FactTemplate(renderOptions.factTemplate);
|
||||||
|
var formattedValue = formatFactForDisplay(fact, renderOptions);
|
||||||
|
isNestedDisplay = false;
|
||||||
|
facts = { keyName: fact[nameKey],
|
||||||
|
value1: formattedValue
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.isNestedDisplay = isNestedDisplay;
|
||||||
|
|
||||||
|
return { displayKeyPath: fact[renderOptions.nameKey],
|
||||||
|
nestingLevel: 0,
|
||||||
|
containsValueArray: false,
|
||||||
|
facts: facts
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
$scope.singleFactOnly = false;
|
||||||
|
$scope.factData = info.factData;
|
||||||
|
$scope.isNestedDisplay = info.isNestedDisplay;
|
||||||
}
|
}
|
||||||
$scope.factData = info.factData;
|
|
||||||
$scope.isNestedDisplay = info.isNestedDisplay;
|
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
|
|
||||||
|
|||||||
@@ -87,6 +87,7 @@
|
|||||||
left-data-no-scans="leftDataNoScans"
|
left-data-no-scans="leftDataNoScans"
|
||||||
right-data-no-scans="rightDataNoScans"
|
right-data-no-scans="rightDataNoScans"
|
||||||
is-nested-display="isNestedDisplay"
|
is-nested-display="isNestedDisplay"
|
||||||
|
single-result-view="singleFactOnly"
|
||||||
fact-data="factData">
|
fact-data="factData">
|
||||||
</fact-data-table>
|
</fact-data-table>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user