diff options
Diffstat (limited to 'app/common')
-rw-r--r-- | app/common/directives/app-navigation.html | 2 | ||||
-rw-r--r-- | app/common/directives/log-filter.js | 4 | ||||
-rw-r--r-- | app/common/services/api-utils.js | 147 | ||||
-rw-r--r-- | app/common/services/constants.js | 97 | ||||
-rw-r--r-- | app/common/services/userModel.js | 2 | ||||
-rw-r--r-- | app/common/styles/base/buttons.scss | 10 | ||||
-rw-r--r-- | app/common/styles/base/colors.scss | 4 | ||||
-rw-r--r-- | app/common/styles/base/icons.scss | 8 | ||||
-rw-r--r-- | app/common/styles/base/mixins.scss | 4 | ||||
-rw-r--r-- | app/common/styles/components/form-elements.scss | 2 | ||||
-rw-r--r-- | app/common/styles/directives/app-navigation.scss | 14 | ||||
-rw-r--r-- | app/common/styles/elements/alerts.scss | 4 | ||||
-rw-r--r-- | app/common/styles/elements/content-search.scss | 5 | ||||
-rw-r--r-- | app/common/styles/elements/export.scss | 4 | ||||
-rw-r--r-- | app/common/styles/elements/index.scss | 2 | ||||
-rw-r--r-- | app/common/styles/elements/thresholds.scss | 78 | ||||
-rw-r--r-- | app/common/styles/elements/toggle-filter.scss | 10 | ||||
-rw-r--r-- | app/common/styles/layout/content.scss | 9 |
18 files changed, 132 insertions, 274 deletions
diff --git a/app/common/directives/app-navigation.html b/app/common/directives/app-navigation.html index 4891c61..7a48757 100644 --- a/app/common/directives/app-navigation.html +++ b/app/common/directives/app-navigation.html @@ -1,4 +1,4 @@ -<nav> +<nav class="nav__wrapper"> <ul id="nav__top-level" ng-style="navStyle"> <li> <a class="btn-overview" ng-class="{opened: firstLevel == 'overview'}" href="#/overview/system" ng-click="change('overview')" tabindex="1"> diff --git a/app/common/directives/log-filter.js b/app/common/directives/log-filter.js index fcbffe4..b760308 100644 --- a/app/common/directives/log-filter.js +++ b/app/common/directives/log-filter.js @@ -10,7 +10,9 @@ window.angular && (function (angular) { 'controller': ['$rootScope', '$scope','dataService', '$location', function($rootScope, $scope, dataService, $location){ $scope.dataService = dataService; $scope.toggleSeverityAll = function(){ - $scope.selectedSeverity.all = !$scope.selectedSeverity.all; + if($scope.selectedSeverity.all !== true){ + $scope.selectedSeverity.all = !$scope.selectedSeverity.all; + } if($scope.selectedSeverity.all){ $scope.selectedSeverity.low = false; diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js index 3b8b7e0..0f3b729 100644 --- a/app/common/services/api-utils.js +++ b/app/common/services/api-utils.js @@ -369,12 +369,9 @@ window.angular && (function (angular) { }); }, getAllSensorStatus: function(callback){ - /** - GET https://9.3.185.156/xyz/openbmc_project/sensors/enumerate - */ $http({ method: 'GET', - url: "/assets/mocks/sensors.json", + url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/sensors/enumerate", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' @@ -385,101 +382,93 @@ window.angular && (function (angular) { var content = JSON.parse(json); var dataClone = JSON.parse(JSON.stringify(content.data)); var sensorData = []; - var allSensorSeveries = []; - var allSensorRows = []; - var total = 0; - var status = 'normal'; - var data = { - total: 0, - status: '', - sensors: [{ - title: 'All Sensors', - type: 'all', - status: '', - severity_flags: {}, - search_text: '', - display_headers: ['Sensor (Unit)', 'Reading', 'State'], - data: [] - }] - }; + var severity = {}; + var title = ""; + var tempKeyParts = []; + var order = 0; function getSensorStatus(reading){ - var severityFlags = {critical: false, warning: false, normal: false}, severityText = ''; - if(reading.Value >= reading.CriticalLow && reading.Value <= reading.CriticalHigh){ + var severityFlags = {critical: false, warning: false, normal: false}, severityText = '', order = 0; + + if(reading.hasOwnProperty('CriticalLow') && + reading.Value < reading.CriticalLow + ){ severityFlags.critical = true; severityText = 'critical'; - } - else if(reading.Value >= reading.WarningLow && reading.Value <= reading.WarningHigh){ + order = 2; + }else if(reading.hasOwnProperty('CriticalHigh') && + reading.Value > reading.CriticalHigh + ){ + severityFlags.critical = true; + severityText = 'critical'; + order = 2; + }else if(reading.hasOwnProperty('CriticalLow') && + reading.hasOwnProperty('WarningLow') && + reading.Value >= reading.CriticalLow && reading.Value <= reading.WarningLow){ severityFlags.warning = true; severityText = 'warning'; + order = 1; + }else if(reading.hasOwnProperty('WarningHigh') && + reading.hasOwnProperty('CriticalHigh') && + reading.Value >= reading.WarningHigh && reading.Value <= reading.CriticalHigh){ + severityFlags.warning = true; + severityText = 'warning'; + order = 1; }else{ severityFlags.normal = true; severityText = 'normal'; } - return { flags: severityFlags, severityText: severityText}; + return { flags: severityFlags, severityText: severityText, order: order}; } for(var key in content.data){ if(content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Unit')){ + + severity = getSensorStatus(content.data[key]); + + if(!content.data[key].hasOwnProperty('CriticalLow')){ + content.data[key].CriticalLow = "--"; + content.data[key].CriticalHigh = "--"; + } + + if(!content.data[key].hasOwnProperty('WarningLow')){ + content.data[key].WarningLow = "--"; + content.data[key].WarningHigh = "--"; + } + + tempKeyParts = key.split("/"); + title = tempKeyParts.pop(); + title = tempKeyParts.pop() + '_' + title; + title = title.split("_").map(function(item){ + return item.toLowerCase().charAt(0).toUpperCase() + item.slice(1); + }).reduce(function(prev, el){ + return prev + " " + el; + }); + sensorData.push(Object.assign({ path: key, selected: false, confirm: false, copied: false, + title: title, + unit: Constants.SENSOR_UNIT_MAP[content.data[key].Unit], + severity_flags: severity.flags, + status: severity.severityText, + order: severity.order, + search_text: (title + " " + content.data[key].Value + " " + + Constants.SENSOR_UNIT_MAP[content.data[key].Unit] + " " + + severity.severityText + " " + + content.data[key].CriticalLow + " " + + content.data[key].CriticalHigh + " " + + content.data[key].WarningLow + " " + + content.data[key].WarningHigh + " " + ).toLowerCase(), original_data: {key: key, value: content.data[key]} }, content.data[key])); } } - Constants.SENSOR_DATA_TEMPLATE.sensors.forEach(function(sensor){ - var rowData = []; - var severities = []; - var thisSensorData = sensorData.filter(function(el){ - return el.path.indexOf('sensors/'+sensor.key_search) > -1; - }); - - for(var i = 0; i < thisSensorData.length; i++){ - - var severity = getSensorStatus(thisSensorData[i]); - severities.push(severity.severityText); - rowData.push(Object.assign({ - title: sensor.sensor_row.title + (i+1), - status: severity.severityText, - severity_flags: severity.flags, - reading: thisSensorData[i].Value + sensor.sensor_row.reading, - search_text: (sensor.sensor_row.title + (i+1) + " " + severity.severityText + " " + thisSensorData[i].Value + sensor.sensor_row.reading).toLowerCase(), - indicator: (severity.flags.critical) ? '90%' : ((severity.flags.warning) ? '15%' : '50%') - }, thisSensorData[i])); - } - - status = (severities.indexOf('critical') > -1) ? 'critical' : ((severities.indexOf('warning') > -1) ? 'warning' : 'normal'); - total += rowData.length; - allSensorSeveries.push(status); - var sevFlags = {critical: false, warning: false, normal: false}; - sevFlags[status] = true; - data.sensors.push({ - title: sensor.title, - type: sensor.type, - status: status, - severity_flags: sevFlags, - search_text: (sensor.title + " " + status).toLowerCase(), - display_headers: sensor.display_headers, - data: rowData - }); - Array.prototype.push.apply(allSensorRows, rowData); - }); - - data.status = (allSensorSeveries.indexOf('critical') > -1) ? 'critical' : ((allSensorSeveries.indexOf('warning') > -1) ? 'warning' : 'normal'); - data.total = total; - if(allSensorRows.length){ - data.sensors[0].status = data.status; - data.sensors[0].data = allSensorRows; - data.sensors[0].search_text = (data.sensors[0].title + " " + data.sensors[0].status).toLowerCase(); - var flags = {critical: false, warning: false, normal: false}; - flags[data.status] = true; - data.sensors[0].severity_flags = flags; - } - callback(data, dataClone); + callback(sensorData, dataClone); }).error(function(error){ console.log(error); }); @@ -680,11 +669,15 @@ window.angular && (function (angular) { } function camelcaseToLabel(obj){ - var transformed = [], label = ""; + var transformed = [], label = "", value = ""; for(var key in obj){ label = key.replace(/([A-Z0-9]+)/g, " $1").replace(/^\s+/, ""); if(obj[key] !== ""){ - transformed.push({key:label, value: obj[key]}); + value = obj[key]; + if(value == 1 || value == 0){ + value = (value == 1) ? 'Yes' : 'No'; + } + transformed.push({key:label, value: value}); } } diff --git a/app/common/services/constants.js b/app/common/services/constants.js index 7d77ec0..a610ba9 100644 --- a/app/common/services/constants.js +++ b/app/common/services/constants.js @@ -59,7 +59,7 @@ window.angular && (function (angular) { Warning: 'Medium' }, PAGINATION: { - LOG_ITEMS_PER_PAGE: 25 + LOG_ITEMS_PER_PAGE: 4 }, HARDWARE: { component_key_filter: '/xyz/openbmc_project/inventory/system', @@ -70,93 +70,14 @@ window.angular && (function (angular) { 'cpu', 'dimm' ] }, - SENSOR_DATA_TEMPLATE: { - sensors: [ - { - type: 'fan', - title: 'Fan Speed', - key_search: 'fan_tach', - display_headers: ['Fan Speed(RPM)', 'Reading', 'State'], - sensor_row: { - title: 'Fan Speed ', - reading: ' rpms', - status: '', - indicator: '' - } - }, - { - type: 'temperature', - title: 'Temperature', - 'key_search': 'temperature', - display_headers: ['Temperature (DegreesC)', 'Reading', 'State'], - sensor_row: { - title: 'Temperature ', - reading: ' degreeC', - status: '', - indicator: '' - } - }, - { - type: 'altitude', - title: 'Altitude', - 'key_search': 'altitude', - display_headers: ['Altitude (Meters)', 'Reading', 'State'], - sensor_row: { - title: 'Altitude ', - reading: ' Meters', - status: '', - indicator: '' - } - }, - { - type: 'voltage', - title: 'Voltage', - 'key_search': 'voltage', - display_headers: ['Temperature (Volts)', 'Reading', 'State'], - sensor_row: { - title: 'Voltage ', - reading: ' volts', - status: '', - indicator: '' - } - }, - { - type: 'current', - title: 'Current', - 'key_search': 'current', - display_headers: ['Current (Amperes)', 'Reading', 'State'], - sensor_row: { - title: 'Current ', - reading: ' amperes', - status: '', - indicator: '' - } - }, - { - type: 'power', - title: 'Power', - 'key_search': 'power', - display_headers: ['Power (Watts)', 'Reading', 'State'], - sensor_row: { - title: 'Power ', - reading: ' watts', - status: '', - indicator: '' - } - }, - { - type: 'energy', - title: 'Energy', - 'key_search': 'energy', - display_headers: ['Energy (Joules)', 'Reading', 'State'], - sensor_row: { - title: 'Energy ', - reading: ' joules', - status: '', - indicator: '' - } - } - ] + SENSOR_UNIT_MAP: { + 'xyz.openbmc_project.Sensor.Value.Unit.RPMS': 'rpms', + 'xyz.openbmc_project.Sensor.Value.Unit.DegreesC': 'C', + 'xyz.openbmc_project.Sensor.Value.Unit.Volts': 'volts', + 'xyz.openbmc_project.Sensor.Value.Unit.Meters': 'meters', + 'xyz.openbmc_project.Sensor.Value.Unit.Watts': 'watts', + 'xyz.openbmc_project.Sensor.Value.Unit.Amperes': 'amperes', + 'xyz.openbmc_project.Sensor.Value.Unit.Joules': 'joules' } }; }); diff --git a/app/common/services/userModel.js b/app/common/services/userModel.js index 747b288..dba607d 100644 --- a/app/common/services/userModel.js +++ b/app/common/services/userModel.js @@ -41,8 +41,6 @@ window.angular && (function (angular) { response.status == APIUtils.API_RESPONSE.SUCCESS_STATUS){ sessionStorage.removeItem('LOGIN_ID'); callback(true); - }else if(response.status == APIUtils.API_RESPONSE.ERROR_STATUS){ - callback(false); }else{ callback(false, error); } diff --git a/app/common/styles/base/buttons.scss b/app/common/styles/base/buttons.scss index 4f79625..299c9b3 100644 --- a/app/common/styles/base/buttons.scss +++ b/app/common/styles/base/buttons.scss @@ -1,4 +1,4 @@ -button, .btn, .button, .submit { +button, .button, .submit { font-size: 1em; @include fontFamilyBold; text-transform: none; @@ -10,15 +10,13 @@ button, .btn, .button, .submit { &:hover { cursor: pointer; } -} - -.disabled { - button, .button, input[type="submit"] { + &.disabled { opacity: 0.2; color: $btn__disabled-txt; &:hover { cursor: default; background: transparent; + text-decoration: none; } } } @@ -39,7 +37,7 @@ button, .btn, .button, .submit { cursor: default; } } - i { // button symbol + i { //button symbol font-style: normal; text-transform: none; font-size: 1.5em; diff --git a/app/common/styles/base/colors.scss b/app/common/styles/base/colors.scss index 780e319..ac8e0ae 100644 --- a/app/common/styles/base/colors.scss +++ b/app/common/styles/base/colors.scss @@ -65,8 +65,8 @@ $normal: #00baa1; // Threshold graphs $thresh-critical: $error-color; -$thresh-warning: #ff806c; -$thresh-normal: #8ee9d4; +$thresh-warning: #ffb001; +$thresh-normal: $lightgrey; //Inventory $active: #c6b6f5; diff --git a/app/common/styles/base/icons.scss b/app/common/styles/base/icons.scss index 27fe0e1..bac0be0 100644 --- a/app/common/styles/base/icons.scss +++ b/app/common/styles/base/icons.scss @@ -45,16 +45,16 @@ } .icon__warning{ - width: 30px; - height: 30px; + width: 40px; + height: 40px; background-image: url(/assets/images/icon-warning.svg); background-repeat: no-repeat; vertical-align: middle; } .icon__critical{ - width: 30px; - height: 30px; + width: 40px; + height: 40px; background-image: url(/assets/images/icon-critical.svg); background-repeat: no-repeat; vertical-align: middle; diff --git a/app/common/styles/base/mixins.scss b/app/common/styles/base/mixins.scss index e868354..d13f2ce 100644 --- a/app/common/styles/base/mixins.scss +++ b/app/common/styles/base/mixins.scss @@ -85,12 +85,14 @@ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: #b8c1c1'></polygon></svg>"); } +@mixin calcColumn-5 { + min-width: calc(100% * (1/5) - 5px); +} @mixin calcColumn-4 ($offset: 0) { min-width: calc(100% * (1/4) - #{$offset}); } - @mixin calcColumn-3 { min-width: calc(100% * (1/3) - 5px); } diff --git a/app/common/styles/components/form-elements.scss b/app/common/styles/components/form-elements.scss index d674bbc..2ce17ee 100644 --- a/app/common/styles/components/form-elements.scss +++ b/app/common/styles/components/form-elements.scss @@ -3,7 +3,7 @@ position: relative; padding: .5em .8em; margin-top: -10px; - border: 1px solid $darkgrey; + border: 1px solid $input-border; min-width: 70px; padding-right: 25px; font-weight: 400; diff --git a/app/common/styles/directives/app-navigation.scss b/app/common/styles/directives/app-navigation.scss index 496fbf7..2d818a9 100644 --- a/app/common/styles/directives/app-navigation.scss +++ b/app/common/styles/directives/app-navigation.scss @@ -1,11 +1,18 @@ $nav__toplvlWidth: 125px; $nav__seclvlWidth: 240px; +.nav__wrapper { + height: 100%; + position: fixed; + top: 0; + z-index: 100; +} + // Top level navigation #nav__top-level { background: $nav__top-level-color; - height: 100%; - position: fixed; + //height: 100%; + position: absolute; left: 0; top: 0; bottom: 0; @@ -14,6 +21,7 @@ $nav__seclvlWidth: 240px; margin: 0; padding: 0; width: $nav__toplvlWidth; + overflow-y: auto; li { margin: 0; } @@ -113,7 +121,7 @@ $nav__seclvlWidth: 240px; background: $nav__second-level-color; top: 0; bottom: 0; - left: -$nav__toplvlWidth; + left: -245px; width: $nav__seclvlWidth; z-index: 97; padding: 0; diff --git a/app/common/styles/elements/alerts.scss b/app/common/styles/elements/alerts.scss index 76624b1..96f0a4c 100644 --- a/app/common/styles/elements/alerts.scss +++ b/app/common/styles/elements/alerts.scss @@ -13,7 +13,7 @@ .close { color: $lightbg__primary; position: absolute; - right: 0%; + right: 0; top: 50%; transform: translateY(-50%); font-size: 1.5em; @@ -24,7 +24,7 @@ justify-content: center; flex-direction: column; background: transparent; - border: 0px; + border: 0; margin: 0; &:hover { color: $lightbg__accent; diff --git a/app/common/styles/elements/content-search.scss b/app/common/styles/elements/content-search.scss index a8ae381..e93bff0 100644 --- a/app/common/styles/elements/content-search.scss +++ b/app/common/styles/elements/content-search.scss @@ -7,7 +7,6 @@ float: left; position: relative; margin-right: 1em; - margin-top: .5em; margin-bottom: .5em; #content__search-input { @@ -43,6 +42,10 @@ margin: 0; font-weight: 700; font-size: .8em; + border: 0; + &:hover { + cursor: pointer; + } } .tag-filter-label { diff --git a/app/common/styles/elements/export.scss b/app/common/styles/elements/export.scss index ea0ab92..66847ae 100644 --- a/app/common/styles/elements/export.scss +++ b/app/common/styles/elements/export.scss @@ -4,10 +4,10 @@ font-size: .9em; font-weight: 700; position: relative; - padding: 0 0 1em 2em; + padding: 0 0 0 2em; margin-right: .6em; text-decoration: none; - margin-top: 7px; + margin-top: 0; &:hover { text-decoration: underline; } diff --git a/app/common/styles/elements/index.scss b/app/common/styles/elements/index.scss index d136134..7b1d1c5 100644 --- a/app/common/styles/elements/index.scss +++ b/app/common/styles/elements/index.scss @@ -11,4 +11,4 @@ @import "thresholds"; @import "export"; @import "modals"; -@import "quicklinks";
\ No newline at end of file +@import "quicklinks"; diff --git a/app/common/styles/elements/thresholds.scss b/app/common/styles/elements/thresholds.scss deleted file mode 100644 index 52230ee..0000000 --- a/app/common/styles/elements/thresholds.scss +++ /dev/null @@ -1,78 +0,0 @@ -// Thresholds graph - -$threshColorLighten: 5%; -.threshold-chart__wrapper { - position: relative; - .threshold__label { - position: absolute; - top: 38%; - 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 0; - margin: 0 2.5em 1em 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 { - 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 index 1a7d602..7305414 100644 --- a/app/common/styles/elements/toggle-filter.scss +++ b/app/common/styles/elements/toggle-filter.scss @@ -1,6 +1,12 @@ // toggle buttons for filtering .toggle-filter { - margin-top: 12px; + display: inline-block; + @media (min-width: 1300px) { + margin-top: -25px; + } + .content-label { + margin-bottom: .4em; + } .filter-label { color: darken($lightgrey, 10%); text-transform: uppercase; @@ -18,6 +24,7 @@ font-weight: 700; border-radius: 0; display: inline-block; + border-left: 0; &.first, &.last { border-radius: 3px; @@ -26,5 +33,4 @@ .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 326d896..b1a7942 100644 --- a/app/common/styles/layout/content.scss +++ b/app/common/styles/layout/content.scss @@ -37,10 +37,15 @@ section.row { margin-top: 2em; } -.content-label { - color: lighten($darkgrey, 15%); +.content-label, label { + color: $darkgrey; text-transform: uppercase; font-weight: 700; font-size: .75em; margin-bottom: 0; } + +.subhead { + border-bottom: 1px solid $medgrey; + padding-bottom: .5em; +}
\ No newline at end of file |