summaryrefslogtreecommitdiff
path: root/src/views/Health/Sensors/Sensors.vue
diff options
context:
space:
mode:
authorSandeepa Singh <sandeepa.singh@ibm.com>2021-07-06 13:59:10 +0300
committerDerick Montague <derick.montague@ibm.com>2021-08-10 22:20:42 +0300
commit7affc529b7fba41193c4d48764707e9961cdd22d (patch)
treed198c2026a40faf07d622492297aed488b17fccb /src/views/Health/Sensors/Sensors.vue
parent828dda9b187684902710bb11621eca27bf0c6eec (diff)
downloadwebui-vue-7affc529b7fba41193c4d48764707e9961cdd22d.tar.xz
IA update: Update health section
This is the second update to information architecture changes and has the following changes: - Health section is updated to hardware status section - Hardware status page is updated to inventory and LEDs page - Route for sensors page has been updated Signed-off-by: Sandeepa Singh <sandeepa.singh@ibm.com> Change-Id: Ia1ba3a15a243a00f59a2ec646132436eb355a999
Diffstat (limited to 'src/views/Health/Sensors/Sensors.vue')
-rw-r--r--src/views/Health/Sensors/Sensors.vue253
1 files changed, 0 insertions, 253 deletions
diff --git a/src/views/Health/Sensors/Sensors.vue b/src/views/Health/Sensors/Sensors.vue
deleted file mode 100644
index c69532a6..00000000
--- a/src/views/Health/Sensors/Sensors.vue
+++ /dev/null
@@ -1,253 +0,0 @@
-<template>
- <b-container fluid="xl">
- <page-title />
- <b-row class="align-items-end">
- <b-col sm="6" md="5" xl="4">
- <search
- :placeholder="$t('pageSensors.searchForSensors')"
- data-test-id="sensors-input-searchForSensors"
- @change-search="onChangeSearchInput"
- @clear-search="onClearSearchInput"
- />
- </b-col>
- <b-col sm="3" md="3" xl="2">
- <table-cell-count
- :filtered-items-count="filteredRows"
- :total-number-of-cells="allSensors.length"
- ></table-cell-count>
- </b-col>
- <b-col sm="3" md="4" xl="6" class="text-right">
- <table-filter :filters="tableFilters" @filter-change="onFilterChange" />
- </b-col>
- </b-row>
- <b-row>
- <b-col xl="12">
- <table-toolbar
- ref="toolbar"
- :selected-items-count="selectedRows.length"
- @clear-selected="clearSelectedRows($refs.table)"
- >
- <template #toolbar-buttons>
- <table-toolbar-export
- :data="selectedRows"
- :file-name="exportFileNameByDate()"
- />
- </template>
- </table-toolbar>
- <b-table
- ref="table"
- responsive="md"
- selectable
- no-select-on-click
- sort-icon-left
- hover
- no-sort-reset
- sticky-header="75vh"
- sort-by="status"
- show-empty
- :no-border-collapse="true"
- :items="filteredSensors"
- :fields="fields"
- :sort-desc="true"
- :sort-compare="sortCompare"
- :filter="searchFilter"
- :empty-text="$t('global.table.emptyMessage')"
- :empty-filtered-text="$t('global.table.emptySearchMessage')"
- @filtered="onFiltered"
- @row-selected="onRowSelected($event, filteredSensors.length)"
- >
- <!-- Checkbox column -->
- <template #head(checkbox)>
- <b-form-checkbox
- v-model="tableHeaderCheckboxModel"
- :indeterminate="tableHeaderCheckboxIndeterminate"
- @change="onChangeHeaderCheckbox($refs.table)"
- >
- <span class="sr-only">{{ $t('global.table.selectAll') }}</span>
- </b-form-checkbox>
- </template>
- <template #cell(checkbox)="row">
- <b-form-checkbox
- v-model="row.rowSelected"
- @change="toggleSelectRow($refs.table, row.index)"
- >
- <span class="sr-only">{{ $t('global.table.selectItem') }}</span>
- </b-form-checkbox>
- </template>
-
- <template #cell(status)="{ value }">
- <status-icon :status="statusIcon(value)" /> {{ value }}
- </template>
- <template #cell(currentValue)="data">
- {{ data.value }} {{ data.item.units }}
- </template>
- <template #cell(lowerCaution)="data">
- {{ data.value }} {{ data.item.units }}
- </template>
- <template #cell(upperCaution)="data">
- {{ data.value }} {{ data.item.units }}
- </template>
- <template #cell(lowerCritical)="data">
- {{ data.value }} {{ data.item.units }}
- </template>
- <template #cell(upperCritical)="data">
- {{ data.value }} {{ data.item.units }}
- </template>
- </b-table>
- </b-col>
- </b-row>
- </b-container>
-</template>
-
-<script>
-import PageTitle from '@/components/Global/PageTitle';
-import Search from '@/components/Global/Search';
-import StatusIcon from '@/components/Global/StatusIcon';
-import TableFilter from '@/components/Global/TableFilter';
-import TableToolbar from '@/components/Global/TableToolbar';
-import TableToolbarExport from '@/components/Global/TableToolbarExport';
-import TableCellCount from '@/components/Global/TableCellCount';
-
-import BVTableSelectableMixin, {
- selectedRows,
- tableHeaderCheckboxModel,
- tableHeaderCheckboxIndeterminate,
-} from '@/components/Mixins/BVTableSelectableMixin';
-import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
-import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
-import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
-import TableSortMixin from '@/components/Mixins/TableSortMixin';
-import SearchFilterMixin, {
- searchFilter,
-} from '@/components/Mixins/SearchFilterMixin';
-
-export default {
- name: 'Sensors',
- components: {
- PageTitle,
- Search,
- StatusIcon,
- TableCellCount,
- TableFilter,
- TableToolbar,
- TableToolbarExport,
- },
- mixins: [
- TableFilterMixin,
- BVTableSelectableMixin,
- LoadingBarMixin,
- TableDataFormatterMixin,
- TableSortMixin,
- SearchFilterMixin,
- ],
- beforeRouteLeave(to, from, next) {
- this.hideLoader();
- next();
- },
- data() {
- return {
- fields: [
- {
- key: 'checkbox',
- sortable: false,
- label: '',
- },
- {
- key: 'name',
- sortable: true,
- label: this.$t('pageSensors.table.name'),
- },
- {
- key: 'status',
- sortable: true,
- label: this.$t('pageSensors.table.status'),
- tdClass: 'text-nowrap',
- },
- {
- key: 'lowerCritical',
- formatter: this.tableFormatter,
- label: this.$t('pageSensors.table.lowerCritical'),
- },
- {
- key: 'lowerCaution',
- formatter: this.tableFormatter,
- label: this.$t('pageSensors.table.lowerWarning'),
- },
-
- {
- key: 'currentValue',
- formatter: this.tableFormatter,
- label: this.$t('pageSensors.table.currentValue'),
- },
- {
- key: 'upperCaution',
- formatter: this.tableFormatter,
- label: this.$t('pageSensors.table.upperWarning'),
- },
- {
- key: 'upperCritical',
- formatter: this.tableFormatter,
- label: this.$t('pageSensors.table.upperCritical'),
- },
- ],
- tableFilters: [
- {
- key: 'status',
- label: this.$t('pageSensors.table.status'),
- values: ['OK', 'Warning', 'Critical'],
- },
- ],
- activeFilters: [],
- searchFilter: searchFilter,
- searchTotalFilteredRows: 0,
- selectedRows: selectedRows,
- tableHeaderCheckboxModel: tableHeaderCheckboxModel,
- tableHeaderCheckboxIndeterminate: tableHeaderCheckboxIndeterminate,
- };
- },
- computed: {
- allSensors() {
- return this.$store.getters['sensors/sensors'];
- },
- filteredRows() {
- return this.searchFilter
- ? this.searchTotalFilteredRows
- : this.filteredSensors.length;
- },
- filteredSensors() {
- return this.getFilteredTableData(this.allSensors, this.activeFilters);
- },
- },
- created() {
- this.startLoader();
- this.$store
- .dispatch('sensors/getAllSensors')
- .finally(() => this.endLoader());
- },
- methods: {
- sortCompare(a, b, key) {
- if (key === 'status') {
- return this.sortStatus(a, b, key);
- }
- },
- onFilterChange({ activeFilters }) {
- this.activeFilters = activeFilters;
- },
- onFiltered(filteredItems) {
- this.searchTotalFilteredRows = filteredItems.length;
- },
- onChangeSearchInput(event) {
- this.searchFilter = event;
- },
- exportFileNameByDate() {
- // Create export file name based on date
- let date = new Date();
- date =
- date.toISOString().slice(0, 10) +
- '_' +
- date.toString().split(':').join('-').split(' ')[4];
- return this.$t('pageSensors.exportFilePrefix') + date;
- },
- },
-};
-</script>