typedb / typedb-studio

TypeDB Studio (IDE)
https://typedb.com
Mozilla Public License 2.0
194 stars 43 forks source link

Add a notification panel for errors/warnings/infos #744

Open james-whiteside opened 1 year ago

james-whiteside commented 1 year ago

Problem to Solve

Errors, warnings, and infos currently accumulate on the right side of the UI unless explicitly closed. This clogs up the UI, and can be confusing when successive queries trigger different errors.

Proposed Solution

Add a notification panel for these items. When notifications appear, they appear as popups as in the current implementation. If the user runs a query with notifications open, those existing notifications are minimised to the panel where they can be read and deleted later on. Other events that trigger a notification (e.g. session being closed on server) also minimises currently open notifications, so that at any time the only notifications shown as popups are from the most recent event, and no popups are shown if the most recent event triggered no notifications. Within the panel, notifications are divided by triggering event and timestamped.

mackler commented 9 months ago

I'll throw in my two cents of support for solving this problem. And while I know that priority is a relative measure, from my position of being new to TypeDB this is a serious impairment to usability that arises very early in the TypeDB experience when newbie confusion is greatest. The studio is the GUI interface and is certainly used by many if not most new users, so as bad or minor as the problem may be, it's certainly widespread across many users.

Regarding the Proposed Solution above, I'm still learning enough to form a qualified opinion, but I am comfortable commenting on the problem in a way that may help identify solutions. The problem is simple: trying to display two things in the same place on my screen at the same time. One thing must be obstructed. If the new notification panel moves one of those two things to another part of the screen so there's no overlap then that might be the way to go. If I have any more useful ideas about the solution later I'll update here.

Some other (maybe underdeveloped) comments that come to mind:

I mention these items just to ask whether part of the solution might simply be to reduce the need for so many notifications by conveying some of the information another way.