Skip to content

Fix navigation warnings on autotest manager and starter file manager pages, closes 7641 - #7968

Merged
david-yz-liu merged 1 commit into
masterfrom
unsaved-changes-warning
Jun 2, 2026
Merged

david-yz-liu merged 1 commit into
masterfrom
unsaved-changes-warning

Conversation

@philipkukulak

@philipkukulak philipkukulak commented May 29, 2026

Copy link
Copy Markdown
Contributor

Proposed Changes

On the Settings > Automated Tests page, a warning should pop up if a user attempts to navigate away from the page after making changes and before saving them.

Currently, it appears even after the user has saved their changes. This happens because the Settings > Automated Tests page is rendered with react, which is rendered after the jquery click handler in _navigation_warning.js.erb is registered: submit_clicked can never be flipped to true because the submit button doesn't exist when that handler is registered.

Furthermore, the window.onbeforeunload handler as defined in the _navigation_warning.js.erb partial has no awareness of the Automated Tests page react structure. The page and the partial within it are tracking 'dirtiness' in separate state variables.

With help from claude, the cleanest fix is to override the window.onbeforeunload handler in autotest_manager.jsx and to gate the initialization of the page so that fetchData doesn't instantly 'dirty' the page when react fires onChange upon first receipt of existing form data.

The fix for the Settings -> Starter Files page is far simpler, since it is not rendered using react: we bind the handler to .on('click', ...) instead.

Screenshots of your changes (if applicable)
Screen.Recording.2026-05-29.at.10.56.39.AM.mov
Screen.Recording.2026-05-29.at.3.49.18.PM.mov
Associated documentation repository pull request (if applicable) n/a

Type of Change

(Write an X or a brief description next to the type or types that best describe your changes.)

Type Applies?
🚨 Breaking change (fix or feature that would cause existing functionality to change)
New feature (non-breaking change that adds functionality)
🐛 Bug fix (non-breaking change that fixes an issue) x
🎨 User interface change (change to user interface; provide screenshots)
♻️ Refactoring (internal change to codebase, without changing functionality)
🚦 Test update (change that only adds or modifies tests)
📦 Dependency update (change that updates a dependency)
🔧 Internal (change that only affects developers or continuous integration)

Checklist

(Complete each of the following items for your pull request. Indicate that you have completed an item by changing the [ ] into a [x] in the raw text, or by clicking on the checkbox in the rendered description on GitHub.)

Before opening your pull request:

  • I have performed a self-review of my changes.
    • Check that all changed files included in this pull request are intentional changes.
    • Check that all changes are relevant to the purpose of this pull request, as described above.
  • I have added tests for my changes, if applicable.
    • This is required for all bug fixes and new features.
  • I have updated the project documentation, if applicable.
    • This is required for new features.
  • If this is my first contribution, I have added myself to the list of contributors.

After opening your pull request:

  • I have updated the project Changelog (this is required for all changes).
  • I have verified that the pre-commit.ci checks have passed.
  • I have verified that the CI tests have passed.
  • I have reviewed the test coverage changes reported by Coveralls.
  • I have requested a review from a project maintainer.

Questions and Comments

I had the thought that we could also take this a step further and track changes to the page that are 'undone', e.g. checking a box and then unchecking it, and make sure the navigation warning doesn't pop up in that case. I came to the judgment that this would bloat the code more than we could justify an improvement so slight.

I also did not touch the Settings -> Starter Files page (on which this bug is also present) but if it is decided upon review that we'd like to bundle that fix into this PR, I would be happy to do so. Applied this fix to the Settings -> Starter Files page.

@philipkukulak
philipkukulak force-pushed the unsaved-changes-warning branch from d1b46c7 to cb56873 Compare May 29, 2026 16:21
@coveralls

coveralls commented May 29, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 26823406732

Warning

No base build found for commit 00ab1bb on master.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 90.193%

Details

  • Patch coverage: 11 of 11 lines across 2 files are fully covered (100%).

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 50084
Covered Lines: 46153
Line Coverage: 92.15%
Relevant Branches: 2226
Covered Branches: 1027
Branch Coverage: 46.14%
Branches in Coverage %: Yes
Coverage Strength: 123.25 hits per line

💛 - Coveralls

