Repository navigation
refactor(devices): hold template state in signals - #3629
Merged
Merged
Conversation
Fields that device pages render and that change after the first render (loaded data, connection flags, the selected disk image, KVM displays, the event log page) are now signals, so the views update under OnPush without relying on a global change detection pass. The add-certificate dialog no longer calls ChangeDetectorRef.detectChanges(); its certificate and trusted flag are signals. The event log holds its rows in a signal in place of a MatTableDataSource.
This was referenced Oct 12, 2026
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The signal conversions are consistent across component logic, templates, and corresponding unit tests.
0 open findings
What changed in this PR
Refactors device-page template state to Angular signals, preparing the application for OnPush change detection and the Angular 22 upgrade.
Changes:
- Converts asynchronously updated device, connection, display, log, and form state to signals.
- Updates templates to read signal values.
- Adapts unit tests to the signal APIs.
| File | Description |
|---|---|
src/app/devices/tls/tls.component.ts |
Stores TLS data in a signal. |
src/app/devices/tls/tls.component.spec.ts |
Updates TLS signal assertions. |
src/app/devices/tls/tls.component.html |
Reads TLS data from the signal. |
src/app/devices/sol/sol.component.ts |
Converts SOL readiness and disconnect state. |
src/app/devices/sol/sol.component.spec.ts |
Updates SOL signal tests. |
src/app/devices/sol/sol.component.html |
Reads SOL state signals. |
src/app/devices/kvm/kvm.component.ts |
Signals KVM readiness, disk, and displays. |
src/app/devices/kvm/kvm.component.spec.ts |
Updates KVM signal tests. |
src/app/devices/kvm/kvm.component.html |
Reads KVM state signals. |
src/app/devices/ider/ider.component.ts |
Stores the selected disk in a signal. |
src/app/devices/ider/ider.component.spec.ts |
Updates disk-image assertions. |
src/app/devices/ider/ider.component.html |
Reads the disk-image signal. |
src/app/devices/hardware-information/hardware-information.component.ts |
Signals loaded hardware and disk data. |
src/app/devices/hardware-information/hardware-information.component.spec.ts |
Updates hardware signal setup. |
src/app/devices/hardware-information/hardware-information.component.html |
Reads hardware information signals. |
src/app/devices/general/general.component.ts |
Signals AMT details and feature form state. |
src/app/devices/general/general.component.spec.ts |
Updates feature-form signal access. |
src/app/devices/general/general.component.html |
Reads general-page signals. |
src/app/devices/explorer/explorer.component.ts |
Signals XML output and filtered options. |
src/app/devices/explorer/explorer.component.spec.ts |
Updates explorer signal assertions. |
src/app/devices/explorer/explorer.component.html |
Reads explorer signals. |
src/app/devices/event-log/event-log.component.ts |
Replaces table data source and pagination state with signals. |
src/app/devices/event-log/event-log.component.spec.ts |
Updates event-log signal tests. |
src/app/devices/event-log/event-log.component.html |
Binds the table and pagination to signals. |
src/app/devices/device-toolbar/device-toolbar.component.ts |
Stores the loaded device in a signal. |
src/app/devices/device-toolbar/device-toolbar.component.html |
Reads device details from the signal. |
src/app/devices/device-detail/device-detail.component.ts |
Signals route and sidenav state. |
src/app/devices/device-detail/device-detail.component.spec.ts |
Updates current-view assertions. |
src/app/devices/device-detail/device-detail.component.html |
Reads detail-page state signals. |
src/app/devices/certificates/add-cert-dialog/add-cert-dialog.component.ts |
Signals certificate and trust state. |
src/app/devices/certificates/add-cert-dialog/add-cert-dialog.component.spec.ts |
Updates certificate signal tests. |
src/app/devices/certificates/add-cert-dialog/add-cert-dialog.component.html |
Binds dialog controls to signals. |
src/app/devices/audit-log/audit-log.component.ts |
Stores audit-log response in a signal. |
src/app/devices/audit-log/audit-log.component.html |
Reads audit-log data from the signal. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This was referenced Oct 12, 2026
rsdmike
added this pull request to stack #3635
October 12, 2026 23:03
madhavilosetty-intel
approved these changes
Oct 13, 2026
|
🎉 This PR is included in version 3.70.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version 3.70.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fields that device pages render and that change after the first render (loaded data, connection flags, the selected disk image, KVM displays, the event log page) are now signals, so the views update under OnPush without relying on a global change detection pass.
The add-certificate dialog no longer calls
ChangeDetectorRef.detectChanges(); its certificate and trusted flag are signals. The event log holds its rows in a signal in place of aMatTableDataSource.PR Checklist
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 )