adding multiserver page
Change-Id: I6f898d9a2e5a701ea58063da31a334a1a38e079e
Signed-off-by: Michael Davis <michael.s.davis@ibm.com>
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()">✕</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