|
@@ -186,7 +186,7 @@ var wrapperView = Ember.View.extend({
|
|
$optionEl.text(triggeredValue.displayAs);
|
|
$optionEl.text(triggeredValue.displayAs);
|
|
// the second one option should be hidden
|
|
// the second one option should be hidden
|
|
// as the result, on init stage we show only one option that could be selected
|
|
// as the result, on init stage we show only one option that could be selected
|
|
- if (index == 1) {
|
|
|
|
|
|
+ if (index === 1) {
|
|
$optionEl.css('display', 'none');
|
|
$optionEl.css('display', 'none');
|
|
}
|
|
}
|
|
}, this);
|
|
}, this);
|
|
@@ -207,7 +207,7 @@ var wrapperView = Ember.View.extend({
|
|
var currentValueIndex = values.indexOf(this.get('value'));
|
|
var currentValueIndex = values.indexOf(this.get('value'));
|
|
if (currentValueIndex < 0) return;
|
|
if (currentValueIndex < 0) return;
|
|
// value assigned to hidden option
|
|
// value assigned to hidden option
|
|
- hiddenValue = values[Number(currentValueIndex == 0)];
|
|
|
|
|
|
+ hiddenValue = values[Number(currentValueIndex === 0)];
|
|
}, this);
|
|
}, this);
|
|
if (hiddenValue) {
|
|
if (hiddenValue) {
|
|
// our select
|
|
// our select
|
|
@@ -282,7 +282,7 @@ var componentFieldView = Ember.View.extend({
|
|
var dropDown = this.$('.filter-components');
|
|
var dropDown = this.$('.filter-components');
|
|
var firstClick = true;
|
|
var firstClick = true;
|
|
$(document).bind('click', function (e) {
|
|
$(document).bind('click', function (e) {
|
|
- if (!firstClick && $(e.target).closest(dropDown).length == 0) {
|
|
|
|
|
|
+ if (!firstClick && !$(e.target).closest(dropDown).length) {
|
|
self.set('isFilterOpen', false);
|
|
self.set('isFilterOpen', false);
|
|
$(document).unbind('click');
|
|
$(document).unbind('click');
|
|
}
|
|
}
|
|
@@ -382,194 +382,148 @@ module.exports = {
|
|
return function (rowValue, rangeExp) {
|
|
return function (rowValue, rangeExp) {
|
|
var compareChar = isNaN(rangeExp.charAt(0)) ? rangeExp.charAt(0) : false;
|
|
var compareChar = isNaN(rangeExp.charAt(0)) ? rangeExp.charAt(0) : false;
|
|
var compareScale = rangeExp.charAt(rangeExp.length - 1);
|
|
var compareScale = rangeExp.charAt(rangeExp.length - 1);
|
|
- var compareValue = compareChar ? parseFloat(rangeExp.substr(1, rangeExp.length)) : parseFloat(rangeExp.substr(0, rangeExp.length));
|
|
|
|
- var match = false;
|
|
|
|
- if (rangeExp.length == 1 && compareChar !== false) {
|
|
|
|
|
|
+ var compareValue = parseFloat(rangeExp.substr(compareChar ? 1 : 0));
|
|
|
|
+ if (rangeExp.length === 1 && compareChar !== false) {
|
|
// User types only '=' or '>' or '<', so don't filter column values
|
|
// User types only '=' or '>' or '<', so don't filter column values
|
|
- match = true;
|
|
|
|
- return match;
|
|
|
|
- }
|
|
|
|
- switch (compareScale) {
|
|
|
|
- case 'g':
|
|
|
|
- compareValue *= 1073741824;
|
|
|
|
- break;
|
|
|
|
- case 'm':
|
|
|
|
- compareValue *= 1048576;
|
|
|
|
- break;
|
|
|
|
- case 'k':
|
|
|
|
- compareValue *= 1024;
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- //default value in GB
|
|
|
|
- compareValue *= 1073741824;
|
|
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
- rowValue = (jQuery(rowValue).text()) ? jQuery(rowValue).text() : rowValue;
|
|
|
|
|
|
+ var oneSymbolScales = {
|
|
|
|
+ k: 1024,
|
|
|
|
+ m: 1048576,
|
|
|
|
+ g: 1073741824
|
|
|
|
+ };
|
|
|
|
+ var twoSymbolsScales = {
|
|
|
|
+ KB: 1024,
|
|
|
|
+ MB: 1048576,
|
|
|
|
+ GB: 1073741824
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ compareValue *= oneSymbolScales[compareScale] ? oneSymbolScales[compareScale] : oneSymbolScales.g; // default value in GB
|
|
|
|
+ rowValue = jQuery(rowValue).text() ? jQuery(rowValue).text() : rowValue;
|
|
|
|
|
|
var convertedRowValue;
|
|
var convertedRowValue;
|
|
if (rowValue === '<1KB') {
|
|
if (rowValue === '<1KB') {
|
|
convertedRowValue = 1;
|
|
convertedRowValue = 1;
|
|
} else {
|
|
} else {
|
|
var rowValueScale = rowValue.substr(rowValue.length - 2, 2);
|
|
var rowValueScale = rowValue.substr(rowValue.length - 2, 2);
|
|
- switch (rowValueScale) {
|
|
|
|
- case 'KB':
|
|
|
|
- convertedRowValue = parseFloat(rowValue) * 1024;
|
|
|
|
- break;
|
|
|
|
- case 'MB':
|
|
|
|
- convertedRowValue = parseFloat(rowValue) * 1048576;
|
|
|
|
- break;
|
|
|
|
- case 'GB':
|
|
|
|
- convertedRowValue = parseFloat(rowValue) * 1073741824;
|
|
|
|
- break;
|
|
|
|
|
|
+ if (twoSymbolsScales[rowValueScale]) {
|
|
|
|
+ convertedRowValue = parseFloat(rowValue) * twoSymbolsScales[rowValueScale];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
switch (compareChar) {
|
|
switch (compareChar) {
|
|
case '<':
|
|
case '<':
|
|
- if (compareValue > convertedRowValue) match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return compareValue > convertedRowValue;
|
|
case '>':
|
|
case '>':
|
|
- if (compareValue < convertedRowValue) match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return compareValue < convertedRowValue;
|
|
case false:
|
|
case false:
|
|
case '=':
|
|
case '=':
|
|
- if (compareValue == convertedRowValue) match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return compareValue === convertedRowValue;
|
|
|
|
+ default:
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
- return match;
|
|
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'duration':
|
|
case 'duration':
|
|
return function (rowValue, rangeExp) {
|
|
return function (rowValue, rangeExp) {
|
|
var compareChar = isNaN(rangeExp.charAt(0)) ? rangeExp.charAt(0) : false;
|
|
var compareChar = isNaN(rangeExp.charAt(0)) ? rangeExp.charAt(0) : false;
|
|
var compareScale = rangeExp.charAt(rangeExp.length - 1);
|
|
var compareScale = rangeExp.charAt(rangeExp.length - 1);
|
|
- var compareValue = compareChar ? parseFloat(rangeExp.substr(1, rangeExp.length)) : parseFloat(rangeExp.substr(0, rangeExp.length));
|
|
|
|
- var match = false;
|
|
|
|
- if (rangeExp.length == 1 && compareChar !== false) {
|
|
|
|
|
|
+ var compareValue = parseFloat(rangeExp.substr(compareChar ? 1 : 0));
|
|
|
|
+ if (rangeExp.length === 1 && compareChar !== false) {
|
|
// User types only '=' or '>' or '<', so don't filter column values
|
|
// User types only '=' or '>' or '<', so don't filter column values
|
|
- match = true;
|
|
|
|
- return match;
|
|
|
|
- }
|
|
|
|
- switch (compareScale) {
|
|
|
|
- case 's':
|
|
|
|
- compareValue *= 1000;
|
|
|
|
- break;
|
|
|
|
- case 'm':
|
|
|
|
- compareValue *= 60000;
|
|
|
|
- break;
|
|
|
|
- case 'h':
|
|
|
|
- compareValue *= 3600000;
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- compareValue *= 1000;
|
|
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
- rowValue = (jQuery(rowValue).text()) ? jQuery(rowValue).text() : rowValue;
|
|
|
|
|
|
+ var oneSymbolsScales = {
|
|
|
|
+ s: 1000,
|
|
|
|
+ m: 60000,
|
|
|
|
+ h: 3600000
|
|
|
|
+ };
|
|
|
|
+ compareValue *= oneSymbolsScales[compareScale] ? oneSymbolsScales[compareScale] : oneSymbolsScales.s;
|
|
|
|
+ rowValue = jQuery(rowValue).text() ? jQuery(rowValue).text() : rowValue;
|
|
|
|
|
|
switch (compareChar) {
|
|
switch (compareChar) {
|
|
case '<':
|
|
case '<':
|
|
- if (compareValue > rowValue) match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return compareValue > rowValue;
|
|
case '>':
|
|
case '>':
|
|
- if (compareValue < rowValue) match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return compareValue < rowValue;
|
|
case false:
|
|
case false:
|
|
case '=':
|
|
case '=':
|
|
- if (compareValue == rowValue) match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return compareValue == rowValue;
|
|
}
|
|
}
|
|
- return match;
|
|
|
|
|
|
+ return false;
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'date':
|
|
case 'date':
|
|
return function (rowValue, rangeExp) {
|
|
return function (rowValue, rangeExp) {
|
|
- var match = false;
|
|
|
|
var timePassed = App.dateTime() - rowValue;
|
|
var timePassed = App.dateTime() - rowValue;
|
|
switch (rangeExp) {
|
|
switch (rangeExp) {
|
|
case 'Past 1 hour':
|
|
case 'Past 1 hour':
|
|
- match = timePassed <= 3600000;
|
|
|
|
- break;
|
|
|
|
|
|
+ return timePassed <= 3600000;
|
|
case 'Past 1 Day':
|
|
case 'Past 1 Day':
|
|
- match = timePassed <= 86400000;
|
|
|
|
- break;
|
|
|
|
|
|
+ return timePassed <= 86400000;
|
|
case 'Past 2 Days':
|
|
case 'Past 2 Days':
|
|
- match = timePassed <= 172800000;
|
|
|
|
- break;
|
|
|
|
|
|
+ return timePassed <= 172800000;
|
|
case 'Past 7 Days':
|
|
case 'Past 7 Days':
|
|
- match = timePassed <= 604800000;
|
|
|
|
- break;
|
|
|
|
|
|
+ return timePassed <= 604800000;
|
|
case 'Past 14 Days':
|
|
case 'Past 14 Days':
|
|
- match = timePassed <= 1209600000;
|
|
|
|
- break;
|
|
|
|
|
|
+ return timePassed <= 1209600000;
|
|
case 'Past 30 Days':
|
|
case 'Past 30 Days':
|
|
- match = timePassed <= 2592000000;
|
|
|
|
- break;
|
|
|
|
|
|
+ return timePassed <= 2592000000;
|
|
case 'Any':
|
|
case 'Any':
|
|
- match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return true;
|
|
|
|
+ default:
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
- return match;
|
|
|
|
|
|
+ return false;
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'number':
|
|
case 'number':
|
|
return function (rowValue, rangeExp) {
|
|
return function (rowValue, rangeExp) {
|
|
var compareChar = rangeExp.charAt(0);
|
|
var compareChar = rangeExp.charAt(0);
|
|
var compareValue;
|
|
var compareValue;
|
|
- var match = false;
|
|
|
|
- if (rangeExp.length == 1) {
|
|
|
|
- if (isNaN(parseInt(compareChar))) {
|
|
|
|
|
|
+ if (rangeExp.length === 1) {
|
|
|
|
+ if (isNaN(parseInt(compareChar, 10))) {
|
|
// User types only '=' or '>' or '<', so don't filter column values
|
|
// User types only '=' or '>' or '<', so don't filter column values
|
|
- match = true;
|
|
|
|
- return match;
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- compareValue = parseFloat(parseFloat(rangeExp).toFixed(2));
|
|
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
|
|
+ compareValue = parseFloat(parseFloat(rangeExp).toFixed(2));
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
- if (isNaN(parseInt(compareChar))) {
|
|
|
|
|
|
+ if (isNaN(parseInt(compareChar, 10))) {
|
|
compareValue = parseFloat(parseFloat(rangeExp.substr(1, rangeExp.length)).toFixed(2));
|
|
compareValue = parseFloat(parseFloat(rangeExp.substr(1, rangeExp.length)).toFixed(2));
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
compareValue = parseFloat(parseFloat(rangeExp.substr(0, rangeExp.length)).toFixed(2));
|
|
compareValue = parseFloat(parseFloat(rangeExp.substr(0, rangeExp.length)).toFixed(2));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- rowValue = parseFloat((jQuery(rowValue).text()) ? jQuery(rowValue).text() : rowValue);
|
|
|
|
- match = false;
|
|
|
|
|
|
+ rowValue = parseFloat(jQuery(rowValue).text() ? jQuery(rowValue).text() : rowValue);
|
|
switch (compareChar) {
|
|
switch (compareChar) {
|
|
case '<':
|
|
case '<':
|
|
- if (compareValue > rowValue) match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return compareValue > rowValue;
|
|
case '>':
|
|
case '>':
|
|
- if (compareValue < rowValue) match = true;
|
|
|
|
- break;
|
|
|
|
|
|
+ return compareValue < rowValue
|
|
case '=':
|
|
case '=':
|
|
- if (compareValue == rowValue) match = true;
|
|
|
|
- break;
|
|
|
|
default:
|
|
default:
|
|
- if (rangeExp == rowValue) match = true;
|
|
|
|
|
|
+ return compareValue === rowValue;
|
|
}
|
|
}
|
|
- return match;
|
|
|
|
|
|
+ return false;
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'sub-resource':
|
|
case 'sub-resource':
|
|
return function (origin, compareValue) {
|
|
return function (origin, compareValue) {
|
|
- if (!Array.isArray(compareValue) || compareValue.length === 0) return true;
|
|
|
|
|
|
+ if (!Array.isArray(compareValue) || !compareValue.length) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
|
|
return origin.some(function (item) {
|
|
return origin.some(function (item) {
|
|
for (var i = 0, l = compareValue.length; i < l; i++) {
|
|
for (var i = 0, l = compareValue.length; i < l; i++) {
|
|
- if(item.get(compareValue[i].property) !== compareValue[i].value) return false
|
|
|
|
|
|
+ if(item.get(compareValue[i].property) !== compareValue[i].value) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
});
|
|
});
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'multiple':
|
|
case 'multiple':
|
|
return function (origin, compareValue) {
|
|
return function (origin, compareValue) {
|
|
var options = compareValue.split(',');
|
|
var options = compareValue.split(',');
|
|
- if (typeof (origin) === "string") {
|
|
|
|
- var rowValue = origin;
|
|
|
|
- } else {
|
|
|
|
- var rowValue = origin.mapProperty('componentName').join(" ");
|
|
|
|
- }
|
|
|
|
|
|
+ var rowValue = typeof origin === "string" ? origin : origin.mapProperty('componentName').join(" ");
|
|
var str = new RegExp(compareValue, "i");
|
|
var str = new RegExp(compareValue, "i");
|
|
for (var i = 0; i < options.length; i++) {
|
|
for (var i = 0; i < options.length; i++) {
|
|
if (!isGlobal) {
|
|
if (!isGlobal) {
|
|
@@ -581,34 +535,28 @@ module.exports = {
|
|
}
|
|
}
|
|
return false;
|
|
return false;
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'boolean':
|
|
case 'boolean':
|
|
- return function (origin, compareValue) {
|
|
|
|
- return origin === compareValue;
|
|
|
|
- };
|
|
|
|
- break;
|
|
|
|
case 'select':
|
|
case 'select':
|
|
return function (origin, compareValue) {
|
|
return function (origin, compareValue) {
|
|
- return origin == compareValue;
|
|
|
|
|
|
+ return origin === compareValue;
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'os':
|
|
case 'os':
|
|
return function (origin, compareValue) {
|
|
return function (origin, compareValue) {
|
|
return origin.getEach('osType').contains(compareValue)
|
|
return origin.getEach('osType').contains(compareValue)
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'range':
|
|
case 'range':
|
|
return function (origin, compareValue) {
|
|
return function (origin, compareValue) {
|
|
if (compareValue[1] && compareValue[0]) {
|
|
if (compareValue[1] && compareValue[0]) {
|
|
return origin >= compareValue[0] && origin <= compareValue[1];
|
|
return origin >= compareValue[0] && origin <= compareValue[1];
|
|
- } else if (compareValue[0]) {
|
|
|
|
|
|
+ }
|
|
|
|
+ if (compareValue[0]) {
|
|
return origin >= compareValue[0];
|
|
return origin >= compareValue[0];
|
|
- } else if (compareValue[1]) {
|
|
|
|
|
|
+ }
|
|
|
|
+ if (compareValue[1]) {
|
|
return origin <= compareValue[1]
|
|
return origin <= compareValue[1]
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'alert_status':
|
|
case 'alert_status':
|
|
/**
|
|
/**
|
|
* origin - alertDefinition.summary
|
|
* origin - alertDefinition.summary
|
|
@@ -627,27 +575,43 @@ module.exports = {
|
|
}
|
|
}
|
|
return !!origin[compareValue] && (origin[compareValue].count > 0 || origin[compareValue].maintenanceCount > 0);
|
|
return !!origin[compareValue] && (origin[compareValue].count > 0 || origin[compareValue].maintenanceCount > 0);
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'alert_group':
|
|
case 'alert_group':
|
|
return function (origin, compareValue) {
|
|
return function (origin, compareValue) {
|
|
return origin.mapProperty('id').contains(compareValue);
|
|
return origin.mapProperty('id').contains(compareValue);
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'enable_disable':
|
|
case 'enable_disable':
|
|
return function (origin, compareValue) {
|
|
return function (origin, compareValue) {
|
|
- return origin == (compareValue == 'enabled');
|
|
|
|
|
|
+ return origin === (compareValue === 'enabled');
|
|
};
|
|
};
|
|
- break;
|
|
|
|
case 'string':
|
|
case 'string':
|
|
default:
|
|
default:
|
|
return function (origin, compareValue) {
|
|
return function (origin, compareValue) {
|
|
if (validator.isValidMatchesRegexp(compareValue)) {
|
|
if (validator.isValidMatchesRegexp(compareValue)) {
|
|
var regex = new RegExp(compareValue, "i");
|
|
var regex = new RegExp(compareValue, "i");
|
|
return regex.test(origin);
|
|
return regex.test(origin);
|
|
- } else {
|
|
|
|
- return false;
|
|
|
|
}
|
|
}
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ getComputedServicesList: function () {
|
|
|
|
+ return Em.computed('App.router.clusterController.isLoaded', function () {
|
|
|
|
+ return [
|
|
|
|
+ {
|
|
|
|
+ value: '',
|
|
|
|
+ label: Em.I18n.t('common.all')
|
|
|
|
+ }
|
|
|
|
+ ].concat(App.Service.find().map(function (service) {
|
|
|
|
+ return {
|
|
|
|
+ value: service.get('serviceName'),
|
|
|
|
+ label: service.get('displayName')
|
|
|
|
+ }
|
|
|
|
+ })).concat({
|
|
|
|
+ value: 'AMBARI',
|
|
|
|
+ label: Em.I18n.t('app.name')
|
|
|
|
+ });
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
+
|
|
};
|
|
};
|