Skip to content

[Feature:Notifications] Improve Panel Interactivity#12012

Merged
bmcutler merged 24 commits intomainfrom
improve-noti-ui
Oct 6, 2025
Merged

[Feature:Notifications] Improve Panel Interactivity#12012
bmcutler merged 24 commits intomainfrom
improve-noti-ui

Conversation

@JManion32
Copy link
Contributor

@JManion32 JManion32 commented Aug 16, 2025

This PR is branched from #12007, which refactored the structure of the notification containers to support multiple anchor elements (e.g., one for linking to the notification and another for marking it as read). This structural change was necessary to enable the functionality implemented here.

Why is this Change Important & Necessary?

The notifications panel lacked clear visual hierarchy and interactivity, making the UI feel flat and less intuitive.

What is the New Behavior?

  • Clicking on the course name in a notification now navigates to that course's notifications page.

  • A star icon now appears next to gradeable notifications. I also added this icon on the course notifications page:

image I plan to convert this page to use the same Vue component as the home page in a future PR.
  • A team icon now appears next to any team actions notifications.

UI improvements:

  • Container is still clickable, but other elements within the container (course name and mark seen) will take precedence.
  • Hovering over course name now applies an underline effect.
  • Notification content font-weight has been increased to 600 for improved emphasis and readability.

This change is inspired by GMail's inbox, where the entire container is clickable, along with separate items within it being clickable:
image

Before

image

After

image

Full View (Unread Only)

image

Full View (Unread Only, Dark Mode)

all_notifications_unread_dark_mode

What steps should a reviewer take to reproduce or test the bug or new feature?

  • Verify UI looks good on different screen sizes and browsers.
  • Verify functionality of notification container, course name, and mark as seen icon.

Other information

This is not a breaking change.

Index no longer needed (for now) since we are not doing the mark all as seen option. I commented out mark all as seen but did not delete so that it is easy to bring back in the future if necessary. Made the notifications array reactive so we can apply updates to its seen/unseen status without having to reload the page.
Will break into a separate PR
Bug where if 2 threads in different courses had the same ID, only the first one would be visually marked as seen.
@codecov
Copy link

codecov bot commented Aug 16, 2025

Codecov Report

❌ Patch coverage is 0% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 21.68%. Comparing base (c821d7d) to head (99fd3fe).
⚠️ Report is 15 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##               main   #12012      +/-   ##
============================================
- Coverage     21.69%   21.68%   -0.01%     
- Complexity     9588     9591       +3     
============================================
  Files           268      268              
  Lines         36605    36618      +13     
  Branches        475      475              
============================================
  Hits           7940     7940              
- Misses        28194    28207      +13     
  Partials        471      471              
Flag Coverage Δ
autograder 21.39% <ø> (ø)
js 2.07% <ø> (ø)
migrator 100.00% <ø> (ø)
php 20.69% <0.00%> (-0.01%) ⬇️
python_submitty_utils 80.08% <ø> (ø)
submitty_daemon_jobs 90.72% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

While the 2 pages are not the same design yet, this should be consistent across both.
@github-actions github-actions bot added the Abandoned PR - Needs New Owner No activity on PR for more than 2 weeks -- seeking new owner to complete label Aug 31, 2025
@JManion32 JManion32 removed the Abandoned PR - Needs New Owner No activity on PR for more than 2 weeks -- seeking new owner to complete label Sep 15, 2025
1. Made the entire container clickable again
2. Added a tooltip for the course button
3. Changed the mark seen anchor to a button
Removed commented out code and switch case
To reflect the changes made in #12012
Copy link
Contributor

@Rkoester47 Rkoester47 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested this new UI improvement on Firefox, Edge and Chrome in both light and dark modes. I was able to successfully get the hover functionality for both the course name, as well as the mark as seen icon. In both light and dark mode, these would underline/ highlight as intended. Clicking on the course name, which was underlined when hovered, did bring me to the course page.

However, in the PR if I understand correctly you describe that there should be an underline effect when hovering on the content itself. I was not able to get an underline on the content of the notification itself, in any browser or theme.

Hovering over the icon on the left did give a description ("gradeable"), but it would not become highlighted like the mark as seen icon, nor does the actual description of the content get underlined. If underlining the body text or this left icon is the intention of the changes, there may be an issue.

Otherwise, I think this is a strong change so far and I think linking directly to the course when selecting the course name is a smart feature. The new bolder font for the notification is attention grabbing, as a notification should probably be.

@JManion32
Copy link
Contributor Author

I tested this new UI improvement on Firefox, Edge and Chrome in both light and dark modes. I was able to successfully get the hover functionality for both the course name, as well as the mark as seen icon. In both light and dark mode, these would underline/ highlight as intended. Clicking on the course name, which was underlined when hovered, did bring me to the course page.

However, in the PR if I understand correctly you describe that there should be an underline effect when hovering on the content itself. I was not able to get an underline on the content of the notification itself, in any browser or theme.

Hovering over the icon on the left did give a description ("gradeable"), but it would not become highlighted like the mark as seen icon, nor does the actual description of the content get underlined. If underlining the body text or this left icon is the intention of the changes, there may be an issue.

Otherwise, I think this is a strong change so far and I think linking directly to the course when selecting the course name is a smart feature. The new bolder font for the notification is attention grabbing, as a notification should probably be.

Thanks for the review! I went back on my original design choices and decided to make the entire container clickable again. Unfortunately, I forgot to update that part of the PR description. It is now up to date if you want to give it a second look.

Copy link
Contributor

@Rkoester47 Rkoester47 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay that makes sense! I checked again with your updated PR in mind, and everything mentioned works as described. This change looks to be in good order, and makes sense as an improvement to the notifications on the home page. The list is more eye-catching, and the individual notifications contain more functionality with the course name link on each.

@github-project-automation github-project-automation bot moved this from Seeking Reviewer to Awaiting Maintainer Review in Submitty Development Sep 19, 2025
Indentation
@bmcutler bmcutler merged commit cebd603 into main Oct 6, 2025
21 of 25 checks passed
@bmcutler bmcutler deleted the improve-noti-ui branch October 6, 2025 02:50
@github-project-automation github-project-automation bot moved this from Awaiting Maintainer Review to Done in Submitty Development Oct 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants