adding multiserver page

Change-Id: I6f898d9a2e5a701ea58063da31a334a1a38e079e
Signed-off-by: Michael Davis <michael.s.davis@ibm.com>
diff --git a/app/common/directives/app-navigation.html b/app/common/directives/app-navigation.html
index 6f630b6..6784990 100644
--- a/app/common/directives/app-navigation.html
+++ b/app/common/directives/app-navigation.html
@@ -66,12 +66,15 @@
 		</li>
 		<li>
 			<a class="btn-multi-server" ng-class="{opened: firstLevel == 'multi-server'}" href="#/multi-server/overview" ng-click="change('multi-server')">
-				<span class="">
-					<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 40 40" style="enable-background:new 0 0 40 40;" xml:space="preserve" class="nav-icon">
-						<path d="M23.9,18.2l3.3,3.3l1.1-1.1L23.9,16l-7.8,7.8l-3.3-3.3l-1.1,1.1l4.4,4.4L23.9,18.2z"/>
-						<path d="M5,8v24h30V8H5z M33,30H7V12h26V30z"/>
-					</svg>
-					Multi Server</span></a>
+				<span>
+					<svg class="nav-icon" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve">
+<path d="M12.8,7.3h4c0.2,1.5,1.5,2.8,3.1,2.8c1.7,0,3.1-1.4,3.1-3.1s-1.4-3.1-3.1-3.1c-1.5,0-2.7,1-3,2.4h-4C12.4,3.3,9.9,1,6.9,1
+	C3.7,1,1,3.6,1,6.9c0,0,0,0,0,0c0,3.1,2.4,5.7,5.5,5.9v4c-1.3,0.4-2.4,1.6-2.4,3c0,1.7,1.4,3.1,3.1,3.1s3.1-1.4,3.1-3.1
+	c0-1.6-1.2-2.9-2.8-3.1v-4c1.1-0.2,2.1-0.6,2.9-1.3l4.7,4.7c-0.4,0.5-0.6,1.1-0.6,1.8c0,1.7,1.4,3.1,3.1,3.1c1.7,0,3.1-1.4,3.1-3.1
+	c0-1.7-1.4-3.1-3.1-3.1c-0.6,0-1.3,0.2-1.8,0.6l-4.7-4.7C12.2,9.7,12.7,8.5,12.8,7.3z M2.2,6.9c0-2.6,2.1-4.7,4.7-4.7
+	s4.7,2.1,4.7,4.7s-2.1,4.7-4.7,4.7S2.2,9.5,2.2,6.9z"/>
+</svg>
+				Multi Server</span></a>
 		</li>
 	</ul>
 	<ul class="nav__second-level btn-health" ng-style="navStyle" ng-class="{opened: (showSubMenu && firstLevel == 'server-health')}">
@@ -84,7 +87,8 @@
 	</ul>
 	<ul class="nav__second-level btn-control" ng-style="navStyle" ng-class="{opened: (showSubMenu && firstLevel == 'server-control')}">
 		<li ng-class="{'active': (path == '/server-control' || path == '/server-control/power-operations')}">
-			<a href="#/server-control/power-operations" tabindex="9" ng-click="closeSubnav()">Server power operations</a></li>
+			<a href="#/server-control/power-operations" tabindex="9" ng-click="closeSubnav()">Server power operations</a>
+		</li>
 		<li ng-class="{'active': (path == '/server-control/server-led')}">
 			<a href="#/server-control/server-led" tabindex="10" ng-click="closeSubnav()">Server LED</a></li>
 		<li ng-class="{'active': (path == '/server-control/bmc-reboot')}">
diff --git a/app/multi-server/controllers/index-controller.html b/app/multi-server/controllers/index-controller.html
index b4be90e..cf9daa4 100644
--- a/app/multi-server/controllers/index-controller.html
+++ b/app/multi-server/controllers/index-controller.html
@@ -1,6 +1,150 @@
 <loader loading="loading"></loader>
-<div class="overview">
+<div id="multi-server">
 	<div class="row column">
-		<h1 class="inline">Multi Server</h1>
+		<h1>All servers</h1>
 	</div>
