-
-
Notifications
You must be signed in to change notification settings - Fork 42
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
[feature] Add a dedicated view for managing notification preferences #110
Comments
I think the expected outcome here must be stated more explicitly.
The UI must make this process easy to manage, hiding the complexity of the different settings and showing more details only when needed (eg: show widgets that allow enabling/disabling all web and email notifications for an org, but allow expanding the details to be able to select which particular notifications to enable/disable). |
Another important point:
|
Summary of Notification Preferences Page UI/UXThe Notification Preferences UI allows users to manage their notification settings for different organizations. Here is how the UI works Current UI Functionality
UI Wireframes [Figma Design]: This link directs you to our main Figma design file. It contains all the visual elements and layout. [Prototype]: This link takes you to the interactive prototype of our application. The prototype simulates the user experience by linking various screens and demonstrating the flow of the page. Note that only the global email notification check and first notification email settings are interactive. |
@uradotdesign @avocadodavinci looking forward to your feedback on this task we've been working on. |
@nemesifier Here is some feedback on the proposed solution, along with a proposal of our own that builds on what you've shared Notification Management in OpenWispThe ProblemUsers of OpenWISP are overwhelmed by an overabundance of notifications. To disable these, they currently need to navigate to each device's overview page and disable notifications individually from there. This process is time-consuming and inefficient, especially as the number of devices and organizations grows. The Proposed Solution from OpenWISPOpen WISP's proposed solution involves creating a new page dedicated to notifications. On this page, users have two main options for managing their notifications: 1. Globally Disable Notifications
2. Customize Notification Preferences for Each Organization
Potential Issues with this Proposed SolutionWhile setting notifications globally is a good idea, there are several potential issues with this proposed solution:
Suggested Improvements from UraTo address the problem and improve the user experience, we propose the following enhancements:
Solution in deatilBelow is a representation in markdown of how the page will look Global SettingsWeb Notifications
Email Notifications
OrganizationsOrganization 1
Global SettingsThe first section will be labeled "Global Settings." Within this section, there are two dropdowns: one for "Web" and another for "Email," each accompanied by a switch that users can toggle on or off. Activating these switches will globally enable or disable notifications across all organizations. Here's a representation of how it might look: Note: The image is sourced from Mobbin and are from the app Frame available at https://www.frame.so/. Dropdown Settings: Specific NotificationsWhen the user opens the dropdown, there will be a list of specific notifications that they can turn on or off using checkboxes. These changes will be applied globally. See the image below for a high fidelity visual of this Note: The images are sourced from Mobbin and are from the app Frame available at https://www.frame.so/. Organizational SettingsDirectly below the "Global Settings," there will be a dedicated section for "Organizations." Within this section, users will find a list of all organizations within the network. Each organization will have individual settings for Web and Email notifications. In contrast to the proposal from OpenWISP, this solution allows users to toggle switches back on even when global settings are applied. For instance, if a user has turned off email notifications in the global settings, they can still visit an organization's settings and toggle email notifications back on. This action overrides the global settings by flipping that switch to 'on' for the specific organization. Importantly, this adjustment does not restore notifications for all other organizations; it only affects the organization that was toggled back on. Saving PreferencesTo save their preferences, users will find a convenient "Save Preferences" button positioned both at the bottom and the top of the page similar to 'Save changes' button in the example below Note: The images are sourced from Mobbin and are from the app Qatalog available at https://qatalog.com/ After saving changes, users will receive a toast popup confirming that their preferences have been successfully updated. Note: The images are sourced from Mobbin and are from the app Qatalog available at https://qatalog.com/ Note: If a user navigates away from the preferences page without saving their changes, they will be prompted to either save their preferences or proceed without saving. This serves as an extra layer of security to make sure the user saves their preferences. Further ConsiderationsTo further refine the proposed solution, we should consider the following questions and suggestions: When will users first define their notification preferences?
Defining Types of Notifications:
Navigation to the Notifications Page:
|
I took the following notes from our discussion on July 23, 2024 weekly meeting: Action: User disables the global notification
Action: User overrides global settings in the specific org settings:
Action: Creating new notification settings
Cases where new new notification settings are created:
Note: Create a data migration for creating global notification settings for the existing users. |
Details on the current implementation of the notification settings: The notification type defines the default value for enabling/disabling web or email notifications. openwisp-notifications/openwisp_notifications/types.py Lines 6 to 33 in 3b0fc9d
If the user's notification setting for web and email field are same as what is defined in the notification type, then openwisp-notifications/openwisp_notifications/base/models.py Lines 290 to 295 in 3b0fc9d
Thus, the openwisp-notifications/openwisp_notifications/handlers.py Lines 85 to 87 in 3b0fc9d
And for the same reason, the new notification settings are created with email and web field set to None. |
@avocadodavinci: due to technical, time and budget constraints we cannot implement the full solution proposed by URA right now. Therefore we are focusing our effort on integrating the piece of feedback which is most compatible with our current timeline and resources. We are confident that this iteration will make the life easier for users compared to the current situation.
Notifications are enabled by default and users opt-out.
I created a new issue for this: #293
I think this is a good idea and we could address it in future iterations.
We intend to replace the "show unead only" button here: An alternative or additional option (we could do both to increase discoverability) is to add another link here, just before the "log out" link: @avocadodavinci do you think doing both is acceptable? Administrators will also be able to edit the notification preferences of other users. This last option will be reserved to superusers or organization administrators. |
@nemesifier I figured there might be some technical constraints at this time, let me know when you’ve implemented the short term improvements and I can take another look. As to your question about navigating to the notifications page, adding it to multiple locations can increase cognitive load and clutter, potentially confusing users. I would opt to Have it appear only in the notification drop-down, this is the most intuitive option and it aligns with the user’s expectations. |
Ok, thanks 👍 |
From #69 (comment)
Depends on #255.
This new page must not be an admin page, also non staff users must be able to access it.
This page shall use the REST API to fetch and modify notification settings.
Modification of settings must be done only when actual changes are done, so when saving, the code must be smart enough to understand what HTTP requests it must make to change the settings (avoid generating a ton of useless HTTP requests).
We need to implement a solution that enables users to easily manage their notification preferences.
The shortcoming of the current solution
NotificationSettings
are shown as an inline to theUserAdmin
page. When a user is an admin for multiple organizations, or a superuser, the number of notification settings becomes tremendous, thus hurting the performance and usability of theUserAdmin
view.Proposed Solution
UserAdmin
change page. Clicking on this link should open the notification preferences of the selected user.Open for Discussion
UI:
E.g.:
Implementation details:
The text was updated successfully, but these errors were encountered: