Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RAM] Make the Cancel Snooze button skip the current recurrence #132860

Closed
Zacqary opened this issue May 24, 2022 · 7 comments · Fixed by #136462
Closed

[RAM] Make the Cancel Snooze button skip the current recurrence #132860

Zacqary opened this issue May 24, 2022 · 7 comments · Fixed by #136462
Assignees
Labels
bug Fixes for quality problems that affect the customer experience Feature:Alerting/RulesManagement Issues related to the Rules Management UX Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) v8.4.0

Comments

@Zacqary
Copy link
Contributor

Zacqary commented May 24, 2022

Consider the following example:

Screen Shot 2022-05-24 at 4 21 05 PM

This rule snoozes Every week on Tuesday. Let's say I'm looking at it on a Tuesday and I want to skip this week, but I don't want to delete the whole schedule.

As a user, I expect the Cancel Snooze button to re-enable notifications this week, but to disable them next week. Currently, clicking this button will do nothing in this scenario.

This will probably require adding something to a data model somewhere. We can pull the current snoozeEndTime for an active snooze, so we should be able to tell the task manager that a given snoozeSchedule id should not actually snooze anything until after that snoozeEndTime.

@Zacqary Zacqary added bug Fixes for quality problems that affect the customer experience Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) Feature:Alerting/RulesManagement Issues related to the Rules Management UX v8.4.0 labels May 24, 2022
@elasticmachine
Copy link
Contributor

Pinging @elastic/response-ops (Team:ResponseOps)

@XavierM XavierM moved this from Awaiting Triage to Up for grabs in AppEx: ResponseOps - Rules & Alerts Management Jun 9, 2022
@XavierM
Copy link
Contributor

XavierM commented Jun 13, 2022

@mdefazio we should talk about a solution here? it seems confusing when we have multiple schedules to be cancel

@mdefazio
Copy link
Contributor

@XavierM Yeah, we knew this was coming. We had planned on a modal asking to confirm which choice (only current schedule, or all future schedules). I will add some wireframes to the issue.

The other, somewhat related scenario which is currently possible (that may require larger changes) is if I choose to apply the 15 hour relative snooze from the above screenshot UI. There would then be a scheduled snooze (say Tuesdays at 5pm and then a relative snooze for the next 15 hours). This presents some extra complexity.

The other potential scenario is if I have two overlapping schedules...we would then need to have them choose or have the 'Cancel current' option apply to both.

@Zacqary
Copy link
Contributor Author

Zacqary commented Jun 13, 2022

The other potential scenario is if I have two overlapping schedules...we would then need to have them choose or have the 'Cancel current' option apply to both.

Imo it should apply to both. Can't imagine a case where a user wants to unsnooze their "Every Tuesday" snooze but keep their ad-hoc snooze active

And like, if you do want to do that for some reason? Then like. My dude. Maybe you should not be configuring things so complicated.

@mdefazio
Copy link
Contributor

After discussing with @XavierM and @Zacqary, we opted for a straightforward experience here that simply cancels all schedules/snoozes. We acknowledge there may be scenarios that someone will want to cancel only one of the scheduled snoozes. But the level of effort to fix an undesired result at this time seems acceptable. Once we have a more scalable snoozing solution, we will want to revisit this.

Summary:
User clicks 'Cancel snooze', if multiple / overlapping snooze schedules (or relative snooze) are running, then simply cancel the current occurrence of all schedules (and relative snooze).

No change if only a relative snooze is active, or multiple schedule snoozes are assigned but only one is currently active.

Screenshot of Whimsical diagram

image

Enlarged modal for copy reference:
image

Resume notifying when alerts are generated as defined in the rule actions.
[Callout size="s" color="primary" title="Only the current occurrence of a schedule will be canceled."]
Cancel | [ Apply ]

The copy could be better perhaps... @lcawl Do you mind taking a quick glance?
@XavierM Please let me know if I missed something

@Zacqary
Copy link
Contributor Author

Zacqary commented Jul 14, 2022

I'm realizing this will require a minor addition to the SavedObject schema, as RRULE doesn't support something like "recur every x weeks, except for this date." Something like a skippedRecurrences list. Shouldn't be too difficult though.

@Zacqary
Copy link
Contributor Author

Zacqary commented Jul 14, 2022

Waiting on #136148 to provide a model for determining a rule's isSnoozedUntil on fetch. We'll need to use a similar request pattern to determine which snooze IDs are currently active, in order to be able to display the crossed out bell icon here:
Screen Shot 2022-07-14 at 2 16 52 PM

EDIT: Never mind, found a way to do it in parallel to that other PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Fixes for quality problems that affect the customer experience Feature:Alerting/RulesManagement Issues related to the Rules Management UX Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) v8.4.0
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

4 participants