1<loader loading="loading"></loader> 2<div id="sensors" class="sensors"> 3 <h1>Sensors</h1> 4 <div class="page-header"> 5 <h2 class="inline">All sensors present in the system</h2> 6 <a ng-href="data:text/json;charset=utf-8,{{export_data}}" class="btn btn-tertiary float-right" download="{{export_name}}"><icon file="icon-export.svg"></icon>Export</a> 7 </div> 8 9 <div> 10 <p class="content-label" aria-label="sensors filter">Filter sensors</p> 11 <div class="content__search"> 12 <label for="content__search-input">Sensors Search</label> 13 <input id="content__search-input" type="text" ng-model="customSearch" ng-keydown="doSearchOnEnter($event)"/> 14 <div class="search-submit__wrapper"> 15 <button class="btn" type="button" aria-label="clear filter" ng-click="clear()"> 16 <icon file="icon-close.svg" aria-hidden="true"></icon> 17 </button> 18 <input id="content__search-submit" type="submit" class="btn btn-primary content__search-submit" value="Filter" ng-click="doSearchOnClick()"/> 19 </div> 20 </div> 21 22 <div class="toggle-filter"> 23 <p class="content-label">FILTER BY SEVERITY</p> 24 <button class="btn" ng-click="toggleSeverityAll()" 25 ng-class="selectedSeverity.all ? 'btn-primary' : 'btn-secondary'">All 26 </button> 27 <button class="btn" ng-click="toggleSeverity('critical')" 28 ng-class="selectedSeverity.critical ? 'btn-primary' : 'btn-secondary'">Critical 29 </button> 30 <button class="btn" ng-click="toggleSeverity('warning')" 31 ng-class="selectedSeverity.warning ? 'btn-primary' : 'btn-secondary'">Warning 32 </button> 33 <button class="btn" ng-click="toggleSeverity('normal')" 34 ng-class="selectedSeverity.normal ? 'btn-primary' : 'btn-secondary'">Normal 35 </button> 36 </div> 37 </div> 38 39 <div ng-show="filteredSensorData.length == 0"> 40 <span ng-if="selectedSeverity.all">{{messages.NO_SENSOR_DATA}}</span> 41 <span ng-if="selectedSeverity.critical">{{messages.CRITICAL_NO_SENSOR_DATA}}</span> 42 <span ng-if="selectedSeverity.warning">{{messages.WARNING_NO_SENSOR_DATA}}</span> 43 <span ng-if="selectedSeverity.normal">{{messages.NORMAL_NO_SENSOR_DATA}}</span> 44 </div> 45 46 <table id="sensor-categories" class="sensors__table" cellpadding="0" cellspacing="0" ng-show="filteredSensorData.length"> 47 <thead class="sensors__thead fixed-table-header"> 48 <tr class="sensors__thead-row"> 49 <th class="sensors__thead-cell">Sensors ({{filteredSensorData.length}})<th> 50 <th class="sensors__thead-cell">Low critical<th> 51 <th class="sensors__thead-cell">Low warning<th> 52 <th class="sensors__thead-cell sensor__heading-current">Current<th> 53 <th class="sensors__thead-cell">High warning<th> 54 <th class="sensors__thead-cell">High critical<th> 55 </tr> 56 </thead> 57 <tbody class="sensors__tbody"> 58 <tr class="sensors__tbody-row" ng-repeat="sensor in data|filter:filterBySeverity|filter:filterBySearchTerms|orderBy:'+custom_order' as filteredSensorData"> 59 <th class="sensors__tbody-header"> 60 <status-icon status="{{ sensor.status == 'critical' ? 'error' : 61 sensor.status == 'warning' ? 'warn' : null }}" 62 aria-label="Sensor status: {{sensor.status}}"> 63 </status-icon> 64 <span>{{sensor.title}}</span> 65 </th> 66 <td class="sensors__tbody-cell"> 67 <span class="sensors__tbody-cell__title">Low critical</span> 68 <span class="sensors__tbody-cell__content"> 69 <span class="sensors__tbody-info">{{sensor.CriticalLow}}</span> 70 <span class="sensors__tbody-degree" ng-if="sensor.unit == 'C'">°</span> 71 <span class="sensors__tbody-unit">{{sensor.unit}}</span> 72 </span> 73 </td> 74 <td class="sensors__tbody-cell"> 75 <span class="sensors__tbody-cell__title">Low warning</span> 76 <span class="sensors__tbody-cell__content"> 77 <span class="sensors__tbody-info">{{sensor.WarningLow}}</span> 78 <span class="sensors__tbody-degree" ng-if="sensor.unit == 'C'">°</span> 79 <span class="sensors__tbody-unit">{{sensor.unit}}</span> 80 </span> 81 </td> 82 <td class="sensors__tbody-cell sensors__tbody-current" ng-class="{'sensors__tbody-current--critical': sensor.status == 'critical', 'sensors__tbody-current--warn': sensor.status == 'warning', 'sensors__tbody-current--normal': sensor.status == 'normal'}"> 83 <span class="sensors__tbody-cell__title">Current</span> 84 <span class="sensors__tbody-cell__content"> 85 <span class="sensors__tbody-info">{{sensor.Value}}</span> 86 <span class="sensors__tbody-degree" ng-if="sensor.unit == 'C'">°</span> 87 <span class="sensors__tbody-unit">{{sensor.unit}}</span> 88 </span> 89 </td> 90 <td class="sensors__tbody-cell"> 91 <span class="sensors__tbody-cell__title">High warning</span> 92 <span class="sensors__tbody-cell__content"> 93 <span class="sensors__tbody-info">{{sensor.WarningHigh}}</span> 94 <span class="sensors__tbody-degree" ng-if="sensor.unit == 'C'">°</span> 95 <span class="sensors__tbody-unit">{{sensor.unit}}</span> 96 </span> 97 </td> 98 <td class="sensors__tbody-cell"> 99 <span class="sensors__tbody-cell__title">High critical</span> 100 <span class="sensors__tbody-cell__content"> 101 <span class="sensors__tbody-info">{{sensor.CriticalHigh}}</span> 102 <span class="sensors__tbody-degree" ng-if="sensor.unit == 'C'">°</span> 103 <span class="sensors__tbody-unit">{{sensor.unit}}</span> 104 </span> 105 </td> 106 </tr> 107 </tbody> 108 </table> 109</div> 110