diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/locales/en-US.json | 6 | ||||
-rw-r--r-- | src/store/modules/HardwareStatus/MemoryStore.js | 38 | ||||
-rw-r--r-- | src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue | 77 |
3 files changed, 106 insertions, 15 deletions
diff --git a/src/locales/en-US.json b/src/locales/en-US.json index 5c457d68..35e71466 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -403,11 +403,13 @@ "manufacturer": "Manufacturer", "maxConcurrentSessions": "Max concurrent sessions", "maxSpeedMHz": "Max speed MHz", - "minSpeedMHz": "Min speed MHz", "maxPowerWatts": "Max power watts", + "memoryType": "Memory type", + "memorySize": "Memory size", + "memorySummary": "Memory summary", "minPowerWatts": "Min power watts", + "minSpeedMHz": "Min speed MHz", "model": "Model", - "memorySummary": "Memory summary", "name": "Name", "partNumber": "Part number", "power": "Power", diff --git a/src/store/modules/HardwareStatus/MemoryStore.js b/src/store/modules/HardwareStatus/MemoryStore.js index cd2478de..6f6abe53 100644 --- a/src/store/modules/HardwareStatus/MemoryStore.js +++ b/src/store/modules/HardwareStatus/MemoryStore.js @@ -1,4 +1,5 @@ import api from '@/store/api'; +import i18n from '@/i18n'; const MemoryStore = { namespaced: true, @@ -11,13 +12,31 @@ const MemoryStore = { mutations: { setMemoryInfo: (state, data) => { state.dimms = data.map(({ data }) => { - const { Id, Status = {}, PartNumber, SerialNumber } = data; + const { + Id, + Status = {}, + PartNumber, + SerialNumber, + SparePartNumber, + Description, + MemoryType, + MemorySize, + LocationIndicatorActive, + Location, + } = data; return { id: Id, health: Status.Health, partNumber: PartNumber, serialNumber: SerialNumber, statusState: Status.State, + sparePartNumber: SparePartNumber, + description: Description, + memoryType: MemoryType, + memorySize: MemorySize, + identifyLed: LocationIndicatorActive, + uri: data['@odata.id'], + locationNumber: Location?.PartLocation?.ServiceLabel, }; }); }, @@ -33,6 +52,23 @@ const MemoryStore = { .then((response) => commit('setMemoryInfo', response)) .catch((error) => console.log(error)); }, + async updateIdentifyLedValue({ dispatch }, led) { + const uri = led.uri; + const updatedIdentifyLedValue = { + LocationIndicatorActive: led.identifyLed, + }; + return await api.patch(uri, updatedIdentifyLedValue).catch((error) => { + dispatch('getDimms'); + console.log('error', error); + if (led.identifyLed) { + throw new Error(i18n.t('pageInventory.toast.errorEnableIdentifyLed')); + } else { + throw new Error( + i18n.t('pageInventory.toast.errorDisableIdentifyLed') + ); + } + }); + }, }, }; diff --git a/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue b/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue index 5d8db83c..07f42d26 100644 --- a/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue +++ b/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue @@ -49,13 +49,63 @@ <status-icon :status="statusIcon(value)" /> {{ value }} </template> - + <!-- Toggle identify LED --> + <template #cell(identifyLed)="row"> + <b-form-checkbox + v-model="row.item.identifyLed" + name="switch" + switch + @change="toggleIdentifyLedValue(row.item)" + > + <span v-if="row.item.identifyLed"> + {{ $t('global.status.on') }} + </span> + <span v-else> {{ $t('global.status.off') }} </span> + </b-form-checkbox> + </template> <template #row-details="{ item }"> <b-container fluid> <b-row> - <b-col sm="6" xl="4"> + <b-col sm="6" xl="6"> + <dl> + <!-- Part Number --> + <dt>{{ $t('pageInventory.table.partNumber') }}:</dt> + <dd>{{ dataFormatter(item.partNumber) }}</dd> + </dl> <dl> - <!-- Status state --> + <!-- Serial Number --> + <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt> + <dd>{{ dataFormatter(item.serialNumber) }}</dd> + </dl> + <dl> + <!-- Spare Part Number --> + <dt>{{ $t('pageInventory.table.sparePartNumber') }}:</dt> + <dd>{{ dataFormatter(item.sparePartNumber) }}</dd> + </dl> + <dl> + <!-- Model --> + <dt>{{ $t('pageInventory.table.model') }}:</dt> + <dd>{{ dataFormatter(item.model) }}</dd> + </dl> + <dl> + <!-- Description --> + <dt>{{ $t('pageInventory.table.description') }}:</dt> + <dd>{{ dataFormatter(item.description) }}</dd> + </dl> + <dl> + <!-- Memory Type --> + <dt>{{ $t('pageInventory.table.memoryType') }}:</dt> + <dd>{{ dataFormatter(item.memoryType) }}</dd> + </dl> + </b-col> + <b-col sm="6" xl="6"> + <dl> + <!-- Memory Size in kb --> + <dt>{{ $t('pageInventory.table.memorySize') }}:</dt> + <dd>{{ dataFormatter(item.memorySize) }} KB</dd> + </dl> + <dl> + <!-- Status--> <dt>{{ $t('pageInventory.table.statusState') }}:</dt> <dd>{{ dataFormatter(item.statusState) }}</dd> </dl> @@ -99,32 +149,27 @@ export default { key: 'expandRow', label: '', tdClass: 'table-row-expand', - sortable: false, }, { key: 'id', label: this.$t('pageInventory.table.id'), formatter: this.dataFormatter, - sortable: true, }, { key: 'health', label: this.$t('pageInventory.table.health'), formatter: this.dataFormatter, - sortable: true, tdClass: 'text-nowrap', }, { - key: 'partNumber', - label: this.$t('pageInventory.table.partNumber'), + key: 'locationNumber', + label: this.$t('pageInventory.table.locationNumber'), formatter: this.dataFormatter, - sortable: true, }, { - key: 'serialNumber', - label: this.$t('pageInventory.table.serialNumber'), + key: 'identifyLed', + label: this.$t('pageInventory.table.identifyLed'), formatter: this.dataFormatter, - sortable: true, }, ], searchFilter: searchFilter, @@ -157,6 +202,14 @@ export default { onFiltered(filteredItems) { this.searchTotalFilteredRows = filteredItems.length; }, + toggleIdentifyLedValue(row) { + this.$store + .dispatch('memory/updateIdentifyLedValue', { + uri: row.uri, + identifyLed: row.identifyLed, + }) + .catch(({ message }) => this.errorToast(message)); + }, }, }; </script> |