@philipkukulak
philipkukulak force-pushed the unsaved-changes-warning branch from cb56873 to 864b0a8 Compare May 29, 2026 16:49

@david-yz-liu david-yz-liu left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nice work, @philipkukulak. I left one inline comment, and also it seems like you should now be able to remove the loading of the _navigation_warning.js.erb partial from this page.

Please go ahead and also make the same change to the starter files page.

handleFormChange = data => {
this.setState({formData: data.formData}, () => this.toggleFormChanged(true));
this.setState({formData: data.formData});
if (!this._initializing) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Overall I don't think this _initializing attribute is necessary. You can check the current value of this.state.formData before doing any updates, treating Object.keys(this.state.formData).length === 0 as the "initializing" condition.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Wouldn't Object.keys(this.state.formData).length > 0 if any form data already exists, e.g. some tester is already configured? That would mark the page 'dirty' by default whenever there's persistent data. I'm thinking of 'initialization' as the initial fetch for page contents rather than the contents of the page itself.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'm also considering "initialization" as the initial fetch. The initial state of this component sets formData: {}. After the data is fetched this will change. (For a new assignment I suppose it's possible the fetched value may be {} as well, I'm not sure. If so, you can change the initial formData state to null instead to disambiguate it.)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ahhh okay I think I understand. I'll re-request review once I pushed these changes. Thanks David.

@philipkukulak
philipkukulak force-pushed the unsaved-changes-warning branch 2 times, most recently from c42f884 to 65c48bb Compare May 29, 2026 19:53
@philipkukulak philipkukulak changed the title Fix navigation warning on autotest manager page, closes 7641 Fix navigation warnings on autotest manager and starter file manager pages, closes 7641 May 29, 2026
@philipkukulak

philipkukulak commented May 29, 2026

Copy link
Copy Markdown
Contributor Author

Removed the _navigation_warning partial from Settings -> Automated Tests since everything is handled by a react component now. Applied the fix to the Settings -> Starter Files page (much easier to fix here since there is no react on that page.) Also changed the initialization gate on the Settings -> Automated Tests per David's recommendations. Tested it locally. It works! Pretty cool.

Note that overall test coverage has gone down because we've created a new test suite (autotest_manager.test.jsx) that only tests our bug fix.

<%= render partial: 'shared/navigation_warning',
formats: [:js],
handlers: [:erb] %>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Delete this blank line

domContentLoadedCB()
}
})();
$(document).on('click', 'input[type="submit"]', function () {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This change is quite different from the one for the autotest manager and not what I expected (this file is used by other views as well, so should not be changed).

The starter file page does use React, with the root component being StarterFileManager. Please make the same type of change you made for the AutotestManager in that component.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Sorry, I was unclear; the starter file page doesn't use rjsf to render form contents like the autotester settings page does, which is the library that fires an onChange event right out the gate when fetchData is called.

About to push a commit in which the change to the starter files page mirrors that in the autotester settings page.

@philipkukulak
philipkukulak force-pushed the unsaved-changes-warning branch 2 times, most recently from 4fba0df to 6fcf002 Compare June 1, 2026 14:41
@philipkukulak
philipkukulak force-pushed the unsaved-changes-warning branch 2 times, most recently from be09793 to 291b36c Compare June 1, 2026 14:52

@david-yz-liu david-yz-liu left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@philipkukulak okay looks good, but you should also now be able to remove the shared/navigation_warning include on the starter files page.

@philipkukulak
philipkukulak force-pushed the unsaved-changes-warning branch from 291b36c to d82ab7a Compare June 2, 2026 13:35
@david-yz-liu
david-yz-liu merged commit 2e868de into master Jun 2, 2026
11 checks passed
@david-yz-liu
david-yz-liu deleted the unsaved-changes-warning branch June 2, 2026 15:12
@david-yz-liu david-yz-liu modified the milestones: v2.10.3, v2.10.2 Aug 24, 2026
Naragod added a commit that referenced this pull request Sep 1, 2026
* Refactored Result#generate_print_pdf to use Dir.mktmpdir (#7964)

* Migrated asset pipeline from Sprockets to Propshaft (#7970)

* Fix navigation warning on autotest manager and starter files manager pages (#7968)

Closes #7641

* build(deps): bump js-routes from 2.3.6 to 2.3.7 (#7977)

Bumps [js-routes](https://github.com/railsware/js-routes) from 2.3.6 to 2.3.7.
- [Release notes](https://github.com/railsware/js-routes/releases)
- [Changelog](https://github.com/railsware/js-routes/blob/main/CHANGELOG.md)
- [Commits](railsware/js-routes@v2.3.6...v2.3.7)

---
updated-dependencies:
- dependency-name: js-routes
  dependency-version: 2.3.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump the babel group with 5 updates (#7979)

Bumps the babel group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) | `7.29.2` | `7.29.7` |
| [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.29.0` | `7.29.7` |
| [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) | `7.29.0` | `7.29.7` |
| [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) | `7.29.2` | `7.29.7` |
| [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) | `7.28.5` | `7.29.7` |


Updates `@babel/runtime` from 7.29.2 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-runtime)

Updates `@babel/core` from 7.29.0 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-core)

Updates `@babel/plugin-transform-runtime` from 7.29.0 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-plugin-transform-runtime)

Updates `@babel/preset-env` from 7.29.2 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-env)

Updates `@babel/preset-react` from 7.28.5 to 7.29.7
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.29.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: babel
- dependency-name: "@babel/core"
  dependency-version: 7.29.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-version: 7.29.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
- dependency-name: "@babel/preset-env"
  dependency-version: 7.29.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
- dependency-name: "@babel/preset-react"
  dependency-version: 7.29.7
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: babel
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added graders column in Assignment Grades tab (#7967)

Closes #3871.

* build(deps): bump json from 2.19.2 to 2.19.8 (#7978)

Bumps [json](https://github.com/ruby/json) from 2.19.2 to 2.19.8.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](ruby/json@v2.19.2...v2.19.8)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 2.19.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump dayjs from 1.11.13 to 1.11.21 (#7982)

Bumps [dayjs](https://github.com/iamkun/dayjs) from 1.11.13 to 1.11.21.
- [Release notes](https://github.com/iamkun/dayjs/releases)
- [Changelog](https://github.com/iamkun/dayjs/blob/dev/CHANGELOG.md)
- [Commits](iamkun/dayjs@v1.11.13...v1.11.21)

---
updated-dependencies:
- dependency-name: dayjs
  dependency-version: 1.11.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump action_policy from 0.7.5 to 0.7.6 (#7976)

Bumps [action_policy](https://github.com/palkan/action_policy) from 0.7.5 to 0.7.6.
- [Release notes](https://github.com/palkan/action_policy/releases)
- [Changelog](https://github.com/palkan/action_policy/blob/master/CHANGELOG.md)
- [Commits](palkan/action_policy@v0.7.5...v0.7.6)

---
updated-dependencies:
- dependency-name: action_policy
  dependency-version: 0.7.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump playwright from 1.59.0 to 1.60.0 (#7980)

Bumps [playwright](https://github.com/microsoft/playwright-python) from 1.59.0 to 1.60.0.
- [Release notes](https://github.com/microsoft/playwright-python/releases)
- [Commits](microsoft/playwright-python@v1.59.0...v1.60.0)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.60.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump the rjsf group with 2 updates (#7981)

Bumps the rjsf group with 2 updates: [@rjsf/core](https://github.com/rjsf-team/react-jsonschema-form) and [@rjsf/validator-ajv8](https://github.com/rjsf-team/react-jsonschema-form).


Updates `@rjsf/core` from 6.5.2 to 6.6.1
- [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases)
- [Changelog](https://github.com/rjsf-team/react-jsonschema-form/blob/main/CHANGELOG.md)
- [Commits](rjsf-team/react-jsonschema-form@6.5.2...6.6.1)

Updates `@rjsf/validator-ajv8` from 6.5.2 to 6.6.1
- [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases)
- [Changelog](https://github.com/rjsf-team/react-jsonschema-form/blob/main/CHANGELOG.md)
- [Commits](rjsf-team/react-jsonschema-form@6.5.2...6.6.1)

---
updated-dependencies:
- dependency-name: "@rjsf/core"
  dependency-version: 6.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rjsf
- dependency-name: "@rjsf/validator-ajv8"
  dependency-version: 6.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rjsf
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Switched using react-resizable-panels in grading view (#8000)

* Upgraded to Rails v8.1.3 (#8015)

* Refactored SummaryPanel table to use react-table v8 (#8019)

* Added documentation to this repo (#8022)

* Documentation moved from https://github.com/MarkUsProject/Wiki.
* We now use Jekyll to build the documentation pages.
* Added markus:docs Rake task to build the documentation for production.

* build(deps): bump actions/cache from 4 to 6 (#8026)

Bumps [actions/cache](https://github.com/actions/cache) from 4 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v4...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump actions/checkout from 6 to 7 (#8024)

Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump nanasess/setup-chromedriver from 2 to 3 (#8025)

Bumps [nanasess/setup-chromedriver](https://github.com/nanasess/setup-chromedriver) from 2 to 3.
- [Release notes](https://github.com/nanasess/setup-chromedriver/releases)
- [Commits](nanasess/setup-chromedriver@v2...v3)

---
updated-dependencies:
- dependency-name: nanasess/setup-chromedriver
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump i18n-tasks from 1.0.15 to 1.1.2 (#8030)

* build(deps-dev): bump i18n-tasks from 1.0.15 to 1.1.2

Bumps [i18n-tasks](https://github.com/glebm/i18n-tasks) from 1.0.15 to 1.1.2.
- [Release notes](https://github.com/glebm/i18n-tasks/releases)
- [Changelog](https://github.com/glebm/i18n-tasks/blob/main/CHANGES.md)
- [Commits](glebm/i18n-tasks@v1.0.15...v1.1.2)

---
updated-dependencies:
- dependency-name: i18n-tasks
  dependency-version: 1.1.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updated i18n-tasks config

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Liu <david@cs.toronto.edu>

* build(deps-dev): bump bullet from 8.1.0 to 8.1.3 (#8027)

Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.1.0 to 8.1.3.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](flyerhzm/bullet@8.1.0...8.1.3)

---
updated-dependencies:
- dependency-name: bullet
  dependency-version: 8.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump timecop from 0.9.10 to 0.9.11 (#8031)

Bumps [timecop](https://github.com/travisjeffery/timecop) from 0.9.10 to 0.9.11.
- [Changelog](https://github.com/travisjeffery/timecop/blob/master/History.md)
- [Commits](travisjeffery/timecop@v0.9.10...v0.9.11)

---
updated-dependencies:
- dependency-name: timecop
  dependency-version: 0.9.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump marcel from 1.1.0 to 1.2.1 (#8033)

Bumps [marcel](https://github.com/rails/marcel) from 1.1.0 to 1.2.1.
- [Release notes](https://github.com/rails/marcel/releases)
- [Commits](rails/marcel@v1.1.0...v1.2.1)

---
updated-dependencies:
- dependency-name: marcel
  dependency-version: 1.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump the rjsf group with 2 updates (#8035)

Bumps the rjsf group with 2 updates: [@rjsf/core](https://github.com/rjsf-team/react-jsonschema-form) and [@rjsf/validator-ajv8](https://github.com/rjsf-team/react-jsonschema-form).


Updates `@rjsf/core` from 6.6.1 to 6.6.2
- [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases)
- [Changelog](https://github.com/rjsf-team/react-jsonschema-form/blob/main/CHANGELOG.md)
- [Commits](rjsf-team/react-jsonschema-form@6.6.1...6.6.2)

Updates `@rjsf/validator-ajv8` from 6.6.1 to 6.6.2
- [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases)
- [Changelog](https://github.com/rjsf-team/react-jsonschema-form/blob/main/CHANGELOG.md)
- [Commits](rjsf-team/react-jsonschema-form@6.6.1...6.6.2)

---
updated-dependencies:
- dependency-name: "@rjsf/core"
  dependency-version: 6.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rjsf
- dependency-name: "@rjsf/validator-ajv8"
  dependency-version: 6.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rjsf
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump playwright from 1.60.0 to 1.61.0 (#8029)

Bumps [playwright](https://github.com/microsoft/playwright-python) from 1.60.0 to 1.61.0.
- [Release notes](https://github.com/microsoft/playwright-python/releases)
- [Commits](microsoft/playwright-python@v1.60.0...v1.61.0)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.61.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Upgraded babel to v8 (#8041)

* Switched JSX compilation to the automatic runtime (#8042)

* Migrated AnnotationUsagePanel to react table v8 (#8021)

* Upgraded to React v19 (#8044)

* Updated links to refer to new documentation website (#8049)

* Updated documentation images (#8053)

- moved externally-hosted images into repository
- ensured images are vertically centred and displayed as new paragraphs
- cropped images to remove blank space

* Implemented GET test_runs API route (#8055)

* Standardized Table of Contents in docs (#8062)

* Added table to report incomplete scanned exam groups (#8051)

* Made UI improvements for assign scans page (#8059)

* Allow new instructors without existing courses to create a course via LTI launch (#8061)

* Resolved/ignored Brakeman warnings and added Brakeman to CI checks (#8066)

* Fixed scan error pages table "Status" column hidden "Fix" link (#8070)

* Restricted cross-assignment grader membership changes (#8072)

* Fixed grader random assignment to use post-filtered grader weights (#8073)

* build(deps): bump loofah from 2.25.1 to 2.25.2 (#8077)

Bumps [loofah](https://github.com/flavorjones/loofah) from 2.25.1 to 2.25.2.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](flavorjones/loofah@v2.25.1...v2.25.2)

---
updated-dependencies:
- dependency-name: loofah
  dependency-version: 2.25.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump websocket-driver from 0.8.1 to 0.8.2 (#8078)

Bumps [websocket-driver](https://github.com/faye/websocket-driver-ruby) from 0.8.1 to 0.8.2.
- [Changelog](https://github.com/faye/websocket-driver-ruby/blob/main/CHANGELOG.md)
- [Commits](faye/websocket-driver-ruby@0.8.1...0.8.2)

---
updated-dependencies:
- dependency-name: websocket-driver
  dependency-version: 0.8.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump dompurify from 3.4.11 to 3.4.12 (#8081)

Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.11 to 3.4.12.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.4.11...3.4.12)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump fast-uri from 3.1.2 to 3.1.4 (#8082)

Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.4.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.2...v3.1.4)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Decreased scanned exam QR code size and ignored OCR whitespace characters (#8076)

* build(deps): bump immutable from 5.1.5 to 5.1.9 (#8080)

Bumps [immutable](https://github.com/immutable-js/immutable-js) from 5.1.5 to 5.1.9.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](immutable-js/immutable-js@v5.1.5...v5.1.9)

---
updated-dependencies:
- dependency-name: immutable
  dependency-version: 5.1.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump rails-html-sanitizer from 1.6.2 to 1.7.1 (#8079)

Bumps [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) from 1.6.2 to 1.7.1.
- [Release notes](https://github.com/rails/rails-html-sanitizer/releases)
- [Changelog](https://github.com/rails/rails-html-sanitizer/blob/main/CHANGELOG.md)
- [Commits](rails/rails-html-sanitizer@v1.6.2...v1.7.1)

---
updated-dependencies:
- dependency-name: rails-html-sanitizer
  dependency-version: 1.7.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Automatically collect submissions for complete scanned assessments (#8069)

* build(deps): bump rmagick from 6.2.0 to 7.0.5 (#8028)

* build(deps): bump rmagick from 6.2.0 to 7.0.5

Bumps [rmagick](https://github.com/rmagick/rmagick) from 6.2.0 to 7.0.5.
- [Release notes](https://github.com/rmagick/rmagick/releases)
- [Changelog](https://github.com/rmagick/rmagick/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rmagick/rmagick/commits)

---
updated-dependencies:
- dependency-name: rmagick
  dependency-version: 7.0.5
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Added installation of system packages to test_jest CI action

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Liu <david@cs.toronto.edu>

* build(deps): bump json from 2.19.8 to 2.19.9 (#8084)

Bumps [json](https://github.com/ruby/json) from 2.19.8 to 2.19.9.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](ruby/json@v2.19.8...v2.19.9)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 2.19.9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Refactored groups tables to use react-table v8 (#8068)

* Prevented check_timeout calls when window is inactive or session has expired (#8074)

* Modified release scripts to use only plain Ruby (#8086)

Excluded release/ scripts from rubocop linting

* build(deps-dev): bump postcss from 8.5.15 to 8.5.23 (#8087)

Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.23.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.15...8.5.23)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.23
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed typos and icons in documentation (#8088)

* build(deps-dev): bump msgpack from 1.8.0 to 1.8.2 (#8091)

Bumps [msgpack](https://github.com/msgpack/msgpack-ruby) from 1.8.0 to 1.8.2.
- [Changelog](https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog)
- [Commits](msgpack/msgpack-ruby@v1.8.0...v1.8.2)

---
updated-dependencies:
- dependency-name: msgpack
  dependency-version: 1.8.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump postcss from 8.5.23 to 8.5.24 (#8099)

Bumps [postcss](https://github.com/postcss/postcss) from 8.5.23 to 8.5.24.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.23...8.5.24)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.24
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump selenium-webdriver from 4.35.0 to 4.46.0 (#8095)

Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.35.0 to 4.46.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](SeleniumHQ/selenium@selenium-4.35.0...selenium-4.46.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-version: 4.46.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump i18n from 1.14.8 to 1.15.2 (#8093)

Bumps [i18n](https://github.com/ruby-i18n/i18n) from 1.14.8 to 1.15.2.
- [Release notes](https://github.com/ruby-i18n/i18n/releases)
- [Changelog](https://github.com/ruby-i18n/i18n/blob/master/CHANGELOG.md)
- [Commits](ruby-i18n/i18n@v1.14.8...v1.15.2)

---
updated-dependencies:
- dependency-name: i18n
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump rubyzip from 3.2.2 to 3.4.1 (#8092)

* build(deps): bump rubyzip from 3.2.2 to 3.4.1

Bumps [rubyzip](https://github.com/rubyzip/rubyzip) from 3.2.2 to 3.4.1.
- [Release notes](https://github.com/rubyzip/rubyzip/releases)
- [Changelog](https://github.com/rubyzip/rubyzip/blob/main/Changelog.md)
- [Commits](rubyzip/rubyzip@v3.2.2...v3.4.1)

---
updated-dependencies:
- dependency-name: rubyzip
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updated Gemfile to remove "require: 'zip'", which was required before Rubyzip 3.4.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Liu <david@cs.toronto.edu>

* build(deps): bump the fortawesome group with 5 updates (#8094)

Bumps the fortawesome group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@fortawesome/fontawesome-svg-core](https://github.com/FortAwesome/Font-Awesome) | `7.3.0` | `7.3.1` |
| [@fortawesome/free-brands-svg-icons](https://github.com/FortAwesome/Font-Awesome) | `7.3.0` | `7.3.1` |
| [@fortawesome/free-regular-svg-icons](https://github.com/FortAwesome/Font-Awesome) | `7.3.0` | `7.3.1` |
| [@fortawesome/free-solid-svg-icons](https://github.com/FortAwesome/Font-Awesome) | `7.3.0` | `7.3.1` |
| [@fortawesome/react-fontawesome](https://github.com/FortAwesome/react-fontawesome) | `3.3.1` | `3.5.0` |

Updates `@fortawesome/fontawesome-svg-core` from 7.3.0 to 7.3.1
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](FortAwesome/Font-Awesome@7.3.0...7.3.1)

Updates `@fortawesome/free-brands-svg-icons` from 7.3.0 to 7.3.1
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](FortAwesome/Font-Awesome@7.3.0...7.3.1)

Updates `@fortawesome/free-regular-svg-icons` from 7.3.0 to 7.3.1
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](FortAwesome/Font-Awesome@7.3.0...7.3.1)

Updates `@fortawesome/free-solid-svg-icons` from 7.3.0 to 7.3.1
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](FortAwesome/Font-Awesome@7.3.0...7.3.1)

Updates `@fortawesome/react-fontawesome` from 3.3.1 to 3.5.0
- [Release notes](https://github.com/FortAwesome/react-fontawesome/releases)
- [Changelog](https://github.com/FortAwesome/react-fontawesome/blob/main/CHANGELOG.md)
- [Commits](FortAwesome/react-fontawesome@v3.3.1...v3.5.0)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-svg-core"
  dependency-version: 7.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fortawesome
- dependency-name: "@fortawesome/free-brands-svg-icons"
  dependency-version: 7.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fortawesome
- dependency-name: "@fortawesome/free-regular-svg-icons"
  dependency-version: 7.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fortawesome
- dependency-name: "@fortawesome/free-solid-svg-icons"
  dependency-version: 7.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fortawesome
- dependency-name: "@fortawesome/react-fontawesome"
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fortawesome
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump the react group with 2 updates (#8096)

Bumps the react group with 2 updates: [react](https://github.com/react/react/tree/HEAD/packages/react) and [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom).


Updates `react` from 19.2.7 to 19.2.8
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react)

Updates `react-dom` from 19.2.7 to 19.2.8
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom)

---
updated-dependencies:
- dependency-name: react
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: react-dom
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added row number along side of assignment grades table (#8089)

* Migrated functions using heic2any to heic-convert (#8100)

Removed script-src CSP exceptions that were required by heic2any.

* Resolved API key hash security warning (#8104)

* Added option to fix sideways scans (#8103)

* build(deps): bump fast-uri from 3.1.4 to 3.1.5 (#8107)

Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.4...v3.1.5)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added row numbers to course summaries table (#8108)

* build(deps): bump the rjsf group across 1 directory with 2 updates (#8097)

Bumps the rjsf group with 2 updates in the / directory: [@rjsf/core](https://github.com/rjsf-team/react-jsonschema-form) and [@rjsf/validator-ajv8](https://github.com/rjsf-team/react-jsonschema-form).


Updates `@rjsf/core` from 6.6.2 to 6.7.1
- [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases)
- [Changelog](https://github.com/rjsf-team/react-jsonschema-form/blob/main/CHANGELOG.md)
- [Commits](rjsf-team/react-jsonschema-form@6.6.2...v6.7.1)

Updates `@rjsf/validator-ajv8` from 6.6.2 to 6.7.1
- [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases)
- [Changelog](https://github.com/rjsf-team/react-jsonschema-form/blob/main/CHANGELOG.md)
- [Commits](rjsf-team/react-jsonschema-form@6.6.2...v6.7.1)

---
updated-dependencies:
- dependency-name: "@rjsf/core"
  dependency-version: 6.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rjsf
- dependency-name: "@rjsf/validator-ajv8"
  dependency-version: 6.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rjsf
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump dompurify from 3.4.12 to 3.4.13 (#8112)

Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.12 to 3.4.13.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.4.12...3.4.13)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.13
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Updated to Rails v8.1.3.1 (#8113)

* Enable group invitations to use email addresses (#8106)

Previously, inviters had to use usernames to invite students to a group.

* Replaced jcrop with cropperjs for exam cover page cropping (#8114)

* build(deps-dev): bump webmock from 3.26.1 to 3.26.2 (#8119)

Bumps [webmock](https://github.com/bblimke/webmock) from 3.26.1 to 3.26.2.
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](bblimke/webmock@v3.26.1...v3.26.2)

---
updated-dependencies:
- dependency-name: webmock
  dependency-version: 3.26.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump csv from 3.3.5 to 3.3.6 (#8122)

Bumps [csv](https://github.com/ruby/csv) from 3.3.5 to 3.3.6.
- [Release notes](https://github.com/ruby/csv/releases)
- [Changelog](https://github.com/ruby/csv/blob/main/NEWS.md)
- [Commits](ruby/csv@v3.3.5...v3.3.6)

---
updated-dependencies:
- dependency-name: csv
  dependency-version: 3.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump bootsnap from 1.24.0 to 1.24.6 (#8115)

Bumps [bootsnap](https://github.com/rails/bootsnap) from 1.24.0 to 1.24.6.
- [Release notes](https://github.com/rails/bootsnap/releases)
- [Changelog](https://github.com/rails/bootsnap/blob/main/CHANGELOG.md)
- [Commits](rails/bootsnap@v1.24.0...v1.24.6)

---
updated-dependencies:
- dependency-name: bootsnap
  dependency-version: 1.24.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump @rails/actioncable in the rails group (#8120)

Bumps the rails group with 1 update: [@rails/actioncable](https://github.com/rails/rails).


Updates `@rails/actioncable` from 8.1.300 to 8.1.301
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/commits)

---
updated-dependencies:
- dependency-name: "@rails/actioncable"
  dependency-version: 8.1.301
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rails
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump autoprefixer from 10.5.0 to 10.5.4 (#8121)

Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.5.0 to 10.5.4.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](postcss/autoprefixer@10.5.0...10.5.4)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-version: 10.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump mime from 4.0.7 to 4.1.0 (#8123)

Bumps [mime](https://github.com/broofa/mime) from 4.0.7 to 4.1.0.
- [Release notes](https://github.com/broofa/mime/releases)
- [Changelog](https://github.com/broofa/mime/blob/main/CHANGELOG.md)
- [Commits](broofa/mime@v4.0.7...v4.1.0)

---
updated-dependencies:
- dependency-name: mime
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump brakeman from 8.0.4 to 8.0.5 (#8125)

Bumps [brakeman](https://github.com/presidentbeef/brakeman) from 8.0.4 to 8.0.5.
- [Release notes](https://github.com/presidentbeef/brakeman/releases)
- [Changelog](https://github.com/presidentbeef/brakeman/blob/main/CHANGES.md)
- [Commits](presidentbeef/brakeman@v8.0.4...v8.0.5)

---
updated-dependencies:
- dependency-name: brakeman
  dependency-version: 8.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Removed CSP img_src blob exception for scanned exam routes (#8109)

The affected routes are ExamTemplatesController#assign_errors and GroupsController#assign_scans

* build(deps): bump resque-scheduler from 4.11.0 to 5.0.0 (#8124)

Bumps [resque-scheduler](https://github.com/resque/resque-scheduler) from 4.11.0 to 5.0.0.
- [Release notes](https://github.com/resque/resque-scheduler/releases)
- [Changelog](https://github.com/resque/resque-scheduler/blob/master/CHANGELOG.md)
- [Commits](resque/resque-scheduler@v4.11.0...v5.0.0)

---
updated-dependencies:
- dependency-name: resque-scheduler
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Refactored grading annotation routes to respond with JSON (#8127)

* Updated autotester test request to include optional TestBatch id (#7991)

* Set course dates from term on LTI course creation (#8057)

* Updated result view to display mark last updated by field (#8131)

* build(deps): bump brace-expansion (#8132)

Bumps  and [brace-expansion](https://github.com/juliangruber/brace-expansion). These dependencies needed to be updated together.

Updates `brace-expansion` from 1.1.14 to 1.1.18
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@v1.1.14...v1.1.18)

Updates `brace-expansion` from 2.1.0 to 2.1.4
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@v1.1.14...v1.1.18)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.18
  dependency-type: indirect
- dependency-name: brace-expansion
  dependency-version: 2.1.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improved table v8 styling (#8133)

* Centre checkboxes in selection column
* Hide inactive scrollbars (uses the scrollbar-gutter: stable CSS property to reserve space, ensuring that the header columns are aligned with the body even when the body has a scrollbar)
* Enforce horizontal scrolling when tables are used in the .mapping-container divs (groups and graders pages)

* Improvements to grouping deletion handling (#8134)

* build(deps): bump pdfjs-dist from 5.6.205 to 6.2.108 (#8111)

* build(deps): bump pdfjs-dist from 5.6.205 to 6.2.108

Bumps [pdfjs-dist](https://github.com/mozilla/pdf.js) from 5.6.205 to 6.2.108.
- [Release notes](https://github.com/mozilla/pdf.js/releases)
- [Commits](mozilla/pdf.js@v5.6.205...v6.2.108)

---
updated-dependencies:
- dependency-name: pdfjs-dist
  dependency-version: 6.2.108
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updates for pdf.js v6.2.108 upgrade

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Liu <david@cs.toronto.edu>

* Use redirect_back_or_to in GroupsController

* v2.10.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Daniel Rafailov <74218740+danielrafailov1@users.noreply.github.com>
Co-authored-by: David Liu <david@cs.toronto.edu>
Co-authored-by: philipkukulak <philip.kukulak@utoronto.ca>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Muhammad <rafie.muhammad2007@gmail.com>
Co-authored-by: Yanzhen Chen <yanzhenchen123@gmail.com>
Co-authored-by: sophia-huynh <3385254+sophia-huynh@users.noreply.github.com>
Co-authored-by: Aayush Karki <147123757+akarki2005@users.noreply.github.com>
Co-authored-by: donny-wong <141858744+donny-wong@users.noreply.github.com>
Co-authored-by: Tianshu Luan <tianshu.luan@utoronto.ca>
Co-authored-by: Daniel Rafailov <74218740+danielrafailov@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants