Skip to content

feat: add tabs, product type column, and discovered field - #3417

Merged
ShradhaGupta31 merged 5 commits into
mainfrom
device-discovery-UI-changes
Sep 25, 2026
Merged

ShradhaGupta31 merged 5 commits into
mainfrom
device-discovery-UI-changes

Conversation

@ShradhaGupta31

@ShradhaGupta31 ShradhaGupta31 commented Jul 7, 2026 •

Copy link
Copy Markdown
Contributor
  • Add two tabs to the devices page: Discovered & Managed with live counts in each tab label
  • Add 'Product Type' column (ISM / vPro) derived from fwSku bitmask

Addresses: #3432

UI after this change:
image
image

@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch 6 times, most recently from 2daa143 to a98454e Compare July 13, 2026 14:57
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from a98454e to e1fdf15 Compare July 14, 2026 06:33
@ShradhaGupta31
ShradhaGupta31 requested a review from Copilot July 14, 2026 06:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds UI affordances on the Devices page to segment devices by status and expose additional device metadata, extending the device model to support a “discovered” flag and deriving a “Product Type” column from fwSku.

Changes:

  • Adds discovered?: boolean to DeviceInfo.
  • Introduces a mat-tab-group with All / Activated / Discovered tabs and client-side tab filtering with per-tab counts.
  • Adds a “Product Type” table column computed from the firmware SKU bitmask.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.

File Description
src/models/models.ts Extends DeviceInfo with an optional discovered flag used by the new UI filtering.
src/app/devices/devices.component.ts Adds tab state + filtering, stores server total count, and introduces getProductType() for the new column.
src/app/devices/devices.component.html Adds the tabs UI and renders the new Product Type column in the device table.
Comments suppressed due to low confidence (1)

src/app/devices/devices.component.ts:193

  • The Product Type column is marked sortable (mat-sort-header), but MatTableDataSource will sort by a 'productType' property that doesn't exist on Device. As a result, sorting by this column will not work unless a sortingDataAccessor is provided.
  constructor() {
    this.selectedDevices = new SelectionModel<Device>(true, [])
    this.powerStates = this.devicesService.PowerStates
    if (!this.isCloudMode) {
      this.displayedColumns = [
        'select',
        'hostname',
        'productType',
        'tags',
        'actions',
        'notification'
      ]
    }
  }

Comment thread src/app/devices/devices.component.ts Outdated
Comment thread src/app/devices/devices.component.html Outdated
Comment thread src/app/devices/devices.component.html Outdated
Comment thread src/app/devices/devices.component.html
Comment thread src/app/devices/devices.component.ts
Comment thread src/app/devices/devices.component.html Outdated
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch 3 times, most recently from c6bc8b9 to c922b08 Compare July 20, 2026 12:11
@ShradhaGupta31
ShradhaGupta31 requested a review from Copilot July 20, 2026 12:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 17 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/app/devices/devices.component.ts:168

  • applyTabFilter() currently sets totalCount to the locally filtered page size for tabs 1/2, while the data itself is still coming from a server-paginated request ($top/$skip). This makes the paginator length inconsistent and (combined with the template gating) prevents users from navigating to other pages while on Activated/Discovered tabs. Also, the new Product Type column is marked sortable in the template, but MatTableDataSource sorting will not work for a computed value unless a sortingDataAccessor is provided.
  private applyTabFilter(): void {
    let filtered: Device[]
    switch (this.activeTab()) {
      case 1:
        filtered = this.allDevicesData.filter(
          (d) => d.deviceInfo?.currentMode != null && d.deviceInfo.currentMode !== 'not activated'
        )
        this.totalCount.set(filtered.length)
        break
      case 2:
        filtered = this.allDevicesData.filter((d) => d.deviceInfo?.discovered === true)
        this.totalCount.set(filtered.length)
        break
      default:
        filtered = this.allDevicesData
        this.totalCount.set(this.serverTotalCount)
        break
    }
    this.devices.data = filtered
  }

Comment thread src/app/devices/devices.component.html Outdated
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from c922b08 to 4158eee Compare July 21, 2026 07:36
ShradhaGupta31 added a commit that referenced this pull request Jul 21, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch 2 times, most recently from b68d35c to 0681000 Compare July 22, 2026 06:11
ShradhaGupta31 added a commit that referenced this pull request Jul 22, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from 3783c79 to 90be1cd Compare July 22, 2026 06:28
ShradhaGupta31 added a commit that referenced this pull request Jul 22, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from 90be1cd to 3dba353 Compare July 22, 2026 11:26
@ShradhaGupta31
ShradhaGupta31 marked this pull request as ready for review July 24, 2026 04:54
ShradhaGupta31 added a commit that referenced this pull request Jul 24, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from 3dba353 to d9a1126 Compare July 24, 2026 04:55
@sudhir-intc

