Add processors table missing properties

- Add following missing properties: Name, Spare part number,  Model,
Processor type, Processor architechure, Version, Health rollup,
Asset tag, Min speed MHz, Max speed MHz, Total cores, Total threads,
Instruction set, Identify Led

- Design of the table has been updated

- Waiting for the following to be merged to test the Identify Led:
https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/37045

Signed-off-by: Sandeepa Singh <sandeepa.singh@ibm.com>
Change-Id: If6eeb3b0afea6510f7ea53e2d66cbf1d123b3217
diff --git a/src/views/Health/HardwareStatus/HardwareStatusTableProcessors.vue b/src/views/Health/HardwareStatus/HardwareStatusTableProcessors.vue
index 27f3bd8..e3b5735 100644
--- a/src/views/Health/HardwareStatus/HardwareStatusTableProcessors.vue
+++ b/src/views/Health/HardwareStatus/HardwareStatusTableProcessors.vue
@@ -47,41 +47,97 @@
         <status-icon :status="statusIcon(value)" />
         {{ value }}
       </template>
+
+      <!-- Toggle identify LED -->
+      <template #cell(identifyLed)="row">
+        <b-form-checkbox
+          v-if="hasIdentifyLed(row.item.identifyLed)"
+          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>
+        <div v-else>--</div>
+      </template>
+
       <template #row-details="{ item }">
         <b-container fluid>
           <b-row>
-            <b-col sm="6" xl="4">
+            <b-col class="mt-2" sm="6" xl="6">
               <dl>
                 <!-- Name -->
                 <dt>{{ $t('pageHardwareStatus.table.name') }}:</dt>
                 <dd>{{ tableFormatter(item.name) }}</dd>
+                <!-- Part Number -->
+                <dt>{{ $t('pageHardwareStatus.table.partNumber') }}:</dt>
+                <dd>{{ tableFormatter(item.partNumber) }}</dd>
+                <!-- Serial Number -->
+                <dt>{{ $t('pageHardwareStatus.table.serialNumber') }}:</dt>
+                <dd>{{ tableFormatter(item.serialNumber) }}</dd>
+                <!-- Spare Part Number -->
+                <dt>{{ $t('pageHardwareStatus.table.sparePartNumber') }}:</dt>
+                <dd>{{ tableFormatter(item.sparePartNumber) }}</dd>
                 <!-- Model -->
                 <dt>{{ $t('pageHardwareStatus.table.model') }}:</dt>
                 <dd>{{ tableFormatter(item.model) }}</dd>
-                <!-- Instruction set -->
-                <dt>{{ $t('pageHardwareStatus.table.instructionSet') }}:</dt>
-                <dd>{{ tableFormatter(item.instructionSet) }}</dd>
+                <!-- Asset Tag -->
+                <dt>{{ $t('pageHardwareStatus.table.assetTag') }}:</dt>
+                <dd>{{ tableFormatter(item.assetTag) }}</dd>
+              </dl>
+            </b-col>
+            <b-col class="mt-2" sm="6" xl="6">
+              <dl>
+                <!-- Status state -->
+                <dt>{{ $t('pageHardwareStatus.table.statusState') }}:</dt>
+                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <!-- Health Rollup -->
+                <dt>{{ $t('pageHardwareStatus.table.healthRollup') }}:</dt>
+                <dd>{{ tableFormatter(item.healthRollup) }}</dd>
+              </dl>
+            </b-col>
+          </b-row>
+          <div class="section-divider mb-3 mt-3"></div>
+          <b-row>
+            <b-col class="mt-1" sm="6" xl="6">
+              <dl>
                 <!-- Manufacturer -->
                 <dt>{{ $t('pageHardwareStatus.table.manufacturer') }}:</dt>
                 <dd>{{ tableFormatter(item.manufacturer) }}</dd>
