1/**
2 * Controller for server
3 *
4 * @module app/serverHealth
5 * @exports inventoryOverviewController
6 * @name inventoryOverviewController
7 * @version 0.1.0
8 */
9
10window.angular && (function (angular) {
11    'use strict';
12
13    angular
14        .module('app.serverHealth')
15        .controller('inventoryOverviewController', [
16            '$scope',
17            '$window',
18            'APIUtils',
19            'dataService',
20            function($scope, $window, APIUtils, dataService){
21                $scope.dataService = dataService;
22                $scope.hardwares = [];
23                $scope.originalData = {};
24                $scope.customSearch = "";
25                $scope.searchTerms = [];
26                $scope.loading = false;
27
28                APIUtils.getHardwares(function(data, originalData){
29                    $scope.loading = true;
30                    $scope.hardwares = data;
31                    $scope.originalData = JSON.stringify(originalData);
32                    $scope.loading = false;
33                });
34
35                $scope.clear = function(){
36                    $scope.customSearch = "";
37                    $scope.searchTerms = [];
38                }
39
40                $scope.doSearchOnEnter = function (event) {
41                    var search = $scope.customSearch.replace(/^\s+/g,'').replace(/\s+$/g,'');
42                    if (event.keyCode === 13 &&
43                        search.length >= 2) {
44                        $scope.searchTerms = $scope.customSearch.split(" ");
45                    }else{
46                        if(search.length == 0){
47                            $scope.searchTerms = [];
48                        }
49                    }
50                };
51
52                $scope.doSearchOnClick = function() {
53                    var search = $scope.customSearch.replace(/^\s+/g,'').replace(/\s+$/g,'');
54                    if (search.length >= 2) {
55                        $scope.searchTerms = $scope.customSearch.split(" ");
56                    }else{
57                        if(search.length == 0){
58                            $scope.searchTerms = [];
59                        }
60                    }
61                }
62
63                $scope.filterBySearchTerms = function(hardware){
64
65                    if(!$scope.searchTerms.length) return true;
66
67                    for(var i = 0, length = $scope.searchTerms.length; i < length; i++){
68                        if(hardware.search_text.indexOf($scope.searchTerms[i].toLowerCase()) == -1) return false;
69                    }
70                    return true;
71                }
72            }
73        ]
74    );
75
76})(angular);
77