mirror of
https://github.com/ansible/awx.git
synced 2026-05-09 18:37:36 -02:30
Move check to outer scope for great performance
This commit is contained in:
@@ -20,6 +20,11 @@ export function compareFacts(module, facts) {
|
|||||||
return _(leftToRight)
|
return _(leftToRight)
|
||||||
.concat(rightToLeft)
|
.concat(rightToLeft)
|
||||||
.unique('displayKeyPath')
|
.unique('displayKeyPath')
|
||||||
|
.thru(function(result) {
|
||||||
|
return { factData: result,
|
||||||
|
isNestedDisplay: _.isUndefined(module.factTemplate)
|
||||||
|
};
|
||||||
|
})
|
||||||
.value();
|
.value();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import stringFilters from 'tower/shared/string-filters/main';
|
|||||||
var $injector = angular.injector(['ng', stringFilters.name]);
|
var $injector = angular.injector(['ng', stringFilters.name]);
|
||||||
var $interpolate = $injector.get('$interpolate');
|
var $interpolate = $injector.get('$interpolate');
|
||||||
|
|
||||||
function parseFactTemplate(factTemplate, fact) {
|
function getFactTemplate(factTemplate, fact) {
|
||||||
if (_.isFunction(factTemplate)) {
|
if (_.isFunction(factTemplate)) {
|
||||||
return factTemplate(fact);
|
return factTemplate(fact);
|
||||||
} else {
|
} else {
|
||||||
@@ -40,11 +40,11 @@ function slotFactValues(basisPosition, basisValue, comparatorValue) {
|
|||||||
export default
|
export default
|
||||||
function flatCompare(basisFacts, comparatorFacts, nameKey, compareKeys, factTemplate) {
|
function flatCompare(basisFacts, comparatorFacts, nameKey, compareKeys, factTemplate) {
|
||||||
|
|
||||||
|
|
||||||
return basisFacts.reduce(function(arr, basisFact) {
|
return basisFacts.reduce(function(arr, basisFact) {
|
||||||
var searcher = {};
|
var searcher = {};
|
||||||
searcher[nameKey] = basisFact[nameKey];
|
searcher[nameKey] = basisFact[nameKey];
|
||||||
|
|
||||||
var isNestedDisplay = false;
|
|
||||||
var basisTemplate, comparatorTemplate, slottedValues, basisValue, comparatorValue;
|
var basisTemplate, comparatorTemplate, slottedValues, basisValue, comparatorValue;
|
||||||
|
|
||||||
var matchingFact = _.where(comparatorFacts, searcher);
|
var matchingFact = _.where(comparatorFacts, searcher);
|
||||||
@@ -54,26 +54,24 @@ export default
|
|||||||
|
|
||||||
if (!_.isUndefined(factTemplate)) {
|
if (!_.isUndefined(factTemplate)) {
|
||||||
|
|
||||||
basisTemplate = parseFactTemplate(factTemplate, basisFact);
|
basisTemplate = getFactTemplate(factTemplate, basisFact);
|
||||||
|
|
||||||
basisValue = renderFactTemplate(basisTemplate, basisFact);
|
basisValue = renderFactTemplate(basisTemplate, basisFact);
|
||||||
slottedValues = slotFactValues(basisFacts.position, basisValue, 'absent');
|
slottedValues = slotFactValues(basisFacts.position, basisValue, 'absent');
|
||||||
|
|
||||||
diffs =
|
diffs =
|
||||||
{ keyName: basisFact[nameKey],
|
{ keyName: basisFact[nameKey],
|
||||||
isNestedDisplay: false,
|
|
||||||
value1: slottedValues.left,
|
value1: slottedValues.left,
|
||||||
value2: slottedValues.right
|
value2: slottedValues.right
|
||||||
};
|
};
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
isNestedDisplay = true;
|
|
||||||
diffs =
|
diffs =
|
||||||
_.map(basisFact, function(value, key) {
|
_.map(basisFact, function(value, key) {
|
||||||
var slottedValues = slotFactValues(basisFacts.position, value, 'absent');
|
var slottedValues = slotFactValues(basisFacts.position, value, 'absent');
|
||||||
|
|
||||||
return { keyName: key,
|
return { keyName: key,
|
||||||
value1: slottedValues.left,
|
value1: slottedValues.left,
|
||||||
value1IsAbsent: slottedValues.left === 'absent',
|
value1IsAbsent: slottedValues.left === 'absent',
|
||||||
value2: slottedValues.right,
|
value2: slottedValues.right,
|
||||||
@@ -87,8 +85,8 @@ export default
|
|||||||
|
|
||||||
if (!_.isUndefined(factTemplate)) {
|
if (!_.isUndefined(factTemplate)) {
|
||||||
|
|
||||||
basisTemplate = parseFactTemplate(factTemplate, basisFact);
|
basisTemplate = getFactTemplate(factTemplate, basisFact);
|
||||||
comparatorTemplate = parseFactTemplate(factTemplate, matchingFact);
|
comparatorTemplate = getFactTemplate(factTemplate, matchingFact);
|
||||||
|
|
||||||
basisValue = renderFactTemplate(basisTemplate, basisFact);
|
basisValue = renderFactTemplate(basisTemplate, basisFact);
|
||||||
comparatorValue = renderFactTemplate(comparatorTemplate, matchingFact);
|
comparatorValue = renderFactTemplate(comparatorTemplate, matchingFact);
|
||||||
@@ -99,7 +97,6 @@ export default
|
|||||||
|
|
||||||
diffs =
|
diffs =
|
||||||
{ keyName: basisFact[nameKey],
|
{ keyName: basisFact[nameKey],
|
||||||
isNestedDisplay: false,
|
|
||||||
value1: slottedValues.left,
|
value1: slottedValues.left,
|
||||||
value2: slottedValues.right
|
value2: slottedValues.right
|
||||||
};
|
};
|
||||||
@@ -108,8 +105,6 @@ export default
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
isNestedDisplay = true;
|
|
||||||
|
|
||||||
diffs = _(compareKeys)
|
diffs = _(compareKeys)
|
||||||
.map(function(key) {
|
.map(function(key) {
|
||||||
var slottedValues = slotFactValues(basisFacts.position,
|
var slottedValues = slotFactValues(basisFacts.position,
|
||||||
@@ -131,7 +126,6 @@ export default
|
|||||||
|
|
||||||
var descriptor =
|
var descriptor =
|
||||||
{ displayKeyPath: basisFact[nameKey],
|
{ displayKeyPath: basisFact[nameKey],
|
||||||
isNestedDisplay: isNestedDisplay,
|
|
||||||
nestingLevel: 0,
|
nestingLevel: 0,
|
||||||
facts: diffs
|
facts: diffs
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ export default
|
|||||||
function(factScanDataService, getModuleOptions, resolveVersions, _) {
|
function(factScanDataService, getModuleOptions, resolveVersions, _) {
|
||||||
return function(hostIds, moduleName, leftDate, rightDate) {
|
return function(hostIds, moduleName, leftDate, rightDate) {
|
||||||
|
|
||||||
var moduleOptions;
|
|
||||||
|
|
||||||
if (hostIds.length === 1) {
|
if (hostIds.length === 1) {
|
||||||
hostIds = hostIds.concat(hostIds[0]);
|
hostIds = hostIds.concat(hostIds[0]);
|
||||||
}
|
}
|
||||||
@@ -49,7 +47,7 @@ export default
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.thenAll(function(hostFacts) {
|
.thenAll(function(hostFacts) {
|
||||||
return [moduleOptions, hostFacts];
|
return hostFacts;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,8 +62,7 @@ function controller($rootScope,
|
|||||||
activeModule.name,
|
activeModule.name,
|
||||||
leftRange,
|
leftRange,
|
||||||
rightRange)
|
rightRange)
|
||||||
.then(function(factDataAndModules) {
|
.then(function(responses) {
|
||||||
var responses = factDataAndModules[1];
|
|
||||||
var data = _.pluck(responses, 'fact');
|
var data = _.pluck(responses, 'fact');
|
||||||
|
|
||||||
$scope.leftScanDate = moment(responses[0].timestamp);
|
$scope.leftScanDate = moment(responses[0].timestamp);
|
||||||
@@ -126,7 +125,8 @@ function controller($rootScope,
|
|||||||
// Clear out any errors from the previous run...
|
// Clear out any errors from the previous run...
|
||||||
$scope.error = null;
|
$scope.error = null;
|
||||||
|
|
||||||
$scope.factData = info;
|
$scope.factData = info.factData;
|
||||||
|
$scope.isNestedDisplay = info.isNestedDisplay;
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
|
|
||||||
|
|||||||
@@ -54,52 +54,57 @@
|
|||||||
<span class="FactDataTableHeading-date">{{rightScanDate|longDate}}</span>
|
<span class="FactDataTableHeading-date">{{rightScanDate|longDate}}</span>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="FactDataTable-factGroup FactDataGroup" ng-repeat="group in factData | orderBy: 'displayKeyPath'">
|
<div ng-if="!isNestedDisplay">
|
||||||
<div class="FactDataTable-row" ng-if="!group.isNestedDisplay">
|
<div class="FactDataTable-row" ng-repeat="group in factData | orderBy: 'displayKeyPath'">
|
||||||
<p class="FactDataTable-column">{{group.facts.keyName}}</p>
|
<p class="FactDataTable-column">{{group.facts.keyName}}</p>
|
||||||
<p class="FactDataTable-column">{{group.facts.value1}}</p>
|
<p class="FactDataTable-column">{{group.facts.value1}}</p>
|
||||||
<p class="FactDataTable-column">{{group.facts.value2}}</p>
|
<p class="FactDataTable-column">{{group.facts.value2}}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="FactDataTable-row FactDataGroup-headings" ng-switch="group.nestingLevel" ng-if="group.displayKeyPath && group.isNestedDisplay">
|
</div>
|
||||||
<h2 class="FactDataTable-column FactDataTable-column--full FactDataGroup-header" ng-switch-when="0">
|
<div ng-if="isNestedDisplay">
|
||||||
{{group.displayKeyPath}}
|
|
||||||
</h2>
|
<div class="FactDataTable-factGroup FactDataGroup" ng-repeat="group in factData | orderBy: 'displayKeyPath'">
|
||||||
<h3 class="FactDataTable-column FactDataTable-column--full" ng-switch-when="1">
|
|
||||||
{{group.displayKeyPath}}
|
<div class="FactDataTable-row FactDataGroup-headings" ng-switch="group.nestingLevel">
|
||||||
</h3>
|
<h2 class="FactDataTable-column FactDataTable-column--full FactDataGroup-header" ng-switch-when="0">
|
||||||
<h4 class="FactDataTable-column FactDataTable-column--full" ng-switch-when="2">
|
{{group.displayKeyPath}}
|
||||||
{{group.displayKeyPath}}
|
</h2>
|
||||||
</h4>
|
<h3 class="FactDataTable-column FactDataTable-column--full" ng-switch-when="1">
|
||||||
<h5 class="FactDataTable-column FactDataTable-column--full" ng-switch-when="3">
|
{{group.displayKeyPath}}
|
||||||
{{group.displayKeyPath}}
|
</h3>
|
||||||
</h5>
|
<h4 class="FactDataTable-column FactDataTable-column--full" ng-switch-when="2">
|
||||||
</div>
|
{{group.displayKeyPath}}
|
||||||
<div class="FactDataGroup-facts" data-facts="{{group.facts}}">
|
</h4>
|
||||||
<div class="FactDataTable-arrayGroup" ng-if="group.isFactArray" ng-repeat="arrayGroup in group.facts" data-array-group="{{arrayGroup}}">
|
<h5 class="FactDataTable-column FactDataTable-column--full" ng-switch-when="3">
|
||||||
<div class="FactDataTable-row FactDatum" ng-class="{'FactDatum--divergent': fact.isDivergent }" ng-repeat="fact in arrayGroup" data-fact="{{fact}}">
|
{{group.displayKeyPath}}
|
||||||
<p class="FactDatum-keyName FactDataTable-column">
|
</h5>
|
||||||
|
</div>
|
||||||
|
<div class="FactDataGroup-facts" data-facts="{{group.facts}}">
|
||||||
|
<div class="FactDataTable-arrayGroup" ng-if="group.isFactArray" ng-repeat="arrayGroup in group.facts" data-array-group="{{arrayGroup}}">
|
||||||
|
<div class="FactDataTable-row FactDatum" ng-class="{'FactDatum--divergent': fact.isDivergent }" ng-repeat="fact in arrayGroup" data-fact="{{fact}}">
|
||||||
|
<p class="FactDatum-keyName FactDataTable-column">
|
||||||
{{fact.keyName}}
|
{{fact.keyName}}
|
||||||
</p>
|
</p>
|
||||||
<p class="FactDatum-value FactDataTable-column" style="word-break: break-all">
|
<p class="FactDatum-value FactDataTable-column" style="word-break: break-all">
|
||||||
{{fact.value1}}
|
{{fact.value1}}
|
||||||
</p>
|
</p>
|
||||||
<p class="FactDatum-value FactDataTable-column" style="word-break: break-all">
|
<p class="FactDatum-value FactDataTable-column" style="word-break: break-all">
|
||||||
{{fact.value2}}
|
{{fact.value2}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="FactDataTable-row FactDatum" ng-class="{'FactDatum--divergent': fact.isDivergent }" ng-repeat="fact in group.facts" ng-unless="group.isFactArray" data-fact="{{fact}}">
|
||||||
|
<p class="FactDataTable-column FactDatum-keyName">
|
||||||
|
{{fact.keyName}}
|
||||||
|
</p>
|
||||||
|
<p class="FactDataTable-column FactDatum-value" style="word-break: break-all">
|
||||||
|
{{fact.value1}}
|
||||||
|
</p>
|
||||||
|
<p class="FactDataTable-column FactDatum-value" style="word-break: break-all">
|
||||||
|
{{fact.value2}}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="FactDataTable-row FactDatum" ng-class="{'FactDatum--divergent': fact.isDivergent }" ng-repeat="fact in group.facts" ng-unless="group.isFactArray" data-fact="{{fact}}">
|
|
||||||
<p class="FactDataTable-column FactDatum-keyName">
|
|
||||||
{{fact.keyName}}
|
|
||||||
</p>
|
|
||||||
<p class="FactDataTable-column FactDatum-value" style="word-break: break-all">
|
|
||||||
{{fact.value1}}
|
|
||||||
</p>
|
|
||||||
<p class="FactDataTable-column FactDatum-value" style="word-break: break-all">
|
|
||||||
{{fact.value2}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user