Add boot option override and TPM enable toggle

- Adds ability to set a bootsource override to allowable target value
- Adds ability to enable or disable TPM required policy
- Replaces power operations confirm directive with bootstrap modal

Tested: Confirmed override settings saved to redfish but unable to verify
if settings are automatically set to disabled by petitboot after a
one time boot. Passes DAP.

Resolves openbmc/phosphor-webui#82
Resolves openbmc/phosphor-webui#90

Signed-off-by: Dixsie Wolmers <dixsiew@gmail.com>
Change-Id: If0ffd6f9328939d70c7958ee11fb90bd20a1e685
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/app/server-control/styles/power-operations.scss b/app/server-control/styles/power-operations.scss
index fbc5a7f..6a29dfd 100644
--- a/app/server-control/styles/power-operations.scss
+++ b/app/server-control/styles/power-operations.scss
@@ -1,7 +1,6 @@
 // Power Operations SCSS
 
-#power-operations {
-
+.power-operations {
   // Power Current status wrapper
   .power__current-status {
     border-bottom: 1px solid $border-color-01;
@@ -11,9 +10,9 @@
   // Power state indicator on/off
   .power__state {
     font-weight: 700;
-    margin-top: -.3em;
+    margin-top: -0.3em;
     span:before {
-      content: '';
+      content: "";
       position: absolute;
       @extend .icon__off;
       margin-left: -25px;
@@ -24,16 +23,16 @@
   .power__indicator-bar {
     font-weight: bold;
     width: 100%;
-    padding: 1em 2em .7em;
+    padding: 1em 2em 0.7em;
     margin-bottom: 3em;
     background-size: 200% 100%;
-    background-image: linear-gradient(to right, darken($background-02,3%) 50%, $accent-02--02 50%);
+    background-image: linear-gradient(to right, darken($background-02, 3%) 50%, $accent-02--02 50%);
     background-position: 0;
     transition: background-position 2s ease;
     overflow: hidden;
-    display:flex;
+    display: flex;
     justify-content: space-between;
-    align-items:center;
+    align-items: center;
     p {
       padding: 0;
       margin: 0;
@@ -43,8 +42,8 @@
       background-position: -100%;
       .power__state {
         span:before {
-          content: '';
-         @extend .icon__good;
+          content: "";
+          @extend .icon__good;
         }
       }
     }
@@ -53,7 +52,7 @@
       color: $primary-dark;
       .power__state {
         span:before {
-          content: '';
+          content: "";
           @extend .icon__off;
         }
       }
@@ -64,7 +63,7 @@
       .power__state {
         span:before {
           color: $status-warn;
-          content: '';
+          content: "";
           @extend .icon__warning;
         }
       }
@@ -74,28 +73,92 @@
       color: $primary-dark;
       .power__state {
         span:before {
-          content: '';
+          content: "";
           @extend .icon__critical;
         }
       }
     }
   }
 
-  // Power button options
-  .power-option {
-    padding: 1.8em 0 1em 0;
-    position: relative;
-    overflow: hidden;
-    min-height: 1px;
-    min-width: 100%;
-    .btn {
-      margin-bottom: .5em;
-      margin-right: 1em;
-      min-width: 240px;
+  .boot-options,
+  .boot-operations {
+    margin-bottom: 1em;
+  }
+
+  .boot-options {
+    .control-check {
+      padding-top: 4px;
     }
-    @include mediaQuery(x-small){
-      padding: 1.8em 0 1em 0;
+    .boot-checkbox {
+      padding-left: 2em;
+      text-transform: none;
+      font-weight: 400;
+      font-size: 16px;
+      color: $primary-dark;
     }
   }
 
+  .boot-options-wrapper {
+    padding: 0 2em 2em 0;
+  }
+
+  .operations-wrapper {
+    .reboot__operations,
+    .shutdown__operations {
+      margin-bottom: 1.5em;
+      .control-radio {
+        padding: 0.3em 1em 0 2em;
+        text-transform: none;
+        font-weight: 400;
+        font-size: 16px;
+        color: $primary-dark;
+      }
+    }
+
+    .alert-warning {
+      border: 1px solid $accent-03--01;
+      padding: 1em;
+      margin-bottom: 1em;
+      display: flex;
+      align-items: center;
+      .pending-icon {
+        padding: 0 1em 0 0;
+      }
+      .alert-pending {
+        margin-top: 0.3em;
+        margin-bottom: 0;
+      }
+    }
+  }
+
+  .boot-settings-form {
+    background-color: $base-02--06;
+    padding: 2em;
+    .boot-form-actions {
+      margin-bottom: 4em;
+    }
+    .btn {
+      display: block;
+      float: right;
+      margin: 0.5em 0 0 1em;
+    }
+  }
+
+  .control-radio .control__indicator-on {
+    width: 20px;
+    height: 20px;
+    top: 3px;
+    left: 3px;
+  }
+
+  .control-radio .control__indicator-on:after {
+    top: 3px;
+    left: 3px;
+    width: 10px;
+    height: 10px;
+  }
+
+  .icon__warning {
+    width: 24px;
+  }
 } //end power-operations