-</div>
\ No newline at end of file
+	<section class="row column">
+		<div class="page-header">
+			<h2 class="inline h4">Displaying 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>
+	<section class="row column">
+		<!-- search -->
+		<p class="content-label" aria-label="sensors filter">Filter servers</p>
+		<div class="content__search">
+			<label for="content__search-input">Multi server search</label>
+			<input id="content__search-input" type="text" ng-model="customSearch" ng-keydown="doSearchOnEnter($event)"/>
+			<div class="search-submit__wrapper">
+				<button class="clear-input" ng-click="clear()">&#10005;</button>
+				<input id="content__search-submit" type="submit" class="btn btn-primary content__search-submit" value="Filter" ng-click="doSearchOnClick()"/>
+			</div>
+
+		</div>
+	</section> <!-- end search -->
+
+	<section id="" class="row column">
+		<div class="row column header-row">
+			<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 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>
+			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			</div>
+			<div class="inline multi-server__col narrow-col bold">
+				<span class="multi-server__label">Power</span><span class="icon icon__off"></span>Off
+			</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
+			</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>
+			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			</div>
+			<div class="inline multi-server__col narrow-col bold">
+				<span class="multi-server__label">Power</span><span class="icon icon__good"></span>On
+			</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
+			</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>
+			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			</div>
+			<div class="inline multi-server__col narrow-col bold">
+				<span class="multi-server__label">Power</span><span class="icon icon__good"></span>On
+			</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
+			</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>
+			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			</div>
+			<div class="inline multi-server__col narrow-col bold">
+				<span class="multi-server__label">Power</span><span class="icon icon__good"></span>On
+			</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
+			</div>
+		</div>
+		<!-- server -->
+		<div class="multi-server__col-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>
+			<div class="inline multi-server__col courier-bold"><span class="multi-server__label">Model number</span>8335-GTC
+			</div>
+			<div class="inline multi-server__col narrow-col bold">
+				<span class="multi-server__label">Power</span><span class="icon icon__standby"></span>Standby
+			</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
+			</div>
+		</div>
+	</section>
+</div>
+
+<!-- add server modal -->
+<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': multi_server_add}">
+	<div class="modal__multi-add" role="document">
+		<div class="screen-reader-offscreen modal-description">To manually add a server that is not discovered automatically, provide either the BMC IP address or hostname and login credentials for its BMC</div><!-- accessibility only; used for screen readers -->
+		<div class="page-header ">
+			<h1 class="modal-title h4"><span class="icon icon__info"><svg xmlns="http://www.w3.org/2000/svg"
+					viewBox="0 0 32 32"><path
+					d="M18 14h-6v2h1v6h-2v2h8v-2h-2z"/><circle cx="16" cy="10" r="2"/><path
+					d="M16 2C8.269 2 2 8.269 2 16s6.269 14 14 14 14-6.269 14-14S23.731 2 16 2zm0 26C9.383 28 4 22.617 4 16S9.383 4 16 4s12 5.383 12 12-5.383 12-12 12z"/></svg></span>
+				Add a server
+			</h1>
+		</div>
+		<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/>
+				</div>
+				<div class="column large-6">
+					<label for="username">Username</label>
+					<input type="text" id="username" name="username" ng-model="username" ng-class="{error: error}" ng-keydown="tryLogin(username, password, $event)" ng-disabled="dataService.loading">
+				</div>
+				<div class="column large-6">
+					<label for="password">Password</label>
+					<input type="password" id="password" name="password" class="" ng-model="password" ng-keydown="tryLogin(username, password, $event)" ng-disabled="dataService.loading">
+				</div>
+			</div>
+			<label class="control-check">
+				<input id="multi-server__add-view" type="checkbox" name="events__check-all" ng-model="all" />
+				<span class="control__indicator"></span>
+				<span for="multi-server__add-view" class="inline">View this server once added</span>
+			</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>
+			</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>
+		</form>
+	</div>
+</section>
+<div class="modal-overlay" tabindex="-1" ng-class="{'active': (multi_server_add)}"></div>
\ No newline at end of file
diff --git a/app/multi-server/styles/index.scss b/app/multi-server/styles/index.scss
index 77a13b8..be88126 100644
--- a/app/multi-server/styles/index.scss
+++ b/app/multi-server/styles/index.scss
@@ -1 +1 @@
-@import "./overview.scss";
\ No newline at end of file
+@import "./multi-server.scss";
\ No newline at end of file
diff --git a/app/multi-server/styles/multi-server.scss b/app/multi-server/styles/multi-server.scss
new file mode 100644
index 0000000..2de7321
--- /dev/null
+++ b/app/multi-server/styles/multi-server.scss
@@ -0,0 +1,151 @@
+@mixin state-label {
+  text-transform: uppercase;
+  font-weight: 700;
+  font-size: .8em;
+}
+
+$title-minWidth: 210px;
+
+.header__actions-bar {
+  padding-left: 1.5em;
+  font-weight: 700;
+  .multi-server__col {
+    padding: 0;
+    &:hover {
+      cursor: pointer;
+    }
+  }
+  .multi-server__title {
+    padding: 0;
+    width: 30%;
+  }
+}
+
+.multi-server__heading-current {
+  margin: 0;
+  @include mediaQuery(medium) {
+    margin-left: 10px;
+    margin-right: 10px;
+  }
+}
+
+.multi-server__label {
+  float: left;
+  font-weight: 300;
+  @include fontFamily;
+  @include mediaQuery(medium) {
+    display: none;
+  }
+}
+
+.multi-server__col {
+  width: 100%;
+  text-align: right;
+  margin-bottom: 0;
+  display: none;
+  padding: .5em .8em .5em .8em;
+  @include mediaQuery(medium) {
+    display: inline-block;
+    width: auto;
+    min-width: calc(91% * (1 / 4) - 10px);
+    padding: .5em .8em .5em 0;
+    text-align: left;
+  }
+}
+
+.narrow-col {
+  min-width: 12%;
+}
+
+.multi-server__col-row {
+  position: relative;
+  display: block;
+  margin: 0;
+  background: $white;
+  text-decoration: none;
+  border: 1px solid $medgrey;
+  background: lighten($lightgrey,1%);
+  margin-top: 1em;
+  &:hover {
+    cursor: pointer;
+    background: $lightblue;
+    @include fastTransition-all;
+  }
+  @include mediaQuery(medium) {
+    padding: .3em 1em .3em 1.5em;
+    margin-top: 0;
+    border-top: 0;
+    background: transparent;
+  }
+  .multi-server__title {
+    font-weight: 700;
+    background: darken($lightgrey, 5%);
+    min-width: 100%;
+    padding: .5em .8em;
+    @include mediaQuery(medium) {
+      min-width: 30%;
+      max-width: 30%;
+      background: 0 0;
+      vertical-align: top;
+      margin-bottom: 0;
+      padding: .5em .8em .5em 0;
+    }
+    .icon__normal {
+      width: 0;
+    }
+  }
+  .content-label {
+    font-size: 1em;
+    margin-left: .8em;
+    color: $darkgrey;
+  }
+  .multi-server__col {
+    display: block;
+    @include mediaQuery(medium) {
+      display: inline-block;
+    }
+  }
+  .multi-server__current {
+    background: darken($thresh-normal, 3%);
+    margin: 0;
+    @include mediaQuery(medium) {
+      background: $thresh-normal;
+      padding: .7em .3em;
+      margin-left: 10px;
+      min-width: 109px;
+    }
+    @include mediaQuery(large) {
+      background: $thresh-normal;
+      padding: .7em;
+      margin-left: .3em;
+      margin-right: .3em;
+      min-width: 150px;
+    }
+    .multi-server__label {
+      font-weight: 700;
+      @include mediaQuery(medium) {
+        font-weight:300;
+      }
+    }
+  }
+  .multi-server__critical {
+    background: $thresh-critical;
+    color: $white;
+    .content-label {
+      color: $white;
+    }
+  }
+  .multi-server__warn {
+    background: $thresh-warning;
+    color: $black;
+    .content-label {
+      color: $black;
+    }
+  }
+}
+
+.multi-server__add-form {
+  .control-check {
+    padding-left: 25px;
+  }
+}
\ No newline at end of file
diff --git a/app/multi-server/styles/overview.scss b/app/multi-server/styles/overview.scss
deleted file mode 100644
index e69de29..0000000
--- a/app/multi-server/styles/overview.scss
+++ /dev/null