added sensor templates

Change-Id: I805828ce3cb80dbceb1dbba5d0e39fb31fbd6baf
Signed-off-by: Michael Davis <michael.s.davis@ibm.com>
diff --git a/app/assets/images/crit-x.svg b/app/assets/images/crit-x.svg
new file mode 100644
index 0000000..9ae6c7d
--- /dev/null
+++ b/app/assets/images/crit-x.svg
@@ -0,0 +1,12 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 31.6 29.5" style="enable-background:new 0 0 31.6 29.5;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#E62325;stroke-width:4;stroke-miterlimit:10;}
+</style>
+<g id="Layer_1_1_">
+	<path class="st0" d="M28.9,27.7C25.5,24.4,3.6,2.4,3.6,2.4"/>
+	<path class="st0" d="M28.9,2.4C25.5,5.7,3.6,27.7,3.6,27.7"/>
+</g>
+<g id="Layer_2">
+</g>
+</svg>
diff --git a/app/assets/images/icon-checklist-white.svg b/app/assets/images/icon-checklist-white.svg
new file mode 100644
index 0000000..186346e
--- /dev/null
+++ b/app/assets/images/icon-checklist-white.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFFFFF;}
+</style>
+<g>
+	<path class="st0" d="M0,0v12l4,4h12V0H0z M14,14H5v-3H2V2h12V14z"/>
+	<polygon class="st0" points="12.5,5.5 11,4 7,8 5.5,6.5 4,8 7,11 	"/>
+</g>
+</svg>
diff --git a/app/assets/images/icon-copy-white.svg b/app/assets/images/icon-copy-white.svg
new file mode 100644
index 0000000..168dfa6
--- /dev/null
+++ b/app/assets/images/icon-copy-white.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFFFFF;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M11,4V0H1v12h4v4h10V4H11z M5,10H3V2h6v2H5V10z M13,14H7V6h6V14z"/>
+	</g>
+	<rect x="8" y="7" class="st0" width="4" height="2"/>
+	<rect x="8" y="10" class="st0" width="4" height="2"/>
+</g>
+</svg>
diff --git a/app/assets/images/icon-trashcan-white.svg b/app/assets/images/icon-trashcan-white.svg
new file mode 100644
index 0000000..f6cde77
--- /dev/null
+++ b/app/assets/images/icon-trashcan-white.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 22 22" style="enable-background:new 0 0 22 22;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFFFFF;}
+</style>
+<g>
+	<rect x="8.1" y="1" class="st0" width="5.7" height="1.4"/>
+	<path class="st0" d="M3.9,3.1v3.6h0.7V21h12.9V6.7h0.7V3.1H3.9z M16,19.6H6V8.1h10V19.6z"/>
+	<rect x="7.4" y="9.6" class="st0" width="0.7" height="8.6"/>
+	<rect x="9.6" y="9.6" class="st0" width="0.7" height="8.6"/>
+	<rect x="11.7" y="9.6" class="st0" width="0.7" height="8.6"/>
+	<rect x="13.9" y="9.6" class="st0" width="0.7" height="8.6"/>
+</g>
+</svg>
diff --git a/app/common/directives/app-navigation.html b/app/common/directives/app-navigation.html
index 2fd9c34..9fbf8fc 100644
--- a/app/common/directives/app-navigation.html
+++ b/app/common/directives/app-navigation.html
@@ -4,17 +4,17 @@
             <button class="btn-overview" ng-class="{opened: firstLevel == 'overview'}" ng-click="firstLevel = 'overview';" tabindex="1">
 
 
-                <span class="">Server Overview</span></button>
+                <span class="">Server overview</span></button>
         </li>
         <li>
             <button class="btn-health" ng-class="{opened: firstLevel == 'health'}" ng-click="firstLevel = 'health';" tabindex="9">
 
-                <span>Server Health</span></button>
+                <span>Server health</span></button>
         </li>
         <li>
             <button class="btn-control" ng-class="{opened: firstLevel == 'control'}" ng-click="firstLevel = 'control';">
 
-                <span>Server Control</span></button>
+                <span>Server control</span></button>
         </li>
         <li>
             <button class="btn-config" ng-class="{opened: firstLevel == 'config'}" ng-click="firstLevel = 'config';">
@@ -33,19 +33,15 @@
         </li>
     </ul>
     <ul class="nav__second-level btn-overview" ng-style="navStyle" ng-class="{opened: firstLevel == 'overview'}">
-        <li ng-class="{'active': (path == '/overview/system')}" tabindex="2"><a href="#/system-overview">System Overview</a></li>
-
-
-
-
+        <li ng-class="{'active': (path == '/overview/system')}" tabindex="2"><a href="#/system-overview">System overview</a></li>
 
     </ul>
     <ul class="nav__second-level btn-health" ng-style="navStyle"  ng-class="{opened: firstLevel == 'health'}">
-        <li ng-class="{'active': (path == '/overview/log')}"><a href="#/overview/log" tabindex="7">Event Log</a></li>
+        <li ng-class="{'active': (path == '/overview/log')}"><a href="#/overview/log" tabindex="7">Event log</a></li>
         <li><a href="">FRU Information</a></li>
-        <li><a href="">Sensor Data</a></li>
+        <li ng-class="{'active': (path == '/overview/sensors-overview')}"><a href="#/overview/sensors-overview">Sensor data</a></li>
         <li ng-class="{'active': (path == '/overview/power-consumption')}"><a href="" tabindex="4">Power consumption</a></li>
-        <li ng-class="{'active': (path == '/overview/unit-id')}"><a href="#/overview/unit-id" tabindex="6">Unit ID</a></li>
+        <li ng-class="{'active': (path == '/overview/unit-id')}"><a href="#/overview/unit-id" tabindex="6">Unit id</a></li>
         <li><a href="">Diagnostics</a></li>
     </ul>
     <ul class="nav__second-level btn-control" ng-style="navStyle"  ng-class="{opened: firstLevel == 'control'}">
diff --git a/app/common/styles/base/colors.scss b/app/common/styles/base/colors.scss
index 6642cef..d104c08 100644
--- a/app/common/styles/base/colors.scss
+++ b/app/common/styles/base/colors.scss
@@ -6,6 +6,7 @@
 $lightgrey: #ccc;
 $lightblue: #f0f2f5;
 $purple: #5A3EC8;
+$darkpurple: #20214f;
 $field__disabled: #d8d8d8;
 $btn__disabled-txt: #a6a5a6;
 $btn__disabled-bg: #d8d8d8;
@@ -38,6 +39,20 @@
 $alert__warning: rgb(255, 127, 0);
 $alert__message: rgb(203, 221, 235);
 
+// Severity
+$critical-lightbg: #e62325;
+$critical-darkbg: #ff5c49;
+$medium-lightbg: #dc267f;
+$medium-darkbg: #FF509E;
+$warning-lightbg: rgb(255, 127, 0);
+$warning-darkbg: #ffb000;
+$normal: #00baa1;
+
+// Threshold graphs
+$thresh-critical: $error-color;
+$thresh-warning: #ff806c;
+$thresh-normal: #8ee9d4;
+
 // Links
 $links: #648FFF;
 $links__hover: $lightbg__primary;
diff --git a/app/common/styles/base/typography.scss b/app/common/styles/base/typography.scss
index 461304c..f293f3d 100644
--- a/app/common/styles/base/typography.scss
+++ b/app/common/styles/base/typography.scss
@@ -45,3 +45,9 @@
   font-size: 1rem;
   letter-spacing: -.05rem;
 }
+
+.content-header {
+  font-weight: 700;
+  margin-bottom: 0;
+  margin-top: 2em;
+}
\ No newline at end of file
diff --git a/app/common/styles/base/utility.scss b/app/common/styles/base/utility.scss
index 8f17403..5982d0f 100644
--- a/app/common/styles/base/utility.scss
+++ b/app/common/styles/base/utility.scss
@@ -48,6 +48,10 @@
   z-index:200;
 }
 
+.bold {
+  font-weight: 700;
+}
+
 .no-margin {
   margin: 0px !important;
 }
diff --git a/app/common/styles/elements/accordion.scss b/app/common/styles/elements/accordion.scss
index 75d3c5e..ba6d2fd 100644
--- a/app/common/styles/elements/accordion.scss
+++ b/app/common/styles/elements/accordion.scss
@@ -4,7 +4,8 @@
 #header__actions-bar {
   padding-top: 1em;
   padding-right: 1em;
-  background: $medgrey;
+  background: $darkpurple;
+  color: $white;
   margin-left: 0;
 
   .event__actions {
@@ -46,13 +47,16 @@
   position: relative;
   border-top: 1px solid $lightgrey;
   padding: 1em 1em 1em 0em;
-  background: $lightblue;
+  background: $white;
   overflow: hidden;
   &.active,
   &.selected {
-    background: $white;
+    background: $lightblue;
   }
   &:hover {
-    background: $white;
+    background: $lightblue;
+  }
+  &:last-child {
+    border-bottom: 1px solid $lightgrey;
   }
 }
\ No newline at end of file
diff --git a/app/common/styles/elements/export.scss b/app/common/styles/elements/export.scss
new file mode 100644
index 0000000..45b910a
--- /dev/null
+++ b/app/common/styles/elements/export.scss
@@ -0,0 +1,26 @@
+//Export button
+.btn-export {
+  text-transform: capitalize;
+  color: $black;
+  font-size: .9em;
+  font-weight: 700;
+  position: relative;
+  padding: 0 0 1em 2em;
+  margin-right: .6em;
+  &:hover {
+    text-decoration: underline;
+  }
+}
+.btn-export {
+  margin-top: 7px;
+}
+.btn-export:before {
+  content: '\21E5';
+  position: absolute;
+  font-size: 1.7em;
+  vertical-align: middle;
+  transform: rotate(90deg);
+  display: inline-block;
+  left: 2px;
+  top: -5px;
+}
\ No newline at end of file
diff --git a/app/common/styles/elements/index.scss b/app/common/styles/elements/index.scss
index 11c4968..909236d 100644
--- a/app/common/styles/elements/index.scss
+++ b/app/common/styles/elements/index.scss
@@ -1,9 +1,12 @@
 
 @import "toggle-switch";
+@import "toggle-filter";
 @import "status";
 @import "alerts";
 @import "tags";
 @import "inline-confirm";
 @import "accordion";
 @import "content-search";
-@import "paginate";
\ No newline at end of file
+@import "paginate";
+@import "export";
+@import "thresholds";
\ No newline at end of file
diff --git a/app/common/styles/elements/tags.scss b/app/common/styles/elements/tags.scss
index b2eab1d..cb483d6 100644
--- a/app/common/styles/elements/tags.scss
+++ b/app/common/styles/elements/tags.scss
@@ -60,4 +60,76 @@
 }
 .event__low {
   background: lighten($lightbg__primary, 30%);
+}
+
+// Priority tags
+.priority-tag {
+  color: $white;
+  font-size: .8em;
+  text-transform: uppercase;
+  padding: 2px 2em;
+  font-weight: 700;
+  line-height: inherit;
+  min-width: 103px;
+  text-align: center;
+
+  &.high-priority {
+    background: $error-color;
+
+  }
+  &.med-priority {
+    background: $alert__warning;
+
+  }
+  &.low-priority {
+    background: $lightbg__primary;
+  }
+  &.event-resolved {
+    background: $purple;
+    padding: 2px 1em;
+  }
+}
+
+.priority-tag-circ {
+  //padding: 0;
+  //line-height: inherit;
+  width: 20px;
+  height: 20px;
+  border-radius: 50%;
+  background: rgba( $normal, .4);
+  position: relative;
+  border-width: 2px;
+  border-style: solid;
+  border-color: $normal;
+  &.high-priority {
+    color: $critical-lightbg;
+    background-color: rgba( $critical-lightbg, .4 );
+    background-image: url(/assets/images/crit-x.svg);
+    border-color: $critical-lightbg;
+    &:before {
+      content: '';
+      position: absolute;
+      top: -11px;
+      left: -3px;
+      font-weight: 600;
+      font-size: 1.5em;
+      -webkit-font-smoothing: antialiased;
+      text-shadow: 1px 1px 1px rgba(0,0,0,0.004);
+    }
+  }
+  &.medium-priority {
+    background: rgba($medium-lightbg, .5);
+    border-color: rgba($medium-lightbg, 1);
+  }
+  &.warn-priority {
+    background: rgba($warning-lightbg, .5);
+    border-color: $warning-lightbg;
+  }
+  &.normal-priority {
+    background: rgba( $normal, .4);
+  }
+  &.event-resolved {
+    background: $purple;
+    padding: 2px 1em;
+  }
 }
