Skip to content

Conversation

@CircuitCoder
Copy link

@CircuitCoder CircuitCoder commented Nov 8, 2025

Muting notification for a certain device may be helpful in certain cases, such as when a degraded drive is waiting for replacement. This PR adds the backend and frontend changes for muting a device.

It's a pleasant surprise that a setting dialog containing a "notification" entry in the device detail page is already present. This PR reuse that dialog.

Changes

  • Added a column mute: boolean to the device table.
  • For devices with mute = true, skip notification.
  • Added two endpoints: /device/:wwn/mute and /device/:wwn/unmute for setting the mute status in devices.
  • Implement the "Notification" entry in the device detail settings dialog.
  • Enable the settings dialog in wide screen.
  • Added a "mute" icon in the device detail page and dashboard card for muted devices.

Future works

Implementation presented in this PR has some shortcomings:

  • I'm rather new to Angular, so the handling of state updates are a little sloppy. Right now the following actions happens sequentially:
    The dialog closes. -> Send update request -> Refresh drive data
    One may see some opportunity for races here. However races does not introduce any inconsistency state, so no additional locking is done in this PR.
  • Alignment of the muted icon is incorrect with some page zooms. Ideally we'd want a icon-font with line-height as its means of vertical aligning, but that means we'll bundle a icon font.
  • Maybe instead of a device-wise mute, a attribute-wise mute is better?
  • There is no tests whatsoever

Screenshots

image image

Starosdev added a commit to Starosdev/scrutiny that referenced this pull request Nov 30, 2025
Starosdev pushed a commit to Starosdev/scrutiny that referenced this pull request Nov 30, 2025
## [1.1.0](v1.0.0...v1.1.0) (2025-11-30)

### Features

* Add "day" as resolution for temperature graph ([2670af2](2670af2))
* add day resolution for temperature graph (upstream PR [AnalogJ#823](https://github.com/Starosdev/scrutiny/issues/823)) ([2d6ffa7](2d6ffa7))
* add setting to enable/disable SCT temperature history (upstream PR [AnalogJ#557](https://github.com/Starosdev/scrutiny/issues/557)) ([c3692ac](c3692ac))
* Implement device-wise notification mute/unmute ([925e86d](925e86d))
* implement device-wise notification mute/unmute (upstream PR [AnalogJ#822](https://github.com/Starosdev/scrutiny/issues/822)) ([ea7102e](ea7102e))
* implement Prometheus metrics support (upstream PR [AnalogJ#830](https://github.com/Starosdev/scrutiny/issues/830)) ([7384f7d](7384f7d))
* support SAS temperature (upstream PR [AnalogJ#816](https://github.com/Starosdev/scrutiny/issues/816)) ([f954cc8](f954cc8))

### Bug Fixes

* better handling of ata_sct_temperature_history (upstream PR [AnalogJ#825](https://github.com/Starosdev/scrutiny/issues/825)) ([d134ad7](d134ad7))
* **database:** add missing temperature parameter in SCSI migration ([df7da88](df7da88))
* support transient SMART failures (upstream PR [AnalogJ#375](https://github.com/Starosdev/scrutiny/issues/375)) ([601775e](601775e))
* **ui:** fix temperature conversion in temperature.pipe.ts (upstream PR [AnalogJ#815](https://github.com/Starosdev/scrutiny/issues/815)) ([e0f2781](e0f2781))

### Refactoring

* use limit() instead of tail() for fetching smart attributes (upstream PR [AnalogJ#829](https://github.com/Starosdev/scrutiny/issues/829)) ([2849531](2849531))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant