Add dynamic content to hardware inventory page

Change-Id: I3b34e58ada63c32e2476e37b7116232f5763bbdb
Signed-off-by: Iftekharul Islam <iislam@us.ibm.com>
diff --git a/app/server-health/controllers/inventory-overview-controller.js b/app/server-health/controllers/inventory-overview-controller.js
index 3eda37b..81fd833 100644
--- a/app/server-health/controllers/inventory-overview-controller.js
+++ b/app/server-health/controllers/inventory-overview-controller.js
@@ -19,6 +19,48 @@
             'dataService',
             function($scope, $window, APIUtils, dataService){
                 $scope.dataService = dataService;
+                $scope.hardwares = [];
+                $scope.originalData = {};
+                $scope.customSearch = "";
+                $scope.searchTerms = [];
+
+                APIUtils.getHardwares(function(data, originalData){
+                    $scope.hardwares = data;
+                    $scope.originalData = JSON.stringify(originalData);
+                });
+
+                $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.filterBySearchTerms = function(hardware){
+
+                    if(!$scope.searchTerms.length) return true; 
+
+                    for(var i = 0, length = $scope.searchTerms.length; i < length; i++){
+                        if(hardware.search_text.indexOf($scope.searchTerms[i].toLowerCase()) == -1) return false;
+                    }
+                    return true;
+                }
             }
         ]
     );