\ No newline at end of file
diff --git a/app/common/styles/elements/thresholds.scss b/app/common/styles/elements/thresholds.scss
new file mode 100644
index 0000000..e8192b3
--- /dev/null
+++ b/app/common/styles/elements/thresholds.scss
@@ -0,0 +1,84 @@
+// Thresholds graph
+
+$threshColorLighten: 5%;
+.threshold-chart__wrapper {
+  position: relative;
+  padding-bottom: 2em;
+  .threshold__label {
+    position: absolute;
+    top: 25%;
+    transform: translateY(-50%);
+    font-weight: 700;
+    &.low {
+      margin-left: 0;
+    }
+    &.high {
+      right: 5px;
+    }
+  }
+  @include mediaQuery(large) {
+    max-width: 1000px;
+  }
+}
+
+.threshold-chart {
+  position: relative;
+  line-height: 0;
+  padding: .8em 0 2em 3px;
+  margin: 0 2.5em;
+ //margin: 0 auto;
+  .threshold__marker {
+    position: absolute;
+    top: 13px;
+    bottom: -15px;
+    width: 4px;
+    background-color: $black;
+    @include slowTransition-all;
+    .threshold__value {
+      position: absolute;
+      bottom: 3px;
+      right: 5px;
+      margin: 0;
+      color: $black;
+      padding: 3px 6px;
+      font-weight: 400;
+      font-size: 1em;
+      white-space: nowrap;
+    }
+  }
+  .threshold__marker {
+    &.thresh__low-critical .threshold__value {
+      left: 0;
+      @include slowTransition-all;
+    }
+  }
+  .threshold {
+    display: inline-block;
+    background-color: $thresh-normal;
+    min-width: 10%;
+    min-height: 25px;
+    margin: 0 -3px;
+    &.thresh__normal {
+      min-width: 60%;
+    }
+  }
+
+  .threshold__marker,
+  .threshold {
+    &.thresh__low-critical {
+      background-color: $thresh-critical;
+    }
+    &.thresh__low-warn {
+      background-color: $thresh-warning;
+    }
+    &.thresh__high-warn {
+      background-color: $thresh-warning;
+    }
+    &.thresh__high-critical {
+      background-color: $thresh-critical;
+    }
+    &.thresh__normal {
+      background-color: $thresh-normal;
+    }
+  }
+}
diff --git a/app/common/styles/elements/toggle-filter.scss b/app/common/styles/elements/toggle-filter.scss
new file mode 100644
index 0000000..4eae9e8
--- /dev/null
+++ b/app/common/styles/elements/toggle-filter.scss
@@ -0,0 +1,31 @@
+// toggle buttons for filtering
+.toggle-filter {
+  .filter-label {
+    color: darken($lightgrey, 10%);
+    text-transform: uppercase;
+    font-weight: 700;
+    font-size: .75em;
+    margin-bottom: 3px;
+  }
+  margin-right: 2em;
+  margin-bottom: 1em;
+  button {
+    margin: 3px -3px;
+    padding: .6em 2em;
+    min-height: 2.1em;
+    font-size: .9em;
+    font-weight: 700;
+    border-radius: 0;
+    &.first,
+    &.last {
+      border-radius: 3px;
+    }
+    &.last {
+      border-left: 0;
+    }
+  }
+  .btn-primary {
+    border: 2px solid $primebtn__bg;
+  }
+
+}
\ No newline at end of file
diff --git a/app/common/styles/layout/content.scss b/app/common/styles/layout/content.scss
index e36fa66..18c34b9 100644
--- a/app/common/styles/layout/content.scss
+++ b/app/common/styles/layout/content.scss
@@ -11,6 +11,6 @@
 }
 
 section.row {
-  padding-left: 0;
-  padding-right: 0;
+  //padding-left: 0;
+  //padding-right: 0;
 }
\ No newline at end of file
diff --git a/app/index.html b/app/index.html
index 79dc11b..848db3c 100644
--- a/app/index.html
+++ b/app/index.html
@@ -53,6 +53,8 @@
 	<script src="overview/controllers/system-overview-controller.js"></script>
 	<script src="overview/controllers/unit-id-controller.js"></script>
 	<script src="overview/controllers/log-controller.js"></script>
+	<script src="overview/controllers/sensors-controller.js"></script>
+	<script src="overview/controllers/sensors-overview-controller.js"></script>
 	<!-- endbuild -->
 </body>
 
diff --git a/app/overview/controllers/log-controller.html b/app/overview/controllers/log-controller.html
index a7da213..3d3e149 100644
--- a/app/overview/controllers/log-controller.html
+++ b/app/overview/controllers/log-controller.html
@@ -4,7 +4,7 @@
     </div>
     <section class="row column">
         <div class="page-header">
-            <h2 class="inline h4">All events generated by the system</h2>
+            <h2 class="inline h4">Events generated by the system</h2>
             <div class="event-log__timezone inline float-right">
                 <button class="dropdown__button" ng-click="timezone = timezone == true ? false : true;"
                         ng-blur="timezone = timezone == true ? false : false;">User timezone: EDT (UTC-4)
@@ -85,7 +85,7 @@
         </div>
         <!-- search -->
         <div class="content__search">
-            <label for="event__search">Event Log Search</label>
+            <label for="content__search-input">Event Log Search</label>
             <input id="content__search-input" type="text" placeholder="Filter issues"/>
             <input id="event__search-submit" type="submit" class="btn btn-secondary" value="Submit"/>
             <div class="event__search-tag-wrapper row"
