Skip to content

feat: add call-to-action empty states to the list pages - #3634

Merged
rsdmike merged 1 commit into
mainfrom
feat/list-empty-states
Oct 13, 2026
Merged

rsdmike merged 1 commit into
mainfrom
feat/list-empty-states

Conversation

@rsdmike

@rsdmike rsdmike commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Replaces the bare "No X" heading on the Devices, Profiles, Domains, Wireless, IEEE 802.1x, CIRA and Proxy pages with a shared app-empty-state component: the page's icon, the existing title, a short description of what the items are for and where they get used, and an Add New button that runs the same action as the toolbar button.

On Devices the description differs between cloud and Console because the two add dialogs do different things. A tag filter with no matches and the Discovered tab show the title only.

The Proxy page gets its own "No Proxy Configs" title, which leaves common.noData unused, so it is removed. Includes i18n strings for all languages.

PR Checklist

  • Unit Tests have been added for new changes
  • API tests have been updated if applicable
  • All commented code has been removed
  • If you've added a dependency, you've ensured license is compatible with Apache 2.0 and clearly outlined the added dependency.

What are you changing?

Anything the reviewer should know when reviewing this PR?

If the there are associated PRs in other repositories, please link them here (i.e. device-management-toolkit/repo#365 )

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.

🟢 Approval recommended

The shared component is consistently integrated, localized, and covered by focused unit tests.

0 open findings

What changed in this PR

Adds reusable, localized call-to-action empty states across configuration and device list pages.

Changes:

  • Introduces a shared Material-based empty-state component.
  • Updates seven list pages with contextual descriptions and Add New actions.
  • Adds focused unit tests and translations for all supported languages.
File Description
src/​app/​shared/​empty-state/​empty-state.component.ts Defines the shared empty-state component.
src/​app/​shared/​empty-state/​empty-state.component.html Renders optional description and action.
src/​app/​shared/​empty-state/​empty-state.component.scss Styles the empty-state layout.
src/​app/​shared/​empty-state/​empty-state.component.spec.ts Tests rendering and action emission.
src/​app/​devices/​devices.component.ts Registers the empty-state component.
src/​app/​devices/​devices.component.html Adds flavor-, filter-, and tab-aware empty states.
src/​app/​devices/​devices.component.spec.ts Tests device empty-state variants.
src/​app/​profiles/​profiles.component.ts Registers the empty-state component.
src/​app/​profiles/​profiles.component.html Adds the profiles call to action.
src/​app/​profiles/​profiles.component.spec.ts Tests the profiles empty state.
src/​app/​configs/​configs.component.ts Registers the empty-state component.
src/​app/​configs/​configs.component.html Adds the CIRA configuration call to action.
src/​app/​configs/​configs.component.spec.ts Tests the CIRA empty state.
src/​app/​domains/​domains.component.ts Registers the empty-state component.
src/​app/​domains/​domains.component.html Adds the domains call to action.
src/​app/​domains/​domains.component.spec.ts Tests the domains empty state.
src/​app/​wireless/​wireless.component.ts Registers the empty-state component.
src/​app/​wireless/​wireless.component.html Adds the wireless configuration call to action.
src/​app/​wireless/​wireless.component.spec.ts Tests the wireless empty state.
src/​app/​ieee8021x/​ieee8021x.component.ts Registers the empty-state component.
src/​app/​ieee8021x/​ieee8021x.component.html Adds the 802.1x configuration call to action.
src/​app/​ieee8021x/​ieee8021x.component.spec.ts Tests the 802.1x empty state.
src/​app/​proxy-configs/​proxy-configs.component.ts Registers the empty-state component.
src/​app/​proxy-configs/​proxy-configs.component.html Adds the proxy configuration call to action.
src/​app/​proxy-configs/​proxy-configs.component.spec.ts Tests the proxy empty state.
src/​assets/​i18n/​en.json Adds English empty-state copy.
src/​assets/​i18n/​ar.json Adds Arabic empty-state copy.
src/​assets/​i18n/​de.json Adds German empty-state copy.
src/​assets/​i18n/​es.json Adds Spanish empty-state copy.
src/​assets/​i18n/​fi.json Adds Finnish empty-state copy.
src/​assets/​i18n/​fr.json Adds French empty-state copy.
src/​assets/​i18n/​he.json Adds Hebrew empty-state copy.
src/​assets/​i18n/​it.json Adds Italian empty-state copy.
src/​assets/​i18n/​ja.json Adds Japanese empty-state copy.
src/​assets/​i18n/​nl.json Adds Dutch empty-state copy.
src/​assets/​i18n/​ru.json Adds Russian empty-state copy.
src/​assets/​i18n/​sv.json Adds Swedish empty-state copy.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@rsdmike
rsdmike added this pull request to stack #3635 October 12, 2026 23:04
@rsdmike
rsdmike force-pushed the feat/list-empty-states branch 4 times, most recently from 9686773 to 338141c Compare October 13, 2026 17:28
Base automatically changed from feat/material-3 to main October 13, 2026 17:34
@rsdmike
rsdmike force-pushed the feat/list-empty-states branch from 338141c to a808bd5 Compare October 13, 2026 17:35
Replace the bare "No X" heading on the Devices, Profiles, Domains,
Wireless, IEEE 802.1x, CIRA and Proxy pages with a shared
app-empty-state component: the page's icon, the existing title, a
short description of what the items are for and where they get used,
and an Add New button that runs the same action as the toolbar button.

On Devices the description differs between cloud and Console because
the two add dialogs do different things. A tag filter with no matches
and the Discovered tab show the title only.

The Proxy page gets its own "No Proxy Configs" title, which leaves
common.noData unused, so it is removed. Includes i18n strings for all
languages.
@rsdmike
rsdmike force-pushed the feat/list-empty-states branch from a808bd5 to 4f478ed Compare October 13, 2026 17:41
@rsdmike
rsdmike merged commit bb1549a into main Oct 13, 2026
10 checks passed
@rsdmike
rsdmike deleted the feat/list-empty-states branch October 13, 2026 17:50
RosieAMT pushed a commit that referenced this pull request Oct 13, 2026
# [3.71.0](v3.70.0...v3.71.0) (2026-10-13)

### Features

* add call-to-action empty states to the list pages ([#3634](#3634)) ([bb1549a](bb1549a))
@RosieAMT

Copy link
Copy Markdown

🎉 This PR is included in version 3.71.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

RosieAMT pushed a commit that referenced this pull request Oct 13, 2026
# [3.70.0](v3.69.3...v3.70.0) (2026-10-13)

### Features

* add call-to-action empty states to the list pages ([#3634](#3634)) ([bb1549a](bb1549a))
* migrate to Material 3 and move app chrome into the sidebar ([#3633](#3633)) ([c86ef34](c86ef34))
@RosieAMT

Copy link
Copy Markdown

🎉 This PR is included in version 3.70.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@graikhel-intel graikhel-intel linked an issue Oct 22, 2026 that may be closed by this pull request
5 tasks done
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.

Upgrade sample-web-ui from Angular 21 to Angular 22

5 participants