blob: 9705395b14c62112534f8988b9681df00951cf67 [file] [log] [blame]
Michael Davis994a93b2017-04-18 10:01:04 -05001/**
Iftekharul Islamcd789502017-04-19 14:37:55 -05002 * Controller for server
Michael Davis994a93b2017-04-18 10:01:04 -05003 *
Iftekharul Islamcd789502017-04-19 14:37:55 -05004 * @module app/serverHealth
5 * @exports inventoryOverviewController
6 * @name inventoryOverviewController
Michael Davis994a93b2017-04-18 10:01:04 -05007 */
8
Andrew Geisslerba5e3f32018-05-24 10:58:00 -07009window.angular && (function(angular) {
10 'use strict';
Michael Davis994a93b2017-04-18 10:01:04 -050011
Andrew Geisslerd27bb132018-05-24 11:07:27 -070012 angular.module('app.serverHealth').controller('inventoryOverviewController', [
13 '$scope', '$window', 'APIUtils', 'dataService',
14 function($scope, $window, APIUtils, dataService) {
15 $scope.dataService = dataService;
16 $scope.hardwares = [];
17 $scope.originalData = {};
18 $scope.customSearch = '';
19 $scope.searchTerms = [];
20 $scope.loading = false;
21
22 $scope.loading = true;
23 APIUtils.getHardwares(function(data, originalData) {
24 $scope.hardwares = data;
25 $scope.originalData = JSON.stringify(originalData);
26 $scope.loading = false;
27 });
28
29 $scope.clear = function() {
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070030 $scope.customSearch = '';
31 $scope.searchTerms = [];
Andrew Geisslerd27bb132018-05-24 11:07:27 -070032 };
Iftekharul Islamee27d752017-07-05 15:54:31 -050033
Andrew Geisslerd27bb132018-05-24 11:07:27 -070034 $scope.doSearchOnEnter = function(event) {
35 var search =
36 $scope.customSearch.replace(/^\s+/g, '').replace(/\s+$/g, '');
37 if (event.keyCode === 13 && search.length >= 2) {
38 $scope.searchTerms = $scope.customSearch.split(' ');
39 } else {
40 if (search.length == 0) {
41 $scope.searchTerms = [];
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070042 }
Andrew Geisslerd27bb132018-05-24 11:07:27 -070043 }
44 };
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070045
Andrew Geisslerd27bb132018-05-24 11:07:27 -070046 $scope.doSearchOnClick = function() {
47 var search =
48 $scope.customSearch.replace(/^\s+/g, '').replace(/\s+$/g, '');
49 if (search.length >= 2) {
50 $scope.searchTerms = $scope.customSearch.split(' ');
51 } else {
52 if (search.length == 0) {
53 $scope.searchTerms = [];
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070054 }
Andrew Geisslerd27bb132018-05-24 11:07:27 -070055 }
56 };
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070057
Andrew Geisslerd27bb132018-05-24 11:07:27 -070058 $scope.filterBySearchTerms = function(hardware) {
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070059
Andrew Geisslerd27bb132018-05-24 11:07:27 -070060 if (!$scope.searchTerms.length) return true;
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070061
Andrew Geisslerd27bb132018-05-24 11:07:27 -070062 for (var i = 0, length = $scope.searchTerms.length; i < length; i++) {
63 if (hardware.search_text.indexOf(
64 $scope.searchTerms[i].toLowerCase()) == -1)
65 return false;
66 }
67 return true;
68 };
69 }
70 ]);
Michael Davis994a93b2017-04-18 10:01:04 -050071
72})(angular);