-              </dl>
-            </b-col>
-            <b-col sm="6" xl="4">
-              <dl>
-                <!-- Architecture -->
+                <!-- Processor Type -->
+                <dt>{{ $t('pageHardwareStatus.table.processorType') }}:</dt>
+                <dd>{{ tableFormatter(item.processorType) }}</dd>
+                <!-- Processor Architecture -->
                 <dt>
                   {{ $t('pageHardwareStatus.table.processorArchitecture') }}:
                 </dt>
                 <dd>{{ tableFormatter(item.processorArchitecture) }}</dd>
-                <!-- Type -->
-                <dt>{{ $t('pageHardwareStatus.table.processorType') }}:</dt>
-                <dd>{{ tableFormatter(item.processorType) }}</dd>
-                <!-- Total cores -->
+                <!-- Instruction Set -->
+                <dt>{{ $t('pageHardwareStatus.table.instructionSet') }}:</dt>
+                <dd>{{ tableFormatter(item.instructionSet) }}</dd>
+                <!-- Version -->
+                <dt>{{ $t('pageHardwareStatus.table.version') }}:</dt>
+                <dd>{{ tableFormatter(item.version) }}</dd>
+              </dl>
+            </b-col>
+            <b-col class="mt-1" sm="6" xl="6">
+              <dl>
+                <!-- Min Speed MHz -->
+                <dt>{{ $t('pageHardwareStatus.table.minSpeedMHz') }}:</dt>
+                <dd>{{ tableFormatter(item.minSpeedMHz) }}</dd>
+                <!-- Max Speed MHz -->
+                <dt>{{ $t('pageHardwareStatus.table.maxSpeedMHz') }}:</dt>
+                <dd>{{ tableFormatter(item.maxSpeedMHz) }}</dd>
+                <!-- Total Cores -->
                 <dt>{{ $t('pageHardwareStatus.table.totalCores') }}:</dt>
                 <dd>{{ tableFormatter(item.totalCores) }}</dd>
-                <!-- Status state -->
-                <dt>{{ $t('pageHardwareStatus.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <!-- Total Threads -->
+                <dt>{{ $t('pageHardwareStatus.table.totalThreads') }}:</dt>
+                <dd>{{ tableFormatter(item.totalThreads) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -96,7 +152,7 @@
 import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
 import StatusIcon from '@/components/Global/StatusIcon';
 import TableCellCount from '@/components/Global/TableCellCount';
-
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
 import TableSortMixin from '@/components/Mixins/TableSortMixin';
 import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
 import Search from '@/components/Global/Search';
@@ -110,6 +166,7 @@
 export default {
   components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
   mixins: [
+    BVToastMixin,
     TableRowExpandMixin,
     TableDataFormatterMixin,
     TableSortMixin,
@@ -138,16 +195,16 @@
           tdClass: 'text-nowrap',
         },
         {
-          key: 'partNumber',
-          label: this.$t('pageHardwareStatus.table.partNumber'),
+          key: 'locationNumber',
+          label: this.$t('pageHardwareStatus.table.locationNumber'),
           formatter: this.tableFormatter,
           sortable: true,
         },
         {
-          key: 'serialNumber',
-          label: this.$t('pageHardwareStatus.table.serialNumber'),
+          key: 'identifyLed',
+          label: this.$t('pageHardwareStatus.table.identifyLed'),
           formatter: this.tableFormatter,
-          sortable: true,
+          sortable: false,
         },
       ],
       searchFilter: searchFilter,
@@ -175,6 +232,19 @@
     onFiltered(filteredItems) {
       this.searchTotalFilteredRows = filteredItems.length;
     },
+    toggleIdentifyLedValue(row) {
+      this.$store
+        .dispatch('processors/updateIdentifyLedValue', {
+          uri: row.uri,
+          identifyLed: row.identifyLed,
+        })
+        .catch(({ message }) => this.errorToast(message));
+    },
+    // TO DO: remove hasIdentifyLed when the following is merged:
+    // https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/37045
+    hasIdentifyLed(identifyLed) {
+      return typeof identifyLed === 'boolean';
+    },
   },
 };
 </script>