refactor: extract isUseTrends() function

This commit is contained in:
Alexander Zobnin
2017-06-08 13:20:43 +03:00
parent b0344dc817
commit 3eb5dc49e6
4 changed files with 44 additions and 19 deletions

View File

@@ -250,12 +250,12 @@ System.register(['lodash', 'app/core/utils/datemath', './utils', './migrations',
} }
// Create request for each target // Create request for each target
var promises = _.map(options.targets, function (target) { var promises = _.map(options.targets, function (t) {
var timeFrom = Math.ceil(dateMath.parse(options.range.from) / 1000); var timeFrom = Math.ceil(dateMath.parse(options.range.from) / 1000);
var timeTo = Math.ceil(dateMath.parse(options.range.to) / 1000); var timeTo = Math.ceil(dateMath.parse(options.range.to) / 1000);
// Prevent changes of original object // Prevent changes of original object
target = _.cloneDeep(target); var target = _.cloneDeep(t);
_this.replaceTargetVariables(target, options); _this.replaceTargetVariables(target, options);
// Apply Time-related functions (timeShift(), etc) // Apply Time-related functions (timeShift(), etc)
@@ -270,9 +270,7 @@ System.register(['lodash', 'app/core/utils/datemath', './utils', './migrations',
timeTo = time_to; timeTo = time_to;
} }
var useTrendsFrom = Math.ceil(dateMath.parse('now-' + _this.trendsFrom) / 1000); var useTrends = _this.isUseTrends([timeFrom, timeTo]);
var useTrendsRange = Math.ceil(utils.parseInterval(_this.trendsRange) / 1000);
var useTrends = _this.trends && (timeFrom <= useTrendsFrom || timeTo - timeFrom >= useTrendsRange);
// Metrics or Text query mode // Metrics or Text query mode
if (target.mode !== 1) { if (target.mode !== 1) {
@@ -639,6 +637,18 @@ System.register(['lodash', 'app/core/utils/datemath', './utils', './migrations',
}); });
}); });
} }
}, {
key: 'isUseTrends',
value: function isUseTrends(timeRange) {
var _timeRange = _slicedToArray(timeRange, 2),
timeFrom = _timeRange[0],
timeTo = _timeRange[1];
var useTrendsFrom = Math.ceil(dateMath.parse('now-' + this.trendsFrom) / 1000);
var useTrendsRange = Math.ceil(utils.parseInterval(this.trendsRange) / 1000);
var useTrends = this.trends && (timeFrom <= useTrendsFrom || timeTo - timeFrom >= useTrendsRange);
return useTrends;
}
}]); }]);
return ZabbixAPIDatasource; return ZabbixAPIDatasource;

File diff suppressed because one or more lines are too long

View File

@@ -121,12 +121,12 @@ var ZabbixAPIDatasource = function () {
} }
// Create request for each target // Create request for each target
var promises = _lodash2.default.map(options.targets, function (target) { var promises = _lodash2.default.map(options.targets, function (t) {
var timeFrom = Math.ceil(dateMath.parse(options.range.from) / 1000); var timeFrom = Math.ceil(dateMath.parse(options.range.from) / 1000);
var timeTo = Math.ceil(dateMath.parse(options.range.to) / 1000); var timeTo = Math.ceil(dateMath.parse(options.range.to) / 1000);
// Prevent changes of original object // Prevent changes of original object
target = _lodash2.default.cloneDeep(target); var target = _lodash2.default.cloneDeep(t);
_this.replaceTargetVariables(target, options); _this.replaceTargetVariables(target, options);
// Apply Time-related functions (timeShift(), etc) // Apply Time-related functions (timeShift(), etc)
@@ -141,9 +141,7 @@ var ZabbixAPIDatasource = function () {
timeTo = time_to; timeTo = time_to;
} }
var useTrendsFrom = Math.ceil(dateMath.parse('now-' + _this.trendsFrom) / 1000); var useTrends = _this.isUseTrends([timeFrom, timeTo]);
var useTrendsRange = Math.ceil(utils.parseInterval(_this.trendsRange) / 1000);
var useTrends = _this.trends && (timeFrom <= useTrendsFrom || timeTo - timeFrom >= useTrendsRange);
// Metrics or Text query mode // Metrics or Text query mode
if (target.mode !== 1) { if (target.mode !== 1) {
@@ -544,6 +542,18 @@ var ZabbixAPIDatasource = function () {
}); });
}); });
} }
}, {
key: 'isUseTrends',
value: function isUseTrends(timeRange) {
var _timeRange = _slicedToArray(timeRange, 2),
timeFrom = _timeRange[0],
timeTo = _timeRange[1];
var useTrendsFrom = Math.ceil(dateMath.parse('now-' + this.trendsFrom) / 1000);
var useTrendsRange = Math.ceil(utils.parseInterval(this.trendsRange) / 1000);
var useTrends = this.trends && (timeFrom <= useTrendsFrom || timeTo - timeFrom >= useTrendsRange);
return useTrends;
}
}]); }]);
return ZabbixAPIDatasource; return ZabbixAPIDatasource;

View File

@@ -73,12 +73,12 @@ class ZabbixAPIDatasource {
} }
// Create request for each target // Create request for each target
let promises = _.map(options.targets, target => { let promises = _.map(options.targets, t => {
let timeFrom = Math.ceil(dateMath.parse(options.range.from) / 1000); let timeFrom = Math.ceil(dateMath.parse(options.range.from) / 1000);
let timeTo = Math.ceil(dateMath.parse(options.range.to) / 1000); let timeTo = Math.ceil(dateMath.parse(options.range.to) / 1000);
// Prevent changes of original object // Prevent changes of original object
target = _.cloneDeep(target); let target = _.cloneDeep(t);
this.replaceTargetVariables(target, options); this.replaceTargetVariables(target, options);
// Apply Time-related functions (timeShift(), etc) // Apply Time-related functions (timeShift(), etc)
@@ -89,12 +89,7 @@ class ZabbixAPIDatasource {
timeTo = time_to; timeTo = time_to;
} }
let useTrendsFrom = Math.ceil(dateMath.parse('now-' + this.trendsFrom) / 1000); let useTrends = this.isUseTrends([timeFrom, timeTo]);
let useTrendsRange = Math.ceil(utils.parseInterval(this.trendsRange) / 1000);
let useTrends = this.trends && (
(timeFrom <= useTrendsFrom) ||
(timeTo - timeFrom >= useTrendsRange)
);
// Metrics or Text query mode // Metrics or Text query mode
if (target.mode !== 1) { if (target.mode !== 1) {
@@ -478,6 +473,16 @@ class ZabbixAPIDatasource {
}); });
} }
isUseTrends(timeRange) {
let [timeFrom, timeTo] = timeRange;
let useTrendsFrom = Math.ceil(dateMath.parse('now-' + this.trendsFrom) / 1000);
let useTrendsRange = Math.ceil(utils.parseInterval(this.trendsRange) / 1000);
let useTrends = this.trends && (
(timeFrom <= useTrendsFrom) ||
(timeTo - timeFrom >= useTrendsRange)
);
return useTrends;
}
} }
function bindFunctionDefs(functionDefs, category) { function bindFunctionDefs(functionDefs, category) {