Skip to content

Add a feature to configure DND mode #561

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

Open
akashnimare opened this issue Sep 15, 2018 · 15 comments · May be fixed by #896
Open

Add a feature to configure DND mode #561

akashnimare opened this issue Sep 15, 2018 · 15 comments · May be fixed by #896

Comments

@akashnimare
Copy link
Member

We have a basic DND feature in the left sidebar which activates the DND mode and to deactivate user need to update it manually. It would be great to have something like -

  • Enable DND mode for X minutes/hrs/day

and then automatically handles the notification setting after the DND time gets over.

Two things we need to do here -
a) UI/UX - I think we can show the time within the tooltip itself
b) How to calculate the DND time since there could be multiple cases like the laptop is switched off/sleep etc.

image

@priyank-p
Copy link
Member

To implement this I have/had a rough plan in mind:

  • First we should create the UX/UI in a new branch or that only shows up in development mode.

  • Then, once we have the UI, we can set up the turn on/off thing per input provided by the user.

  • Lastly, we should save in JsonDB the end-time of DND time, so it just a one if statement on the start of the app to turn it off or schedule a timer if it not done yet.

For step two, we can use something like node-schedule to do turn off the DND button after the specified time, in which case if the app is closed or device shut-down it will not work. Which we will need to cover in step three.

@lukasIO
Copy link

lukasIO commented Sep 15, 2018

I know this is the repository for the electron app, but can you clarify why you see DND as an app setting rather than a profile-setting?
Imho it leads to confusion and unwanted behaviour if there is a DND layer above a profile setting.
If I don't want to be disturbed, then I do so in my online status which should then reflect across all apps.

similarly if i want to receive notifications again, I should be able to do so on mobile and the changes should reflect on desktop.
that's why I think this should be followed further (only) as a profile setting and not as an app setting.

@akashnimare
Copy link
Member Author

akashnimare commented Sep 17, 2018

@lukasIO please see the relevant conversations here - https://chat.zulip.org/#narrow/stream/16-desktop/topic/DND.20button

@lukasIO
Copy link

lukasIO commented Sep 17, 2018

Thanks for the link. As it seems the main reasonis this statement by @timabbott

I think it's actually probably useful to have a desktop app feature for this, because if you're in multiple organizations, you kida want to be able to turn it off for all of them at once.

I agree that this is a very good point, which i didn't consider before.
I would still prefer if this kind of status-change would reflect consistently over web, desktop and mobile.
How to communicate over multiple organizations a common state - I have no idea.
An approach to change an additonal notification-status in each logged in organization would be an option, maybe.

@akashnimare
Copy link
Member Author

For the webapp - zulip/zulip#295

@akashnimare
Copy link
Member Author

For the UI thing, we could show something like this in the tooltip -

image

@manavmehta
Copy link
Collaborator

@zulipbot claim

@zulipbot
Copy link
Member

zulipbot commented Mar 3, 2020

Welcome to Zulip, @manavmehta! We just sent you an invite to collaborate on this repository at https://github.com/zulip/zulip-desktop/invitations. Please accept this invite in order to claim this issue and begin a fun, rewarding experience contributing to Zulip!

Here's some tips to get you off to a good start:

As you work on this issue, you'll also want to refer to the Zulip code contribution guide, as well as the rest of the developer documentation on that site.

See you on the other side (that is, the pull request side)!

manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Mar 8, 2020
Fixes: zulip#561
User can select time for which they want to enable DND Mode
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Mar 8, 2020
Fixes: zulip#561
User can now select time for which they want to enable DND Mode
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Mar 10, 2020
Fixes: zulip#561
User can now select time for which DND will be enabled.
"Until I resume" option is time independent, trivially.Add feature to enable Time based DND Mode
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Mar 10, 2020
Fixes: zulip#561
User can now select time for which DND will be enabled. "Until I resume" option is time independent, trivially.Add feature to enable Time based DND Mode
@manavmehta manavmehta linked a pull request Mar 10, 2020 that will close this issue
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Mar 12, 2020
Fixes: zulip#561
User can now select time for which DND will be enabled. "Until I resume" option is time independent, trivially.

Adds toast notifications for dnd time left and dnd over
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Mar 19, 2020
Fixes: zulip#561
User can now select time for which DND will be enabled. "Until I resume" option is time independent, trivially.

Adds toast notifications for dnd time left and dnd over
@zulipbot
Copy link
Member

zulipbot commented Apr 1, 2020

Hello @manavmehta, you have been unassigned from this issue because you have not updated this issue or any referenced pull requests for over 14 days.

You can reclaim this issue or claim any other issue by commenting @zulipbot claim on that issue.

Thanks for your contributions, and hope to see you again soon!

@manavmehta
Copy link
Collaborator

@zulipbot PR #896 has been made and is under review

manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Apr 27, 2020
Fixes: zulip#561
User can now select time for which DND will be enabled.
"Until I resume" option is time independent, trivially.
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Jun 2, 2020
Fixes: zulip#561
User can now select time for which DND will be enabled.
"Until I resume" option is time independent, trivially.
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Jun 7, 2020
Create a menu to allow selecting time for which DND will be enabled.
DND will go off at the scheduled time and a toast will be shown, both while setting the DND, thus conveying the DND Off time and again at the time when DND goes off.

'Until I resume' option is time independent, trivially.

Fixes zulip#561
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Jun 7, 2020
Create a menu to allow selecting time for which DND will be enabled.
DND will go off at the scheduled time and a toast will be shown, both while setting the DND, thus conveying the DND Off time and again at the time when DND goes off.

'Until I resume' option is time independent, trivially.

Fixes zulip#561
manavmehta added a commit to manavmehta/zulip-desktop that referenced this issue Jun 15, 2020
Create a menu to allow selecting time for which DND will be enabled.
DND will go off at the scheduled time and a toast will be shown, both while setting the DND, thus conveying the DND Off time and again at the time when DND goes off.

'Until I resume' option is time independent, trivially.

Fixes zulip#561
@varun-s22
Copy link
Collaborator

Is this still open? because on my machine i am unable to produce the time, as you have done in your PR(s) @akashnimare @manavmehta

@VANSH3104
Copy link
Collaborator

@zulipbot claim

@zulipbot
Copy link
Member

Welcome to Zulip, @VANSH3104! We just sent you an invite to collaborate on this repository at https://github.com/zulip/zulip-desktop/invitations. Please accept this invite in order to claim this issue and begin a fun, rewarding experience contributing to Zulip!

Here's some tips to get you off to a good start:

As you work on this issue, you'll also want to refer to the Zulip code contribution guide, as well as the rest of the developer documentation on that site.

See you on the other side (that is, the pull request side)!

@lolostheman
Copy link
Collaborator

@zulipbot claim

@zulipbot
Copy link
Member

zulipbot commented May 1, 2025

Welcome to Zulip, @lolostheman! We just sent you an invite to collaborate on this repository at https://github.com/zulip/zulip-desktop/invitations. Please accept this invite in order to claim this issue and begin a fun, rewarding experience contributing to Zulip!

Here's some tips to get you off to a good start:

As you work on this issue, you'll also want to refer to the Zulip code contribution guide, as well as the rest of the developer documentation on that site.

See you on the other side (that is, the pull request side)!

lolostheman added a commit to lolostheman/zulip-desktop that referenced this issue May 1, 2025
…dropdown styling.

Ensures that the DND tooltip remains usable after selecting a duration. Updated styles to better match Zulip's dark theme (rounded corners, shadows, etc.).

Fixes zulip#561.
lolostheman added a commit to lolostheman/zulip-desktop that referenced this issue May 8, 2025
When a duration is provided, sets a timer to automatically revert DND mode. Ensures only one timer is active at a time, and cleans up appropriately when DND is turned off early. We import dnd-util.js to handle the DNDUtil.toggle() in our timer logic.
Fixes zulip#561.
lolostheman added a commit to lolostheman/zulip-desktop that referenced this issue May 8, 2025
When a duration is provided, sets a timer to automatically revert DND mode. Ensures only one timer is active at a time, and cleans up appropriately when DND is turned off early. We import dnd-util.js to handle the DNDUtil.toggle() in our timer logic.
Fixes zulip#561.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants