mirror of
https://github.com/ansible/awx.git
synced 2026-01-17 20:51:21 -03:30
Display timestamp from API in column headers
This commit is contained in:
parent
8d1e2e1c0c
commit
5caf80e9a2
@ -7,23 +7,53 @@
|
||||
export default
|
||||
function flatCompare(facts, nameKey, compareKeys) {
|
||||
|
||||
var leftFacts = facts[0];
|
||||
var rightFacts = facts[1];
|
||||
// Make sure we always start comparison against
|
||||
// a non-empty array
|
||||
//
|
||||
// Partition with _.isEmpty will give me an array
|
||||
// with empty arrays in index 0, and non-empty
|
||||
// arrays in index 1
|
||||
//
|
||||
|
||||
return rightFacts.reduce(function(arr, rightFact) {
|
||||
// Save the position of the data so we
|
||||
// don't lose it later
|
||||
|
||||
facts[0].position = 'left';
|
||||
facts[1].position = 'right';
|
||||
|
||||
var splitFacts = _.partition(facts, _.isEmpty);
|
||||
var emptyScans = splitFacts[0];
|
||||
var nonEmptyScans = splitFacts[1];
|
||||
var basisFacts, comparatorFacts;
|
||||
|
||||
if (_.isEmpty(nonEmptyScans)) {
|
||||
// we have NO data, so don't bother!
|
||||
return [];
|
||||
} else if (_.isEmpty(emptyScans)) {
|
||||
// both scans have facts, rejoice!
|
||||
comparatorFacts = nonEmptyScans[0];
|
||||
basisFacts = nonEmptyScans[1];
|
||||
} else {
|
||||
// only one scan has facts, so we use that
|
||||
// as the basis for our comparison
|
||||
basisFacts = nonEmptyScans[0];
|
||||
comparatorFacts = [];
|
||||
}
|
||||
|
||||
return basisFacts.reduce(function(arr, basisFact) {
|
||||
var searcher = {};
|
||||
searcher[nameKey] = rightFact[nameKey];
|
||||
searcher[nameKey] = basisFact[nameKey];
|
||||
|
||||
var isNewFactValue = false;
|
||||
|
||||
var matchingFact = _.where(leftFacts, searcher);
|
||||
var matchingFact = _.where(comparatorFacts, searcher);
|
||||
var diffs;
|
||||
|
||||
if (_.isEmpty(matchingFact)) {
|
||||
isNewFactValue = true;
|
||||
|
||||
diffs =
|
||||
_.map(rightFact, function(value, key) {
|
||||
_.map(basisFact, function(value, key) {
|
||||
return { keyName: key,
|
||||
value1: value,
|
||||
value2: ''
|
||||
@ -34,8 +64,18 @@ export default
|
||||
|
||||
diffs = _(compareKeys)
|
||||
.map(function(key) {
|
||||
var leftValue = rightFact[key];
|
||||
var rightValue = matchingFact[key];
|
||||
var basisValue = basisFact[key];
|
||||
var comparatorValue = matchingFact[key];
|
||||
var leftValue, rightValue;
|
||||
|
||||
if (basisFacts.position === 'left') {
|
||||
leftValue = basisValue;
|
||||
rightValue = comparatorValue;
|
||||
} else {
|
||||
rightValue = basisValue;
|
||||
leftValue = comparatorValue;
|
||||
}
|
||||
|
||||
if (leftValue !== rightValue) {
|
||||
return {
|
||||
keyName: key,
|
||||
@ -49,7 +89,7 @@ export default
|
||||
}
|
||||
|
||||
var descriptor =
|
||||
{ displayKeyPath: rightFact[nameKey],
|
||||
{ displayKeyPath: basisFact[nameKey],
|
||||
isNew: isNewFactValue,
|
||||
nestingLevel: 0,
|
||||
facts: diffs
|
||||
|
||||
@ -15,7 +15,7 @@ function (Rest, GetBasePath, ProcessErrors, _) {
|
||||
return version
|
||||
.then(function(versionData) {
|
||||
if (_.isEmpty(versionData)) {
|
||||
return [];
|
||||
return { fact: [] };
|
||||
} else {
|
||||
return getFacts(versionData);
|
||||
}
|
||||
@ -26,8 +26,8 @@ function (Rest, GetBasePath, ProcessErrors, _) {
|
||||
var promise;
|
||||
Rest.setUrl(version.related.fact_view);
|
||||
promise = Rest.get();
|
||||
return promise.then(function (data) {
|
||||
return data.data.fact;
|
||||
return promise.then(function (response) {
|
||||
return response.data;
|
||||
}).catch(function (response) {
|
||||
ProcessErrors(null, response.data, response.status, null, {
|
||||
hdr: 'Error!',
|
||||
|
||||
@ -50,8 +50,7 @@ export default
|
||||
|
||||
return getHostFacts(params);
|
||||
}).then(function(hostFacts) {
|
||||
hostFacts.moduleOptions = moduleOptions;
|
||||
return hostFacts;
|
||||
return [moduleOptions, hostFacts];
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
@ -20,7 +20,7 @@ export function searchDateRange(dateString) {
|
||||
|
||||
|
||||
return {
|
||||
from: date.startOf('day'),
|
||||
to: date.endOf('day')
|
||||
from: date.clone().startOf('day'),
|
||||
to: date.clone().endOf('day')
|
||||
};
|
||||
}
|
||||
|
||||
@ -33,17 +33,17 @@ function controller($rootScope,
|
||||
var viewType = hostIds.length > 1 ? 'multiHost' : 'singleHost';
|
||||
|
||||
var searchConfig =
|
||||
{ leftDate: initialFactData.leftDate,
|
||||
rightDate: initialFactData.rightDate
|
||||
{ leftRange: initialFactData.leftSearchRange,
|
||||
rightRange: initialFactData.rightSearchRange
|
||||
};
|
||||
|
||||
$scope.leftDate = initialFactData.leftDate.from;
|
||||
$scope.rightDate = initialFactData.rightDate.from;
|
||||
$scope.leftDate = initialFactData.leftSearchRange.from;
|
||||
$scope.rightDate = initialFactData.rightSearchRange.from;
|
||||
|
||||
function setHeaderValues(viewType) {
|
||||
if (viewType === 'singleHost') {
|
||||
$scope.comparisonLeftHeader = $scope.leftDate;
|
||||
$scope.comparisonRightHeader = $scope.rightDate;
|
||||
$scope.comparisonLeftHeader = $scope.leftScanDate;
|
||||
$scope.comparisonRightHeader = $scope.rightScanDate;
|
||||
} else {
|
||||
$scope.comparisonLeftHeader = hosts[0].name;
|
||||
$scope.comparisonRightHeader = hosts[1].name;
|
||||
@ -54,16 +54,26 @@ function controller($rootScope,
|
||||
searchConfig = _.merge({}, searchConfig, params);
|
||||
|
||||
var factData = initialData;
|
||||
var leftDate = searchConfig.leftDate;
|
||||
var rightDate = searchConfig.rightDate;
|
||||
var leftRange = searchConfig.leftRange;
|
||||
var rightRange = searchConfig.rightRange;
|
||||
var activeModule = searchConfig.module;
|
||||
|
||||
if (!factData) {
|
||||
factData = getDataForComparison(
|
||||
hostIds,
|
||||
activeModule.name,
|
||||
leftDate,
|
||||
rightDate);
|
||||
factData =
|
||||
getDataForComparison(
|
||||
hostIds,
|
||||
activeModule.name,
|
||||
leftRange,
|
||||
rightRange)
|
||||
.thenAll(function(factDataAndModules) {
|
||||
var responses = factDataAndModules[1];
|
||||
var data = _.pluck(responses, 'fact');
|
||||
|
||||
$scope.leftScanDate = moment(responses[0].timestamp);
|
||||
$scope.rightScanDate = moment(responses[1].timestamp);
|
||||
|
||||
return data;
|
||||
}, true);
|
||||
}
|
||||
|
||||
waitIndicator('start');
|
||||
@ -122,9 +132,9 @@ function controller($rootScope,
|
||||
};
|
||||
}
|
||||
|
||||
$scope.$watch('leftDate', dateWatcher('leftDate'), true);
|
||||
$scope.$watch('leftDate', dateWatcher('leftRange'), true);
|
||||
|
||||
$scope.$watch('rightDate', dateWatcher('rightDate'), true);
|
||||
$scope.$watch('rightDate', dateWatcher('rightRange'), true);
|
||||
|
||||
$scope.setActiveModule(initialFactData.moduleName, initialFactData);
|
||||
}
|
||||
|
||||
@ -35,8 +35,8 @@
|
||||
</section>
|
||||
<section class="FactDataTable" ng-unless="error">
|
||||
<div class="FactDataTable-row">
|
||||
<h3 class="FactDataTable-column FactDataTable-column--offsetLeft">{{comparisonLeftHeader|stringOrDate:'L'}}</h3>
|
||||
<h3 class="FactDataTable-column">{{comparisonRightHeader|stringOrDate:'L'}}</h3>
|
||||
<h3 class="FactDataTable-column FactDataTable-column--offsetLeft">{{comparisonLeftHeader|stringOrDate:'L LT'}}</h3>
|
||||
<h3 class="FactDataTable-column">{{comparisonRightHeader|stringOrDate:'L LT'}}</h3>
|
||||
</div>
|
||||
<div class="FactDataTable-factGroup FactDataGroup" ng-repeat="group in factData | orderBy: 'displayKeyPath'">
|
||||
<div class="FactDataTable-row FactDataGroup-headings" ng-switch="group.nestingLevel" ng-if="group.displayKeyPath">
|
||||
|
||||
@ -30,13 +30,23 @@ export default {
|
||||
|
||||
var data =
|
||||
getDataForComparison(hostIds, moduleParam, leftDate, rightDate).
|
||||
thenThru(function(factData) {
|
||||
factData.leftDate = leftDate;
|
||||
factData.rightDate = rightDate;
|
||||
factData.moduleName = moduleParam;
|
||||
return factData;
|
||||
})
|
||||
.value();
|
||||
thenAll(function(factDataAndModules) {
|
||||
var moduleOptions = factDataAndModules[0];
|
||||
var factResponses = factDataAndModules[1];
|
||||
var factData = _.pluck(factResponses, 'fact');
|
||||
|
||||
factData.leftSearchRange = leftDate;
|
||||
factData.rightSearchRange = rightDate;
|
||||
|
||||
factData.leftScanDate = moment(factResponses[0].timestamp);
|
||||
factData.rightScanDate = moment(factResponses[0].timestamp);
|
||||
|
||||
factData.moduleName = moduleParam;
|
||||
factData.moduleOptions = moduleOptions;
|
||||
|
||||
return factData;
|
||||
}, true)
|
||||
.value();
|
||||
|
||||
return data;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user