diff --git a/app/overview/controllers/sensors-controller.html b/app/overview/controllers/sensors-controller.html
new file mode 100644
index 0000000..ff4ea56
--- /dev/null
+++ b/app/overview/controllers/sensors-controller.html
@@ -0,0 +1,146 @@
+<div id="sensors">
+    <div class="row column">
+        <h1>Fan Speed Sensors</h1>
+    </div>
+    <section class="row column">
+        <div class="page-header">
+            <h2 class="inline h4">Sensors present in the system</h2>
+            <button class="inline btn-export float-right">Export</button>
+        </div>
+    </section>
+
+    <!-- Filters -->
+    <section class="row column">
+        <!-- search -->
+        <div class="content__search">
+            <label for="content__search-input">Sensors Search</label>
+            <input id="content__search-input" type="text" placeholder="Filter issues"/>
+            <input id="content__search-submit" type="submit" class="btn btn-secondary" value="Submit"/>
+        </div>
+        <div class="toggle-filter">
+            <button class="inline first btn-primary">All
+            </button>
+            <button class="inline " ng-click="togglehigh = !togglehigh"
+                    ng-class="togglehigh ? 'btn-primary' : 'btn-secondary'">Critical
+            </button>
+            <button class="inline" ng-click="togglemed = !togglemed"
+                    ng-class="togglemed ? 'btn-primary' : 'btn-secondary'">Warning
+            </button>
+            <button class="inline last" ng-click="togglelow = !togglelow"
+                    ng-class="togglelow ? 'btn-primary' : 'btn-secondary'">Normal
+            </button>
+        </div>
+    </section> <!-- end filter -->
+
+    <section class="row column">
+    <div id="back-link">
+        <a href="#/overview/sensors-overview">Back to Sensor Overview</a>
+    </div>
+    </section>
+
+    <section id="sensor__details" class="row column">
+        <div class="row column header-row">
+            <div class="column small-10 large-11 end header__actions-bar">
+                <p class="inline priority-tag-circ high-priority" aria-label="High Priority"></p>
+                <p class="inline sensor__heading sensor__category">Fan speed (RPMs)</p>
+                <p class="inline sensor__heading middle">Reading</p>
+                <p class="inline float-right sensor__heading right">State</p>
+            </div>
+            <div class="column small-2 large-1 sensor__heading trigger-col"></div>
+        </div>
+
+        <!-- Sensor -->
+        <div class="row column accord-row" ng-class="{'active': sensors__metadatarow, 'selected': sensors__selected}">
+            <div class="row">
+                <div class="column small-10 large-11 sensor__info" ng-click="sensors__metadatarow = ! sensors__metadatarow">
+                    <p class="inline priority-tag-circ high-priority" aria-label="High Priority"></p>
+                    <p class="inline sensor__title">Fan Speed 1</p>
+                    <p class="inline sensor__reading">6200 <span>rpms</span></p>
+                    <p class="inline float-right sensor__critical-label">Critical</p>
+                </div>
+                <div class="column small-2 large-1">
+                    <button class="accord-trigger" ng-class="{'active': sensors__metadatarow}" ng-click="sensors__metadatarow = ! sensors__metadatarow"></button>
+                </div>
+            </div>
+            <div class="row sensors__metadata-row" ng-class="{'active': sensors__metadatarow}">
+                <div class="column small-12">
+                    <div class="threshold-chart__wrapper">
+                        <span class="threshold__label low">Low</span>
+                        <div class="threshold-chart">
+                            <span class="threshold__marker thresh__high-critical" style="left: 90%;"><span class="threshold__value">6200 RPMs</span></span>
+                            <span class="threshold thresh__low-critical"></span>
+                            <span class="threshold thresh__low-warn"></span>
+                            <span class="threshold thresh__normal"></span>
+                            <span class="threshold thresh__high-warn"></span>
+                            <span class="threshold thresh__high-critical"></span>
+                        </div>
+                        <span class="threshold__label high">High</span>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <!-- Sensor -->
+        <div class="row column accord-row" ng-class="{'active': sensors__metadatarow2, 'selected': sensors__selected}">
+            <div class="row">
+                <div class="column small-10 large-11 sensor__info" ng-click="sensors__metadatarow2 = ! sensors__metadatarow2">
+                    <p class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></p>
+                    <p class="inline sensor__title">Fan Speed 2</p>
+                    <p class="inline sensor__reading">4600 <span>rpms</span></p>
+                </div>
+                <div class="column small-2 large-1">
+                    <button class="accord-trigger" ng-class="{'active': sensors__metadatarow2}" ng-click="sensors__metadatarow2 = ! sensors__metadatarow2"></button>
+                </div>
+            </div>
+            <div class="row sensors__metadata-row" ng-class="{'active': sensors__metadatarow2}">
+                <div class="column small-12">
+                    <div class="threshold-chart__wrapper">
+                        <span class="threshold__label low">Low</span>
+                        <div class="threshold-chart">
+                            <span class="threshold__marker thresh__normal" style="left: 40%;"><span class="threshold__value">4600 RPMs</span></span>
+                            <span class="threshold thresh__low-critical"></span>
+                            <span class="threshold thresh__low-warn"></span>
+                            <span class="threshold thresh__normal"></span>
+                            <span class="threshold thresh__high-warn"></span>
+                            <span class="threshold thresh__high-critical"></span>
+                        </div>
+                        <span class="threshold__label high">High</span>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <!-- Sensor -->
+        <div class="row column accord-row" ng-class="{'active': sensors__metadatarow3, 'selected': sensors__selected}">
+            <div class="row">
+                <div class="column small-10 large-11 sensor__info" ng-click="sensors__metadatarow3 = ! sensors__metadatarow3">
+                    <p class="inline priority-tag-circ warn-priority" aria-label="Medium Priority"></p>
+                    <p class="inline sensor__title">Fan Speed 3</p>
+                    <p class="inline sensor__reading">1200 <span>rpms</span></p>
+                    <p class="inline float-right sensor__warning-label">warning</p>
+                </div>
+                <div class="column small-2 large-1">
+                    <button class="accord-trigger" ng-class="{'active': sensors__metadatarow3}"
+                            ng-click="sensors__metadatarow3 = ! sensors__metadatarow3"></button>
+                </div>
+            </div>
+            <div class="row sensors__metadata-row" ng-class="{'active': sensors__metadatarow3}">
+                <div class="column small-12">
+                    <div class="threshold-chart__wrapper">
+                        <span class="threshold__label low">Low</span>
+                        <div class="threshold-chart">
+                            <span class="threshold__marker thresh__low-warn" style="left: 15%;"><span class="threshold__value">1200 RPMs</span></span>
+                            <span class="threshold thresh__low-critical"></span>
+                            <span class="threshold thresh__low-warn"></span>
+                            <span class="threshold thresh__normal"></span>
+                            <span class="threshold thresh__high-warn"></span>
+                            <span class="threshold thresh__high-critical"></span>
+                        </div>
+                        <span class="threshold__label high">High</span>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </section>
+    <paginate ng-include="paginate"></paginate>
+</div> <!-- end event log -->
diff --git a/app/overview/controllers/sensors-controller.js b/app/overview/controllers/sensors-controller.js
new file mode 100644
index 0000000..97d5d3c
--- /dev/null
+++ b/app/overview/controllers/sensors-controller.js
@@ -0,0 +1,30 @@
+/**
+ * Controller for log
+ *
+ * @module app/overview
+ * @exports logController
+ * @name logController
+ * @version 0.1.0
+ */
+
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.overview')
+        .controller('sensorsController', [
+            '$scope',
+            '$log',
+            '$window', 
+            'APIUtils', 
+            'dataService',
+            function($scope, $log, $window, APIUtils, dataService, userModel){
+                $scope.dataService = dataService;
+
+                $scope.dropdown_selected = false;
+
+            }
+        ]
+    );
+
+})(angular);
diff --git a/app/overview/controllers/sensors-overview-controller.html b/app/overview/controllers/sensors-overview-controller.html
new file mode 100644
index 0000000..1b86478
--- /dev/null
+++ b/app/overview/controllers/sensors-overview-controller.html
@@ -0,0 +1,50 @@
+<div id="sensors-overview">
+    <div class="row column">
+        <h1>Sensors Data</h1>
+    </div>
+    <section class="row column">
+        <div class="page-header">
+            <h2 class="inline h4">Sensors present in the system</h2>
+            <button class="inline btn-export float-right">Export</button>
+        </div>
+    </section>
+
+    <section class="row column">
+        <!-- search -->
+        <div class="content__search">
+            <label for="content__search-input">Event Log Search</label>
+            <input id="content__search-input" type="text" placeholder="Filter issues"/>
+            <input id="content__search-submit" type="submit" class="btn btn-secondary" value="Submit"/>
+        </div>
+        <div class="toggle-filter">
+            <button class="inline first btn-primary">All
+            </button>
+            <button class="inline " ng-click="togglehigh = !togglehigh"
+                    ng-class="togglehigh ? 'btn-primary' : 'btn-secondary'">Critical
+            </button>
+            <button class="inline" ng-click="togglemed = !togglemed"
+                    ng-class="togglemed ? 'btn-primary' : 'btn-secondary'">Warning
+            </button>
+            <button class="inline last" ng-click="togglelow = !togglelow"
+                    ng-class="togglelow ? 'btn-primary' : 'btn-secondary'">Normal
+            </button>
+        </div>
+
+    </section> <!-- end search -->
+
+    <section id="sensor-categories" class="row column">
+        <div class="row column header-row">
+            <div class="column large-12 header__actions-bar">
+                <p class="inline sensor__heading sensor__category">Sensors</p>
+                <p class="inline float-right sensor__heading right">State</p>
+            </div>
+        </div>
+        <a class="sensor__group" href="">All Sensors (50)</a>
+        <a class="sensor__group" href=""><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>Temperature (20)</a>
+        <a class="sensor__group" href="#/overview/sensors"> <span class="inline priority-tag-circ high-priority" aria-label="High Priority"></span>Fan Speed (15) <p class="inline float-right sensor__critical-label">Critical</p></a>
+        <a class="sensor__group" href=""><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>Altitude (1)</a>
+        <a class="sensor__group" href=""><span class="inline priority-tag-circ normal-priority" aria-label="Normal Priority"></span>Voltage (6)</a>
+        <a class="sensor__group" href=""><span class="inline priority-tag-circ warn-priority" aria-label="Warning Priority"></span>Current (5) <p class="inline float-right sensor__warning-label">Warning</p></a>
+        <a class="sensor__group" href=""><span class="inline priority-tag-circ normal-priority"></span>Power (3)</a>
+    </section>
+</div>
\ No newline at end of file
diff --git a/app/overview/controllers/sensors-overview-controller.js b/app/overview/controllers/sensors-overview-controller.js
new file mode 100644
index 0000000..e3cfe6f
--- /dev/null
+++ b/app/overview/controllers/sensors-overview-controller.js
@@ -0,0 +1,26 @@
+/**
+ * Controller for log
+ *
+ * @module app/overview
+ * @exports logController
+ * @name logController
+ * @version 0.1.0
+ */
+
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.overview')
+        .controller('sensorsOverviewController', [
+            '$scope', 
+            '$window', 
+            'APIUtils', 
+            'dataService',
+            function($scope, $window, APIUtils, dataService, userModel){
+                $scope.dataService = dataService;
+            }
+        ]
+    );
+
+})(angular);
diff --git a/app/overview/index.js b/app/overview/index.js
index bc37a37..fdf9f3b 100644
--- a/app/overview/index.js
+++ b/app/overview/index.js
@@ -18,6 +18,16 @@
         // Route configuration
         .config(['$routeProvider', function ($routeProvider) {
             $routeProvider
+                .when('/overview/sensors-overview', {
+                    'templateUrl': 'overview/controllers/sensors-overview-controller.html',
+                    'controller': 'sensorsOverviewController',
+                    authenticated: true
+                })
+                .when('/overview/sensors', {
+                    'templateUrl': 'overview/controllers/sensors-controller.html',
+                    'controller': 'sensorsController',
+                    authenticated: true
+                })
                 .when('/overview/bmc-reboot', {
                     'templateUrl': 'overview/controllers/bmc-reboot-controller.html',
                     'controller': 'bmcRebootController',
diff --git a/app/overview/styles/index.scss b/app/overview/styles/index.scss
index 43fca4b..d4ead7d 100644
--- a/app/overview/styles/index.scss
+++ b/app/overview/styles/index.scss
@@ -1,5 +1,6 @@
 @import "./bmc-reboot.scss";
 @import "./log.scss";
+@import "./sensors.scss";
 @import "./power-operations.scss";
 @import "./system-overview.scss";
 @import "./unit-id.scss";
\ No newline at end of file
diff --git a/app/overview/styles/sensors.scss b/app/overview/styles/sensors.scss
new file mode 100644
index 0000000..f720c3b
--- /dev/null
+++ b/app/overview/styles/sensors.scss
@@ -0,0 +1,249 @@
+
+@mixin state-label {
+  text-transform: uppercase;
+  font-weight: 700;
+  font-size: .8em;
+}
+
+$title-minWidth: 210px;
+
+.sensor__heading {
+  font-weight: 700;
+  &.middle,
+  &.right {
+    display: none;
+    @media (min-width: 950px) {
+      display: inline-block;
+    }
+  }
+}
+
+.sensor__critical-label {
+  color: $thresh-critical;
+  @include state-label;
+}
+.sensor__warning-label {
+  color: $thresh-warning;
+  @include state-label;
+}
+
+#sensors-overview {
+  .sensor__group {
+    position: relative;
+    display: block;
+    margin: .5em 0;
+    background: $white;
+    padding: 1.5em 6em 1.5em 3.7em;
+    text-decoration: none;
+    border: 1px solid $lightgrey;
+    font-weight: 700;
+    &:hover {
+      background: $lightblue;
+      color: $black;
+    }
+    @include mediaQuery(x-large) {
+      //max-width: 60%;
+    }
+  }
+  .priority-tag-circ {
+    position: absolute;
+    top: 50%;
+    left: 1.2em;
+    transform: translateY(-50%);
+  }
+  .header__actions-bar {
+    padding-left: 3.5em;
+    padding-right: 7.3em;
+  }
+}
+
+// Sensors
+
+#sensors, #sensors-overview {
+  .accord-row {
+    padding-left: 3.7em;
+    padding-right: 1em;
+  }
+  .content__search {
+    max-width: 100%;
+    @media(min-width: 1300px) {
+      max-width: 50%;
+    }
+  }
+  .toggle-filter {
+    display: inline-block;
+    margin-right: 0;
+  }
+}
+
+#back-link {
+  margin: 1em 0 0;
+  a {
+    text-decoration: none;
+    position: relative;
+    display: inline-block;
+    padding-left: 1.2em;
+    font-weight: 700;
+    &:before {
+      content: '\221F';
+      position: absolute;
+      top: 50%;
+      left: 0;
+      transform: translateY(-53%) rotate(45deg);
+      display: inline-block;
+      margin-right: 6px;
+      font-size: 1.1em;
+      font-weight: bold;
+      text-shadow: 0 0 1px black;
+    }
+    &:hover {
+      text-decoration: underline;
+    }
+  }
+}
+
+#sensor__details {
+  display: block;
+  margin-top: .6em;
+  position: relative;
+  overflow: hidden;
+
+  .header__actions-bar {
+    position: relative;
+    padding: 1em 35px 0 3.7em;
+
+    .priority-tag-circ {
+      position: absolute;
+      left: 1.2em;
+      top: 50%;
+      transform: translateY(-50%);
+      &.high-priority {
+        background-color: rgba($critical-darkbg, .3);
+      }
+    }
+    .sensor__category {
+      margin: 0;
+      color: $white;
+      min-width: $title-minWidth;
+    }
+  }
+  .header-row {
+    background: $darkpurple;
+  }
+
+  //Export log
+  .btn-export {
+    text-transform: capitalize;
+    color: $black;
+    font-size: .9em;
+    font-weight: 700;
+    position: relative;
+    padding: 0 0 1em 2em;
+    &:hover {
+      text-decoration: underline;
+    }
+  }
+  .btn-export {
+    margin-top: 7px;
+  }
+  .btn-export:before {
+    content: '\21E5';
+    position: absolute;
+    font-size: 1.7em;
+    vertical-align: middle;
+    transform: rotate(90deg);
+    display: inline-block;
+    left: 2px;
+    top: -5px;
+  }
+
+  .sensor__info {
+    padding-top: 10px;
+    &:hover {
+      cursor: pointer;
+    }
+  }
+
+  .accord-row {
+    // accordion row
+    .priority-tag-circ {
+      position: absolute;
+      top: 28px;
+      left: 1.2em;
+    }
+
+  }
+
+  //Sensor info
+  .sensor__title {
+    font-weight: 700;
+    font-size: 1.1em;
+    min-width: $title-minWidth;
+    max-width: 78%;
+    vertical-align: top;
+  }
+  .sensors__description {
+    font-weight: 400;
+  }
+
+  .sensor__reading {
+    @include fontCourierBold;
+    font-size: 1.2em;
+    color: $black;
+    max-width: 18%;
+  }
+
+  // Sensor metadata row
+  .sensors__metadata-row {
+    max-height: 0;
+    overflow: hidden;
+    -webkit-transition: 0.5s linear max-height;
+    transition: 0.5s linear max-height;
+    padding: 0;
+    @include  fastTransition-all;
+    @include mediaQuery(large) {
+      margin-left: 200px;
+    }
+    &.active {
+      max-height: 1000px; //max-height used to allow flexible height of content and still allow transition
+      @include mediaQuery(small) {
+        max-height: 1000px;
+      }
+      @include mediaQuery(medium) {
+        max-height: 1000px;
+      }
+    }
+  }
+
+  //Sensor Related Items
+  .sensors__related {
+    width: 100%;
+  }
+  .sensors__related-label {
+    font-weight: 700;
+    margin-right: 1.2em;
+    padding-top: .3em;
+  }
+
+  .sensors__related-item {
+    margin-right: 1em;
+    padding-top: .3em;
+    display: inline-block;
+    float: left;
+    clear: both;
+  }
+
+  .sensors__icon {
+    width: 20px;
+    height: 20px;
+    font-weight: normal;
+    margin-right: .5em;
+    margin-top: -3px;
+    display: inline-block;
+  }
+
+}
+
+//end sensor details
+
+