spyder-ide / ux-improvements

Discussion about UX improvements for Spyder 5 and beyond
4 stars 2 forks source link

Add Notification Center to avoid the pop up dialogs. #8

Open juanis2112 opened 4 years ago

juanis2112 commented 4 years ago

We want to add a Notification Center to show all the warnings or notifications and avoiding pop up dialogs that may result disturbing for users. For this, we need also a bell to display it and "toaster menu" that shows notifications the first time. @isabela-pf can you help us think a bit more about the design about this Notification Center?

isabela-pf commented 4 years ago

This is definitely a work in progress, so I don’t have a whole notification center thought out or mocked up yet. At the moment, I have ideas for toast notifications and potential toolbar reorganization that might help provide a place for a notification center. I’m going to post this across a few comments so that it is easier to navigate when I am talking about each aspect.

One of the biggest things I’m looking for is better understanding of what notifications are needed and how they are currently existing in Spyder. This will help me make smarter choices and be able to map out user flows or needs for more specific interactions.

In meeting with some of the Spyder team, some notifications might include

I’d love to hear what other notifications or use cases people might have in mind.

isabela-pf commented 4 years ago

Right now, I’m experimenting with toast colors to fit in with the default dark mode. I’ve provided options in the same colors as my work with tooltips in #2 and am open to opinions on what color is best suited.

These should be used to support short messages (1–3 lines of text) and a button to dismiss the toast, bring up the notification center with that notifications selected, or initiate some kind of action if relevant. I haven’t fully worked out what buttons make sense because I want a better idea of what kind of notifications might be common in order to make a smarter choice. Toast 2 Line 1 Button

Toast 3 Line 2 Button

EX Light

EX Dark

EX Blue

Some other notes about toast notifications:

isabela-pf commented 4 years ago

Because notifications can be related to all levels/all panes of Spyder, it would make sense to put a notification center like this in the highest level toolbar. Since there is already limited room there, I looked closer what is in that toolbar and found that it looks like a mix of things relating to the editor pane and things that relate to Spyder overall or across multiple panes.

I think it would make more sense to treat the editor pane like all the other panes and give it it’s own toolbar while keeping the top toolbar for non-pane-specific interactions. Just in terms of organization, the split would look kind of like this:

Reorganized Toolbar

If that’s not feasible, we’ll probably need to decrease icon size in that top toolbar to fit another icon or come up with another solution.

isabela-pf commented 4 years ago

I’ve been thinking about what kind of content fits for this type of notification system to make sure that I have a better grasp of potential use cases and can make sure this system has everything it needs to function. Here’s what I’ve thought might be typical toast notifications so far:

In summary, toasts should have non-urgent content with choices that do not require immediate input. They also should not replace all dialogs.

It’d be helpful to get if there’s any other types of content that should be a toast or any problems with these current ideas.

bcolsen commented 4 years ago

Notification that something that was running is done

I like this. It would be great to include console name and whether the processes ended in an error or normally in this message

isabela-pf commented 4 years ago

I’ve mocked up some toast notifications with example content based on the last comments. There’s a few things that would be useful to review here.

Two toast notifications with the content 
"Welcome to Spyder! Explore our guided resources or get started on your own" and "A new version of Spyder is available! Update to v5.0.0 now for the latest features" Two toast notifications with the content "Kite is a third party integration that improves Spyder’s autocompletion. Allow Kite?" and "A cell has been running for more than 10 minutes. Spyder may run slower as a result" Two toast notifications with the content "Is Spyder not behaving as expected? Review our resources to find the problem" and "Cell 22–35 has finished running successfully. Check Console 1/A for more details"

Here’s some concerns about button options I have:

isabela-pf commented 4 years ago

There are a lot of questions to consider to start reviewing the notification center itself, so I’m going to be posting them across few comments to hopefully make it more manageable to read and reply.

First, here are options for how the notification center itself will look. Choices being made here are about how notifications appear (listed, still looking like toast notifications), how read/unread is indicated (dots, corners, contrast, etc.), how a notification is selected (checkbox, whole area), and where the button prompts originally seen in the toast notifications appear.

The first three options experiment mainly with ways to indicate read/unread status for notifications. They also have buttons hidden until a notification is expanded.

28 29 30

The below option has the same button styling as the last three, but they are shown at all times instead of on expanded notifications only.

31

This final option preserves the look of toast notifications, just groups them together in this interface. I haven't worked an expanded/more info form in this option yet, but if there is interest in exploring this direction more I am happy to. Depending on notifications, this might not be needed on any of the options.

32
isabela-pf commented 4 years ago

There are two places I think the notification center could reasonably appear: as an overlay from the main toolbar (like the quick switch between files) or as another pane in the upper right region. I prefer not to make another pane—especially since notifications can relate to any pane or even be for the application overall—but wanted to provide another option in case there was a reason that overlay treatment is not feasible.

As a main toolbar linked overlay:

overlay

I find it hard to see in this mockup even though it is designed closely to the existing quick switch between file interface. I would definitely want to work out ways to help it stand out more if people like the concept of this direction.

As a pane in the upper right:

pane
isabela-pf commented 4 years ago

I wanted to note a few other options to consider. The actions I think are absolutely necessary in the toolbar are mark as read, mark as unread, delete/clear, and select all. Here, I mocked up an option below that includes a sort by recent (default) or sort by unread first because I could imagine that as a useful feature that might not take too much work to implement.

27

I have not worked out where the notifications icon button should go in the main toolbar since I have not played more with breaking up the large number of buttons currently there. I am planning to use the Material icon “notifications.”

juanis2112 commented 3 years ago

We like option #4. Some general comments from our meeting:

juanis2112 commented 3 years ago

For the toast notifications, we like

For the Notification Center

juanis2112 commented 3 years ago

Take into account notification preferences in the Preferences dialog Some ideas: