Update alert subscription UX#2015
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
There was a problem hiding this comment.
Not sure what was discussed, but I might expect to see some of the other alert configuration options here - at least shardFailed.
The data movement setting was the only global prefix setting requested at this time. Given the stage this feature is in and its UX breadth, I would advocate that support of additional, global prefix settings be considered fast follows.
Related to this, the UI doesn't appear to show any config inherited from parent prefixes. For example, if I configure a 24 hour interval for dataMovementStalled on the acmeCo/ prefix, when i open the notification dialog to acmeCo/nested/ , the dataMovementStalled dropdown says "None", even though the parent prefix is in effect there.
The EffectiveAlertConfig is currently used to populate the Interval field in the Data Movement Stalled section. This object is reported to correspond to the fully-resolved effective config at this scope, merging all ancestor prefix layers and controller defaults. I will take another look at the network calls to ensure that the client is making requests as expected. Please let me know if different object should be used.
UPDATE: This behavior is expected as no row exists for acmeCo/nested/ in the alert_configs database table at this time, leaving the server unaware of the new prefix until the user has clicked the Save button in the Configure Notification Methods dialog. The only sensible way to get around this in the absence of cleanup routines on/deletion APIs exposed by the backend would be to have a button (preferably inline) with the Prefix field that would create a row in the alert_configs database table with an empty object in the config database table cell when clicked.
To my knowledge, a GraphQL endpoint that allows the client to delete rows from the alert_configs database table does not exist; therefore, there is a question of which entity (i.e., client or server) should be responsible for cleaning up "stale" rows in this table (i.e., a row where the config database table cell contains an empty object) and what the permitted scope of deletions should be. Regarding the latter open question, if a deletion API is the proper direction, it would be beneficial if the request could accept a prefix and, perhaps, a flag indicating the intent to clean up "stale" rows corresponding to as well as under that prefix. But I minimally digress.
Tl;dr: The GraphQL API will not return the "inherited", global settings for a prefix that does not have a corresponding row in the alert_configs table, resulting in this UX quirk that I raised around a month ago. At the time, I was directed to implement the interactive proposal as closely as possible, therefore I assume the broader team is comfortable addressing this post-release as a fast-follow if we desire to take action.
(and i'm also seeing now that if i save that acmeCo/nested/ dialog without making any changes, both parent configs and subscriptions are saved as new rows with the acmeCo/nested/ prefix)
This was ultimately an open UX question that is tightly coupled to that highlighted above. Allowing rows to be inserted into the alert_configs and alert_subscriptions tables for a new prefix when global prefix settings nor subscriptions are defined, allows for the new prefix to be visible in the Organization Notifications table and the "inherited", global prefix settings (i.e., the effective alert config) to be viewed in Update Notification Methods dialog.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as resolved.
This comment was marked as resolved.
The quoted UI/UX callouts above are consequences of the proposed and approved design I was instructed to follow closely. I made similar callouts in the past, however the most likely scenario will be that UI/UX adjustments will be made as fast-follows, either as other teammates encounter the friction in production or as customers do.
There are 16 pixels of padding on the right and left of MUI's Action Items:
|
This comment was marked as resolved.
This comment was marked as resolved.
| return subscriptionMetadata; | ||
| }; | ||
|
|
||
| export const fromUnconventionalTimeFormat = (value: string | undefined) => { |
There was a problem hiding this comment.
a dataMovementStalled config with "stalledFor: "30days" will show up in the UI as "None".
Probably better to just fall back to the value sent by the server if it doesn't match one of the existing choices
| {loading ? ( | ||
| <Skeleton height={38} /> | ||
| ) : ( | ||
| <Autocomplete |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
|
hey by the way - did you do a claude review on this? i'm thinking a lot of this stuff would be caught by automated PR review... |
This comment was marked as off-topic.
This comment was marked as off-topic.
As aforementioned, the Configure Notification Methods dialog only affects a single prefix. Changing the prefix will not reset the settings or subscriptions the user configured unless there is existing information in the database tables to override it. This UX is peculiar, was brought to the attention of necessary parties by me, and it was decided that the UX would be released as-is and re-evaluated later on.
Email validation is pretty aggressive as requested and agreed to in a UI/UX meeting when alert subscriptions was first introduced to the application. If you would like to see it relaxed now, that is fine but such a nit is not blocking.
This is intentional and necessary for reasons explained in dailies in May.
This is a fair point, however it is out-of-scope for this feature. Please review the interactive proposal to get a better understanding of the scope of this feature. |
This comment was marked as resolved.
This comment was marked as resolved.
|
No. I do not know what commit you are working off of, but it appears to be older than that of the current branch. Nevertheless, no, that is not what I am saying here. You and I are misinterpreting each other's words -- which is to be expected as we learn the other's communication styles and patterns. I believed you described behavior strictly within the dialog, therefore I described how changes to the prefix input affects the data in other dialog sections. This UX is something that does feel odd to me, so I wanted to make sure you were aware that it is, presently, expected. As stated in Slack, it does appear that we have an ethos to PRs that differ. I have not done a code review of the entire PR after the changes made yesterday. I will explicitly re-request a review in GitHub (and message you directly, if that would be beneficial) when it is time for you to take a second look at this PR. |
Issues
The issues directly below are advanced by this PR:
#1960
Changes
1960
Tests
Manually tested
Automated tests
Playwright tests ran locally
Screenshots
NOTE: Code that altered button label styling in the application was merged into this branch after screenshots were taken for this PR. The button labels in the Organization Notifications section of the Settings tab on the Admin page are in title case.
Table
Organization Notifications table
Dialogs
Configure Notification Methods dialog | Initialized
Configure Notification Methods dialog | Subscription summary expanded
Update Notification Methods dialog | Initialized
Update Notification Methods dialog | Subscription summary expanded
Recipients section | No recipients found
Alert Types List Item Interactions
Standard alert type | Deselected
Standard alert type | Deselected | Hovered
Standard alert type | Selected
Standard alert type | Selected | Hovered
System alert type
A list item corresponding to a system alert type does not have a hover state since it cannot be deselected.
Errors
Duplicate subscribed email detected | Subscriber summary expanded
Duplicate subscribed email detected | Subscriber summary collapsed
Multiple email input errors detected | Subscriber summary expanded
Multiple email input errors detected | Subscriber summary collapsed