summaryrefslogtreecommitdiffstats
path: root/app/server-health/controllers/sensors-controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/server-health/controllers/sensors-controller.js')
-rw-r--r--app/server-health/controllers/sensors-controller.js117
1 files changed, 112 insertions, 5 deletions
diff --git a/app/server-health/controllers/sensors-controller.js b/app/server-health/controllers/sensors-controller.js
index aaa5aa6..cf10541 100644
--- a/app/server-health/controllers/sensors-controller.js
+++ b/app/server-health/controllers/sensors-controller.js
@@ -9,7 +9,7 @@
window.angular && (function (angular) {
'use strict';
-
+ var sensorData = [], originalData = {};
angular
.module('app.overview')
.controller('sensorsController', [
@@ -18,13 +18,120 @@ window.angular && (function (angular) {
'$window',
'APIUtils',
'dataService',
- function($scope, $log, $window, APIUtils, dataService, userModel){
+ '$routeParams',
+ function($scope, $log, $window, APIUtils, dataService, $routeParams){
$scope.dataService = dataService;
-
+ $scope.customSearch = "";
$scope.dropdown_selected = false;
-
$scope.$log = $log;
- $scope.message = 'Hello World!';
+ $scope.data = {};
+ $scope.searchTerms = [];
+
+ $scope.selectedSeverity = {
+ all: true,
+ normal: false,
+ warning: false,
+ critical: false
+ };
+
+ var sensorType = $routeParams.type;
+
+ $scope.export_name = sensorType + "_sensors.json";
+
+ $scope.toggleSeverityAll = function(){
+ $scope.selectedSeverity.all = !$scope.selectedSeverity.all;
+
+ if($scope.selectedSeverity.all){
+ $scope.selectedSeverity.normal = false;
+ $scope.selectedSeverity.warning = false;
+ $scope.selectedSeverity.critical = false;
+ }
+ }
+
+ $scope.toggleSeverity = function(severity){
+ $scope.selectedSeverity[severity] = !$scope.selectedSeverity[severity];
+
+ if($scope.selectedSeverity.normal &&
+ $scope.selectedSeverity.warning &&
+ $scope.selectedSeverity.critical){
+ $scope.selectedSeverity.all = true;
+ $scope.selectedSeverity.normal = false;
+ $scope.selectedSeverity.warning = false;
+ $scope.selectedSeverity.critical = false;
+ }else{
+ $scope.selectedSeverity.all = false;
+ }
+ }
+
+ $scope.doSearchOnEnter = function (event) {
+ var search = $scope.customSearch.replace(/^\s+/g,'').replace(/\s+$/g,'');
+ if (event.keyCode === 13 &&
+ search.length >= 2) {
+ $scope.searchTerms = $scope.customSearch.split(" ");
+ }else{
+ if(search.length == 0){
+ $scope.searchTerms = [];
+ }
+ }
+ };
+
+ $scope.doSearchOnClick = function() {
+ var search = $scope.customSearch.replace(/^\s+/g,'').replace(/\s+$/g,'');
+ if (search.length >= 2) {
+ $scope.searchTerms = $scope.customSearch.split(" ");
+ }else{
+ if(search.length == 0){
+ $scope.searchTerms = [];
+ }
+ }
+ }
+
+ $scope.jsonData = function(data){
+ var dt = {};
+ data.data.forEach(function(item){
+ dt[item.original_data.key] = item.original_data.value;
+ });
+ return JSON.stringify(dt);
+ };
+
+ $scope.filterBySeverity = function(sensor){
+ if($scope.selectedSeverity.all) return true;
+
+ return( (sensor.severity_flags.normal && $scope.selectedSeverity.normal) ||
+ (sensor.severity_flags.warning && $scope.selectedSeverity.warning) ||
+ (sensor.severity_flags.critical && $scope.selectedSeverity.critical)
+ );
+ }
+ $scope.filterBySearchTerms = function(sensor){
+
+ if(!$scope.searchTerms.length) return true;
+
+ for(var i = 0, length = $scope.searchTerms.length; i < length; i++){
+ if(sensor.search_text.indexOf($scope.searchTerms[i].toLowerCase()) == -1) return false;
+ }
+ return true;
+ }
+
+ function setSensorData(){
+ var data = dataService.sensorData.sensors.filter(function(item){
+ return item.type == sensorType;
+ });
+ if(data.length){
+ sensorData = data[0];
+ $scope.data = sensorData;
+ $scope.export_data = $scope.jsonData($scope.data);
+ }
+ }
+
+ if(!dataService.sensorData.sensors){
+ APIUtils.getAllSensorStatus(function(data, originalData){
+ dataService.sensorData = data;
+ setSensorData();
+ });
+ }else{
+ setSensorData();
+ }
+
}
]
);
OpenPOWER on IntegriCloud