Copy link
Copy Markdown
Contributor

@ShradhaGupta31 : Tried out this PR, the UI seems to be working fine as expected. How about the following column where Type shows - Activated/Discovered and Tags - showcase CCM/ACM
image

Here's what I see with your PR:

image

@ShradhaGupta31

ShradhaGupta31 commented Jul 24, 2026 •

Copy link
Copy Markdown
Contributor Author

@ShradhaGupta31 : Tried out this PR, the UI seems to be working fine as expected. How about the following column where Type shows - Activated/Discovered and Tags - showcase CCM/ACM image

Here's what I see with your PR:

image

@sudhir-intc - This PR covers the Product Type and Tabs-related changes only. Since the associated keywords were still under discussion at the time, this PR was limited to the Tabs and Product Type updates only. Now that the keyword changes are finalized, I will raise a separate PR for the Type-related updates.

For Tags, the appropriate tag needs to be populated through the API. Once the API provides values such as CCM or ACM as input, the corresponding tag will be displayed accordingly.
image

ShradhaGupta31 added a commit that referenced this pull request Sep 2, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from f0f72ef to 84e429d Compare September 2, 2026 10:08
ShradhaGupta31 added a commit that referenced this pull request Sep 3, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from 84e429d to 50609f2 Compare September 3, 2026 04:47
ShradhaGupta31 added a commit that referenced this pull request Sep 3, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
ShradhaGupta31 added a commit that referenced this pull request Sep 8, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
ShradhaGupta31 added a commit that referenced this pull request Sep 8, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from 0502625 to 63aed0e Compare September 8, 2026 12:15
sudhir-intc
sudhir-intc previously approved these changes Sep 8, 2026

@sudhir-intc sudhir-intc left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have not done a code review but tried the functionality with the PR's and they work as expected. Tried with a non-vpro device, vpro device and ism device

image

ShradhaGupta31 added a commit that referenced this pull request Sep 21, 2026
- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from 63aed0e to 8db552f Compare September 21, 2026 11:01
@ShradhaGupta31
ShradhaGupta31 requested a lite review from Copilot September 21, 2026 11:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread src/app/devices/devices.component.ts
Comment thread src/app/devices/devices.component.html
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from 8db552f to ce098fe Compare September 22, 2026 05:41

@sudhir-intc sudhir-intc left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have not done a code review but tried the functionality with the PR's and they work as expected. Tried with a non-vpro device, vpro device and ism device

@sinchubhat sinchubhat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM functionality wise

- Add All/Activated/Discovered tab group to devices list
- Add Product Type column derived from fwSku bitmask (ISM/vPro)
- Add discovered field to DeviceInfo model
- Show paginator on all tabs using server total count
- Add i18n keys for tab labels and Product Type header in all 12 locales
- Add unit tests for getProductType and tab filter logic
- Fix cdk-overlay-backdrop leak in device.spec.ts cypress test

Resolves: #3417
- updated logic to include server side counts

Signed-off-by: ShradhaGupta31 <shradha.gupta@intel.com>
- Console now shows only Discovered and Managed tabs instead of the prior
All/Activated/Discovered set;
- Power actions (up/off/restart) are hidden for devices on the
Discovered tab, since they haven't been activated yet.
- Update getProductType to label devices with no/unrecognized fwSku
as "non-vPro" instead of an empty string.

Signed-off-by: ShradhaGupta31 <shradha.gupta@intel.com>
@ShradhaGupta31
ShradhaGupta31 force-pushed the device-discovery-UI-changes branch from ce098fe to 64fa3ad Compare September 25, 2026 03:41
@ShradhaGupta31
ShradhaGupta31 merged commit ccb263d into main Sep 25, 2026
10 checks passed
@ShradhaGupta31
ShradhaGupta31 deleted the device-discovery-UI-changes branch September 25, 2026 05:48
RosieAMT pushed a commit that referenced this pull request Sep 25, 2026
# [3.68.0](v3.67.1...v3.68.0) (2026-09-25)

### Features

* add tabs, product type column, and discovered field ([#3417](#3417)) ([ccb263d](ccb263d))
@RosieAMT

Copy link
Copy Markdown

🎉 This PR is included in version 3.68.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tabs for devices include product type column, and discovered field

6 participants