multi-server changes and prototype additions

Change-Id: Icfdf19205bc4123ebd1bea086f01323ec41b4685
Signed-off-by: Michael Davis <michael.s.davis@ibm.com>
diff --git a/app/multi-server/controllers/multi-server-controller.html b/app/multi-server/controllers/multi-server-controller.html
index cf9daa4..b01605e 100644
--- a/app/multi-server/controllers/multi-server-controller.html
+++ b/app/multi-server/controllers/multi-server-controller.html
@@ -5,7 +5,7 @@
 	</div>
 	<section class="row column">
 		<div class="page-header">
-			<h2 class="inline h4">Displaying all auto-discovered and manually added servers</h2>
+			<h2 class="inline h4">All auto-discovered and manually added servers</h2>
 			<a class="inline float-right" ng-click="multi_server_add = !multi_server_add"><span class="icon icon__plus"></span>Add a server</a>
 		</div>
 	</section>
@@ -28,79 +28,109 @@
 			<div class="column large-12 header__actions-bar">
 				<div class="inline multi-server__title">Server name<span class="sort-heading"></span></div>
 				<div class="inline multi-server__col">BMC IP address<span class="sort-heading"></span></div>
-				<div class="inline multi-server__col">Model number<span class="sort-heading sort-down"></span></div>
-				<div class="inline multi-server__col narrow-col">Power<span class="sort-heading sort-up"></span></div>
+				<div class="inline multi-server__col">Model number<span class="sort-heading" ng-class="sort-down"></span></div>
+				<div class="inline multi-server__col narrow-col">Power<span class="sort-heading" ng-class="sort-up"></span></div>
 				<div class="inline multi-server__col narrow-col">Status<span class="sort-heading"></span></div>
 			</div>
 		</div>
 		<!-- server -->
 		<div class="multi-server__col-row">
 			<div class="inline multi-server__title">IBM Power Witherspoon 2 (current)</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">BMC IP address</span>9.3.111.222
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">BMC IP address</span>
+				<span class="multi-server__data">9.3.111.222</span>
 			</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">Model number</span>
+				<span class="multi-server__data">8335-GTC</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Power</span><span class="icon icon__off"></span>Off
+				<span class="multi-server__label">Power</span>
+				<span class="multi-server__data"><span class="icon icon__off" ng-class="{'icon__off': dataService.server_state == 'Off' || 'Unreachable', 'icon__good': dataService.server_state == 'Running', 'icon_standby': dataService.server_state == 'Standby'}"></span>Off</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Status</span><span class="icon icon__warning" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Warning
+				<span class="multi-server__label">Status</span>
+				<span class="multi-server__data"><span class="icon icon__critical" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Emergency</span>
 			</div>
 		</div>
 		<!-- server -->
 		<div class="multi-server__col-row">
 			<div class="inline multi-server__title">IBM Power Witherspoon 6</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">BMC IP address</span>9.3.111.222
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">BMC IP address</span>
+				<span class="multi-server__data">9.3.41.232</span>
 			</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">Model number</span>
+				<span class="multi-server__data">PRT85-GTC</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Power</span><span class="icon icon__good"></span>On
+				<span class="multi-server__label">Power</span>
+				<span class="multi-server__data"><span class="icon icon__good"></span>On</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Status</span><span class="icon icon__good" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Good
+				<span class="multi-server__label">Status</span>
+				<span class="multi-server__data"><span class="icon icon__good" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Good</span>
 			</div>
 		</div>
 		<!-- server -->
 		<div class="multi-server__col-row">
 			<div class="inline multi-server__title">IBM Power Witherspoon 4</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">BMC IP address</span>9.3.111.222
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">BMC IP address</span>
+				<span class="multi-server__data">9.3.21.233</span>
 			</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">Model number</span>
+				<span class="multi-server__data">MKU-GTC</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Power</span><span class="icon icon__good"></span>On
+				<span class="multi-server__label">Power</span>
+				<span class="multi-server__data"><span class="icon icon__good"></span>On</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Status</span><span class="icon icon__good" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Good
+				<span class="multi-server__label">Status</span>
+				<span class="multi-server__data"><span class="icon icon__good" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Good</span>
 			</div>
 		</div>
 		<!-- server -->
 		<div class="multi-server__col-row">
 			<div class="inline multi-server__title">Server 100023476 ligula sed magna dictum porta. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">BMC IP address</span>9.3.111.222
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">BMC IP address</span>
+				<span class="multi-server__data">9.3.51.244</span>
 			</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">Model number</span>
+				<span class="multi-server__data">854-GTC</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Power</span><span class="icon icon__good"></span>On
+				<span class="multi-server__label">Power</span>
+				<span class="multi-server__data"><span class="icon icon__good"></span>On</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Status</span><span class="icon icon__critical" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Critical
+				<span class="multi-server__label">Status</span>
+				<span class="multi-server__data"><span class="icon icon__critical" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Critical</span>
 			</div>
 		</div>
 		<!-- server -->
-		<div class="multi-server__col-row">
+		<div class="multi-server__col-row" ng-show="multi_server_row">
 			<div class="inline multi-server__title">Server 100023476</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">BMC IP address</span>9.3.111.222
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">BMC IP address</span>
+				<span class="multi-server__data">9.3.185.164</span>
 			</div>
-			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			<div class="inline multi-server__col courier-bold">
+				<span class="multi-server__label">Model number</span>
+				<span class="multi-server__data">82225-GTC</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Power</span><span class="icon icon__standby"></span>Standby
+				<span class="multi-server__label">Power</span>
+				<span class="multi-server__data"><span class="icon icon__standby"></span>Standby</span>
 			</div>
 			<div class="inline multi-server__col narrow-col bold">
-				<span class="multi-server__label">Status</span><span class="icon icon__good" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Good
+				<span class="multi-server__label">Status</span>
+				<span class="multi-server__data"><span class="icon icon__warning" ng-class="{'icon__critical': sensor.status == 'critical', 'icon__warning': sensor.status == 'warning', 'icon__normal': sensor.status == 'normal'}" aria-label="multi.status"></span>Warning</span>
 			</div>
 		</div>
 	</section>
@@ -121,8 +151,8 @@
 		<form id="multi-server_add-form" class="multi-server__add-form" action="">
 			<div class="modal__content row">
 				<div class="column large-12">
-					<label for="multi-server__host">Hostname</label>
-					<input id="multi-server__host" type="text" autofocus/>
+					<label for="multi-server__host">BMC IP Address</label>
+					<input id="multi-server__host" ng-model="multi_ip" type="text" autofocus/>
 				</div>
 				<div class="column large-6">
 					<label for="username">Username</label>
@@ -140,7 +170,7 @@
 			</label>
 			<div class="modal__button-wrapper">
 				<button class="inline btn-secondary" ng-click="multi_server_add=false;">Cancel</button>
-				<button class="inline btn-primary" ng-click="">Add</button>
+				<button class="inline btn-primary" ng-click="multi_server_row = true; multi_server_add = false; multi_ip = null">Add</button>
 			</div>
 			<p class="login__error-msg" role="alert" ng-if="error">Incorrect username or password</p>
 			<p class="login__error-msg" role="alert" ng-if="server_unreachable">Server unreachable</p>
diff --git a/app/multi-server/controllers/multi-server-controller.js b/app/multi-server/controllers/multi-server-controller.js
index 8d737cb..6bd8783 100644
--- a/app/multi-server/controllers/multi-server-controller.js
+++ b/app/multi-server/controllers/multi-server-controller.js
@@ -13,14 +13,42 @@
     angular
         .module('app.overview')
         .controller('multiServerController', [
-            '$scope', 
-            '$window', 
-            'APIUtils', 
+            '$scope',
+            '$window',
+            'APIUtils',
             'dataService',
             function($scope, $window, APIUtils, dataService){
                 $scope.dataService = dataService;
+                $scope.customSearch = "";
+                $scope.searchTerms = [];
                 $scope.loading = false;
+                $scope.clear = function(){
+                    $scope.customSearch = "";
+                    $scope.searchTerms = [];
+                }
 
+                $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 = [];
+                        }
+                    }
+                };
             }
         ]
     );
diff --git a/app/multi-server/controllers/multi-server-recent-controller.html b/app/multi-server/controllers/multi-server-recent-controller.html
new file mode 100644
index 0000000..0812b40
--- /dev/null
+++ b/app/multi-server/controllers/multi-server-recent-controller.html
@@ -0,0 +1,48 @@
+<div class="multi-server__recent" ng-class="{'active': multi_server_recent}">
+	<a class="multi-server__add-server"><span class="icon icon__plus"></span>Add a server</a>
+	<a href="#/multi-server/overview" ng-click="multiRecent()" class="multi-server__view-all">View all servers (12)<i class="icon icon-angle float-right"></i></a>
+	<div class="multi-server__recent-header">Recently accessed servers</div>
+	<!-- recent server-->
+	<div class="row multi-server__recent-server">
+		<button class="column large-7 multi-server__recent-name">IBM Power Witherspoon 2 (current)</button>
+		<div class="column large-3 multi-server__recent-ip">9.3.111.222</div>
+		<div class="column large-2 multi-server__recent-power"><span class="icon icon__good"></span>On</div>
+	</div>
+	<!-- recent server-->
+	<div class="row multi-server__recent-server">
+		<button class="column large-7 multi-server__recent-name">IBM Power Witherspoon 6 Pellentesque in ipsum id orci porta dapibus</button>
+		<div class="column large-3 multi-server__recent-ip">9.3.122.132</div>
+		<div class="column large-2 multi-server__recent-power"><span class="icon icon__good"></span>On</div>
+	</div>
+	<!-- recent server-->
+	<div class="row multi-server__recent-server">
+		<button class="column large-7 multi-server__recent-name">IBM Power Witherspoon 9</button>
+		<div class="column large-3 multi-server__recent-ip">9.3.100.233</div>
+		<div class="column large-2 multi-server__recent-power"><span class="icon icon__off"></span>Off</div>
+	</div>
+	<!-- recent server-->
+	<div class="row multi-server__recent-server">
+		<button class="column large-7 multi-server__recent-name">IBM Power Witherspoon 2 (current)</button>
+		<div class="column large-3 multi-server__recent-ip">9.3.111.122</div>
+		<div class="column large-2 multi-server__recent-power"><span class="icon icon__good"></span>On</div>
+	</div>
+	<!-- recent server-->
+	<div class="row multi-server__recent-server">
+		<button class="column large-7 multi-server__recent-name">IBM Power Witherspoon 6 Pellentesque in ipsum id orci porta dapibus</button>
+		<div class="column large-3 multi-server__recent-ip">9.3.122.132</div>
+		<div class="column large-2 multi-server__recent-power"><span class="icon icon__good"></span>On</div>
+	</div>
+	<!-- recent server-->
+	<div class="row multi-server__recent-server">
+		<button class="column large-7 multi-server__recent-name">IBM Power Witherspoon 9</button>
+		<div class="column large-3 multi-server__recent-ip">9.3.100.233</div>
+		<div class="column large-2 multi-server__recent-power"><span class="icon icon__off"></span>Off</div>
+	</div>
+	<!-- recent server-->
+	<div class="row multi-server__recent-server">
+		<button class="column large-7 multi-server__recent-name">IBM Power Witherspoon 2 (current)</button>
+		<div class="column large-3 multi-server__recent-ip">9.3.11.22</div>
+		<div class="column large-2 multi-server__recent-power"><span class="icon icon__standby"></span>Standby</div>
+	</div>
+</div>
+<div class="modal-overlay" tabindex="-1" ng-class="{'active': (multi_server_recent)}"></div>
\ No newline at end of file