blob: 27f3bd83891e018090cee25217b011fcd320a3e4 [file] [log] [blame]
SurenNewaredc3fa2e2020-08-04 20:45:25 +05301<template>
2 <page-section :section-title="$t('pageHardwareStatus.processors')">
3 <!-- Search -->
SurenNeware787635a2020-11-24 22:42:42 +05304 <b-row class="align-items-end">
SurenNewaredc3fa2e2020-08-04 20:45:25 +05305 <b-col sm="6" md="5" xl="4">
Dixsie Wolmers9b22b492020-09-07 21:26:06 -05006 <search
Sukanya Pandeyedb8a772020-10-29 11:33:42 +05307 @change-search="onChangeSearchInput"
8 @clear-search="onClearSearchInput"
Dixsie Wolmers9b22b492020-09-07 21:26:06 -05009 />
SurenNewaredc3fa2e2020-08-04 20:45:25 +053010 </b-col>
Sukanya Pandey99010962020-07-27 21:44:47 +053011 <b-col sm="6" md="3" xl="2">
12 <table-cell-count
13 :filtered-items-count="filteredRows"
14 :total-number-of-cells="processors.length"
15 ></table-cell-count>
16 </b-col>
SurenNewaredc3fa2e2020-08-04 20:45:25 +053017 </b-row>
18 <b-table
19 sort-icon-left
20 no-sort-reset
Sukanya Pandeyfde429e2020-09-14 20:48:39 +053021 hover
SurenNewaredc3fa2e2020-08-04 20:45:25 +053022 responsive="md"
SurenNeware10fe2762020-08-19 12:01:32 +053023 show-empty
SurenNewaredc3fa2e2020-08-04 20:45:25 +053024 :items="processors"
25 :fields="fields"
26 :sort-desc="true"
27 :filter="searchFilter"
SurenNeware10fe2762020-08-19 12:01:32 +053028 :empty-text="$t('global.table.emptyMessage')"
SurenNeware156a0e62020-08-28 19:20:03 +053029 :empty-filtered-text="$t('global.table.emptySearchMessage')"
Sukanya Pandey99010962020-07-27 21:44:47 +053030 @filtered="onFiltered"
SurenNewaredc3fa2e2020-08-04 20:45:25 +053031 >
32 <!-- Expand button -->
Derick Montague602e98a2020-10-21 16:20:00 -050033 <template #cell(expandRow)="row">
SurenNewaredc3fa2e2020-08-04 20:45:25 +053034 <b-button
35 variant="link"
36 data-test-id="hardwareStatus-button-expandProcessors"
Dixsie Wolmers30f11f82020-11-10 16:07:56 -060037 :title="expandRowLabel"
38 class="btn-icon-only"
Dixsie Wolmersb53e0862020-09-08 14:13:38 -050039 @click="toggleRowDetails(row)"
SurenNewaredc3fa2e2020-08-04 20:45:25 +053040 >
Dixsie Wolmers30f11f82020-11-10 16:07:56 -060041 <icon-chevron />
SurenNeware6e2cb972020-12-24 20:58:16 +053042 <span class="sr-only">{{ expandRowLabel }}</span>
SurenNewaredc3fa2e2020-08-04 20:45:25 +053043 </b-button>
44 </template>
45 <!-- Health -->
Derick Montague602e98a2020-10-21 16:20:00 -050046 <template #cell(health)="{ value }">
SurenNewaredc3fa2e2020-08-04 20:45:25 +053047 <status-icon :status="statusIcon(value)" />
48 {{ value }}
49 </template>
Derick Montague602e98a2020-10-21 16:20:00 -050050 <template #row-details="{ item }">
SurenNewaredc3fa2e2020-08-04 20:45:25 +053051 <b-container fluid>
52 <b-row>
53 <b-col sm="6" xl="4">
54 <dl>
55 <!-- Name -->
56 <dt>{{ $t('pageHardwareStatus.table.name') }}:</dt>
57 <dd>{{ tableFormatter(item.name) }}</dd>
SurenNewaredc3fa2e2020-08-04 20:45:25 +053058 <!-- Model -->
59 <dt>{{ $t('pageHardwareStatus.table.model') }}:</dt>
60 <dd>{{ tableFormatter(item.model) }}</dd>
SurenNewaredc3fa2e2020-08-04 20:45:25 +053061 <!-- Instruction set -->
62 <dt>{{ $t('pageHardwareStatus.table.instructionSet') }}:</dt>
63 <dd>{{ tableFormatter(item.instructionSet) }}</dd>
SurenNewaredc3fa2e2020-08-04 20:45:25 +053064 <!-- Manufacturer -->
65 <dt>{{ $t('pageHardwareStatus.table.manufacturer') }}:</dt>
66 <dd>{{ tableFormatter(item.manufacturer) }}</dd>
67 </dl>
68 </b-col>
69 <b-col sm="6" xl="4">
70 <dl>
71 <!-- Architecture -->
72 <dt>
73 {{ $t('pageHardwareStatus.table.processorArchitecture') }}:
74 </dt>
75 <dd>{{ tableFormatter(item.processorArchitecture) }}</dd>
SurenNewaredc3fa2e2020-08-04 20:45:25 +053076 <!-- Type -->
77 <dt>{{ $t('pageHardwareStatus.table.processorType') }}:</dt>
78 <dd>{{ tableFormatter(item.processorType) }}</dd>
SurenNewaredc3fa2e2020-08-04 20:45:25 +053079 <!-- Total cores -->
80 <dt>{{ $t('pageHardwareStatus.table.totalCores') }}:</dt>
81 <dd>{{ tableFormatter(item.totalCores) }}</dd>
SurenNewaredc3fa2e2020-08-04 20:45:25 +053082 <!-- Status state -->
83 <dt>{{ $t('pageHardwareStatus.table.statusState') }}:</dt>
84 <dd>{{ tableFormatter(item.statusState) }}</dd>
85 </dl>
86 </b-col>
87 </b-row>
88 </b-container>
89 </template>
90 </b-table>
91 </page-section>
92</template>
93
94<script>
95import PageSection from '@/components/Global/PageSection';
96import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
97import StatusIcon from '@/components/Global/StatusIcon';
Sukanya Pandey99010962020-07-27 21:44:47 +053098import TableCellCount from '@/components/Global/TableCellCount';
SurenNewaredc3fa2e2020-08-04 20:45:25 +053099
100import TableSortMixin from '@/components/Mixins/TableSortMixin';
101import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
102import Search from '@/components/Global/Search';
SurenNewareba91c492020-10-27 14:18:54 +0530103import SearchFilterMixin, {
104 searchFilter,
105} from '@/components/Mixins/SearchFilterMixin';
106import TableRowExpandMixin, {
107 expandRowLabel,
108} from '@/components/Mixins/TableRowExpandMixin';
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530109
110export default {
Dixsie Wolmersb53e0862020-09-08 14:13:38 -0500111 components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
112 mixins: [
113 TableRowExpandMixin,
114 TableDataFormatterMixin,
115 TableSortMixin,
Derick Montague602e98a2020-10-21 16:20:00 -0500116 SearchFilterMixin,
Dixsie Wolmersb53e0862020-09-08 14:13:38 -0500117 ],
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530118 data() {
119 return {
120 fields: [
121 {
122 key: 'expandRow',
123 label: '',
124 tdClass: 'table-row-expand',
Derick Montague602e98a2020-10-21 16:20:00 -0500125 sortable: false,
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530126 },
127 {
128 key: 'id',
129 label: this.$t('pageHardwareStatus.table.id'),
130 formatter: this.tableFormatter,
Derick Montague602e98a2020-10-21 16:20:00 -0500131 sortable: true,
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530132 },
133 {
134 key: 'health',
135 label: this.$t('pageHardwareStatus.table.health'),
136 formatter: this.tableFormatter,
Dixsie Wolmersa04d46f2020-10-22 06:34:56 -0500137 sortable: true,
Derick Montague602e98a2020-10-21 16:20:00 -0500138 tdClass: 'text-nowrap',
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530139 },
140 {
141 key: 'partNumber',
142 label: this.$t('pageHardwareStatus.table.partNumber'),
143 formatter: this.tableFormatter,
Derick Montague602e98a2020-10-21 16:20:00 -0500144 sortable: true,
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530145 },
146 {
147 key: 'serialNumber',
148 label: this.$t('pageHardwareStatus.table.serialNumber'),
149 formatter: this.tableFormatter,
Derick Montague602e98a2020-10-21 16:20:00 -0500150 sortable: true,
151 },
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530152 ],
SurenNewareba91c492020-10-27 14:18:54 +0530153 searchFilter: searchFilter,
Derick Montague602e98a2020-10-21 16:20:00 -0500154 searchTotalFilteredRows: 0,
SurenNewareba91c492020-10-27 14:18:54 +0530155 expandRowLabel: expandRowLabel,
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530156 };
157 },
158 computed: {
Sukanya Pandey99010962020-07-27 21:44:47 +0530159 filteredRows() {
160 return this.searchFilter
161 ? this.searchTotalFilteredRows
162 : this.processors.length;
163 },
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530164 processors() {
165 return this.$store.getters['processors/processors'];
Derick Montague602e98a2020-10-21 16:20:00 -0500166 },
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530167 },
168 created() {
169 this.$store.dispatch('processors/getProcessorsInfo').finally(() => {
170 // Emit initial data fetch complete to parent component
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530171 this.$root.$emit('hardware-status-processors-complete');
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530172 });
173 },
174 methods: {
Sukanya Pandey99010962020-07-27 21:44:47 +0530175 onFiltered(filteredItems) {
176 this.searchTotalFilteredRows = filteredItems.length;
Derick Montague602e98a2020-10-21 16:20:00 -0500177 },
178 },
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530179};
180</script>