Skip to content

[UI/UX:Submission] Fix scroll lock#12629

Merged
williamjallen merged 5 commits into
Submitty:mainfrom
GarvitKhandelwal31:scrolling-disabled
Mar 28, 2026
Merged

[UI/UX:Submission] Fix scroll lock#12629
williamjallen merged 5 commits into
Submitty:mainfrom
GarvitKhandelwal31:scrolling-disabled

Conversation

@GarvitKhandelwal31

Copy link
Copy Markdown
Contributor

Why is this Change Important & Necessary?

Closes #12628.

Uploading a new profile photo on My Profile could leave page scrolling disabled until a full reload. This is a UI regression that impacts usability and can make the page feel stuck after a successful upload.

What is the New Behavior?

After submitting the profile photo form (both success and error paths), the modal closes through the shared popup close handler so scroll state is correctly restored. The page remains scrollable immediately, without requiring a refresh.

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

  1. Start Submitty in Vagrant and log in.
  2. Navigate to My Profile.
  3. Confirm the page is scrollable (if content exceeds viewport).
  4. Click Upload profile photo.
  5. Test error path:
    • Click Submit without selecting a file.
    • Confirm error message appears.
    • Confirm page scrolling is still enabled.
Screen.Recording.2026-03-23.104155.mp4
  1. Test success path:
    • Reopen Upload profile photo.
    • Select a valid image and click Submit.
    • Confirm success message appears.
    • Confirm page scrolling is still enabled (no reload needed).
Screen.Recording.2026-03-23.104456.mp4

Automated Testing & Documentation

  • Added Cypress regression assertions in the profile photo upload test to verify body does not retain the no-scroll class after submit (error and success scenarios).
  • No submitty.org documentation update is required for this bugfix.

Other information

  • Breaking change: No.
  • Migrations required: No.
  • Security concerns: None identified.
  • Sysadmin action required: No.

@codecov

codecov Bot commented Mar 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 21.65%. Comparing base (3efe6e6) to head (5b60ffa).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##               main   #12629   +/-   ##
=========================================
  Coverage     21.65%   21.65%           
  Complexity     9650     9650           
=========================================
  Files           268      268           
  Lines         36231    36231           
  Branches        487      487           
=========================================
  Hits           7846     7846           
  Misses        27902    27902           
  Partials        483      483           
Flag Coverage Δ
autograder 21.32% <ø> (ø)
js 2.04% <ø> (ø)
migrator 100.00% <ø> (ø)
php 20.67% <ø> (ø)
python_submitty_utils 80.08% <ø> (ø)
submitty_daemon_jobs 91.13% <ø> (ø)

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.

@JManion32

Copy link
Copy Markdown
Contributor

@GarvitKhandelwal31 Please address failing CI

@GarvitKhandelwal31

Copy link
Copy Markdown
Contributor Author

@JManion32 Done. I even verified the JS lint errors locally, they are passing now.

@dagemcn dagemcn assigned dagemcn and unassigned dagemcn Mar 24, 2026

@Rkoester47 Rkoester47 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I tested the changes made on this branch and they do seem to have effectively resolved the issue. On main, attempting to upload a profile picture will hide the scrollbar regardless of if it fails or succeeds. On this branch, uploading does not affect the scroll bar at all either way. Good work solving this issue.

@github-project-automation github-project-automation Bot moved this from Seeking Reviewer to Awaiting Maintainer Review in Submitty Development Mar 24, 2026
@QuackHonk QuackHonk self-assigned this Mar 24, 2026
@QuackHonk
QuackHonk self-requested a review March 24, 2026 19:20

@QuackHonk QuackHonk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good! Fixes the bug without creating new ones.

@Farhanxikram Farhanxikram left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Functionality review:
everything looks good to me, didn't see any new bugs and this fixed the bug addressed in the issue :)

@github-project-automation github-project-automation Bot moved this from In Review to Awaiting Maintainer Review in Submitty Development Mar 27, 2026
@williamjallen
williamjallen merged commit e2fa03f into Submitty:main Mar 28, 2026
48 of 49 checks passed
@github-project-automation github-project-automation Bot moved this from Awaiting Maintainer Review to Done in Submitty Development Mar 28, 2026
GarvitKhandelwal31 added a commit to GarvitKhandelwal31/Submitty that referenced this pull request Mar 29, 2026
### Why is this Change Important & Necessary?
Closes Submitty#12628.

Uploading a new profile photo on My Profile could leave page scrolling
disabled until a full reload. This is a UI regression that impacts
usability and can make the page feel stuck after a successful upload.

### What is the New Behavior?
After submitting the profile photo form (both success and error paths),
the modal closes through the shared popup close handler so scroll state
is correctly restored. The page remains scrollable immediately, without
requiring a refresh.

### What steps should a reviewer take to reproduce or test the bug or
new feature?
1. Start Submitty in Vagrant and log in.
2. Navigate to My Profile.
3. Confirm the page is scrollable (if content exceeds viewport).
4. Click Upload profile photo.
5. Test error path:
   - Click Submit without selecting a file.
   - Confirm error message appears.
   - Confirm page scrolling is still enabled.
   


https://github.com/user-attachments/assets/b716d45f-603d-46a6-bac6-a5222c2ef3a9


6. Test success path:
   - Reopen Upload profile photo.
   - Select a valid image and click Submit.
   - Confirm success message appears.
   - Confirm page scrolling is still enabled (no reload needed).
   

https://github.com/user-attachments/assets/10964e9b-53a2-4137-a765-add1a6527027


### Automated Testing & Documentation
- Added Cypress regression assertions in the profile photo upload test
to verify body does not retain the no-scroll class after submit (error
and success scenarios).
- No submitty.org documentation update is required for this bugfix.

### Other information
- Breaking change: No.
- Migrations required: No.
- Security concerns: None identified.
- Sysadmin action required: No.
GarvitKhandelwal31 added a commit to GarvitKhandelwal31/Submitty that referenced this pull request Apr 14, 2026
### Why is this Change Important & Necessary?
Closes Submitty#12628.

Uploading a new profile photo on My Profile could leave page scrolling
disabled until a full reload. This is a UI regression that impacts
usability and can make the page feel stuck after a successful upload.

### What is the New Behavior?
After submitting the profile photo form (both success and error paths),
the modal closes through the shared popup close handler so scroll state
is correctly restored. The page remains scrollable immediately, without
requiring a refresh.

### What steps should a reviewer take to reproduce or test the bug or
new feature?
1. Start Submitty in Vagrant and log in.
2. Navigate to My Profile.
3. Confirm the page is scrollable (if content exceeds viewport).
4. Click Upload profile photo.
5. Test error path:
   - Click Submit without selecting a file.
   - Confirm error message appears.
   - Confirm page scrolling is still enabled.
   


https://github.com/user-attachments/assets/b716d45f-603d-46a6-bac6-a5222c2ef3a9


6. Test success path:
   - Reopen Upload profile photo.
   - Select a valid image and click Submit.
   - Confirm success message appears.
   - Confirm page scrolling is still enabled (no reload needed).
   

https://github.com/user-attachments/assets/10964e9b-53a2-4137-a765-add1a6527027


### Automated Testing & Documentation
- Added Cypress regression assertions in the profile photo upload test
to verify body does not retain the no-scroll class after submit (error
and success scenarios).
- No submitty.org documentation update is required for this bugfix.

### Other information
- Breaking change: No.
- Migrations required: No.
- Security concerns: None identified.
- Sysadmin action required: No.
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.

Scrolling Disabled After Uploading Profile Picture

7 participants