OctoPrint / OctoPrint

OctoPrint is the snappy web interface for your 3D printer!
https://octoprint.org
GNU Affero General Public License v3.0
8.32k stars 1.67k forks source link

[brainstorming] Preventing popup spam #2260

Open ntoff opened 6 years ago

ntoff commented 6 years ago

When disabling plugins, or re-enabling them after testing or installing multiple plugins (or uninstalling them), you can end up with an entire screen full of popups telling you to restart. This is somewhat annoying when you have to disable all your installed plugins in order to test something, but you still need 3rd party plugins to work (so safemode is out).

It'd be nice to assign popups a tag, and if one tag is already active, no more popups of that nature will be allowed.

The idea comes from here: https://github.com/sciactive/pnotify/issues/228#issuecomment-217470039 and is something I put into my fan speed slider plugin, if you set a speed outside the range, you'll get a popup telling you "hey, I've adjusted the speed", but it then checks for that popup if you set another speed outside of the allowed range, so you'll only ever see one popup per speed type (above threshold and below are two separate events).

It'd be great if OctoPrint would go "oh look, the user already has one plugin restart popup, I won't put any more on the screen".

Or maybe have a dedicated notifications section for the "boring" stuff, something like windows 10's sidebar thing where you see app notifications, a sidebar popup in octoprint where all the boring popups go and you're able to just mass dismiss all of them. Meanwhile all the important ones like bugfixes, new versions, etc all get popped up in the current fashion (given they aren't nearly as frequent and are important).

malnvenshorn commented 6 years ago

Or maybe have a dedicated notifications section

I think that would be a great solution. Something like here on github with the bell on the top right, just with a dropdown to see all notifications and the possibility to discard them all with a single click.

This is how it looks like on the web frontend of my nas:

riayhwdl

foosel commented 6 years ago

I'd rather not hide notifications in general behind a notification area (and the navbar is somewhat full anyhow). From my experience it's tricky enough to get people to read important messages when they pop up right into their faces, it becomes downright impossible when you need them to go look for them first, even if that involves blinking red icons.

So instead of hiding stuff, maybe reducing the amount of less important notifications should be the goal here. Some more intelligent grouping might indeed make sense.

I understand the "plugin was installed/reinstalled/uninstalled, please reload/restart" messages from the Plugin Manager are a pain point here. Anything else that jumps to mind?

ntoff commented 6 years ago

I wasn't suggesting hiding the notification area, but rather making a sort of modal popup where notifications go, rather than having them clutter the entire screen. So when a message pops up, it makes a little drawer slide out from the side (or top, but side seems best) and all notices are constrained within that modal (but it is still automatically visible). Like the notification system windows 10 has. Then there could be a button atop said modal with "close all", so if a user is just removing a thousand plugins (or installing them), they can quickly dismiss all the notifications and the modal would then vanish.

Anything else that jumps to mind?

Lots, but they're their own separate issue (not really notification spam, but still related to notifications, sort of, but not).

edit: I don't think a modal popup is what I thought it was. I meant a side drawer like a div or an iframe where the popups could live and not escape out into the main screen space where they currently are able to cover the entire screen.

token47 commented 6 years ago

Maybe the popup could show a counter of messages to read and some other compact info. When new notifications arrive, it will only increase the counter. To read them, hover the mouse and a bigger window opens with the list in order. This will limit the pop ups to max 1 bubble, but still be there, and still has to be dealt with.

cmock commented 6 years ago

One more data point: I'm currently setting up a new Raspberry with octoprint, so there's no printer connected. That led to "communication error" notifications being created about as fast as I could close them, preventing me from accessing the login dialog, thereby preventing me to get to the settings and fixing the problem...

(the issue seems to be caused by Octoprint-TFT trying to connect to the non-existing printer over and over via the API, but I think it's a UI problem nonetheless)

wtf

foosel commented 6 years ago

Why do you get communication errors if no printer is connected? There is nothing to communicate with that could error out here.

cmock commented 6 years ago

Seems to be octoprint-tft which tries to get octoprint to connect over and over.

But the point I was trying to make is that this shows how the window can get so filled with notifications that one doesn't get to important UI elements, such as the login dialog.

ntoff commented 6 years ago

That's up to the plugin dev to handle though, I took care of that in my fan speed plugin by assigning a value to each popup so you'll only ever see one popup message of each kind no matter how many times you spam that speed button with an over limit value. I'd bring that up with the TFT plugin developer and ask them to do something about it.

cmock commented 6 years ago

It's not a plugin, it is a standalone application that uses the API. The notifications are generated by octoprint.

foosel commented 6 years ago

Then that standalone application shouldn't be spamming the "connect" API just because there's currently no printer connection. That is either a bug or bad design in that app. Not only because of that situation (which btw should not even trigger a notification anymore on current versions, but I'll have to check this and verify that it actually works as intended), but also because a printer busy printing something from SD combined with this behaviour is bad news for the successful completion of the SD print.

foosel commented 6 years ago

FWIW, the plugin manager in particular will produce way less notification spam starting with 1.3.7:

image

LazeMSS commented 3 years ago

I think this is handle by the new "listing" way of notifications and could be closed - @foosel ?