Skip to content

feat: option to correct sideways scans - #8103

Merged
david-yz-liu merged 7 commits into
MarkUsProject:masterfrom
YheChen:feat/correct-sideways-scans
Aug 6, 2026
Merged

david-yz-liu merged 7 commits into
MarkUsProject:masterfrom
YheChen:feat/correct-sideways-scans

Conversation

@YheChen

@YheChen YheChen commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Proposed Changes

(Describe your changes here. Also describe the motivation for your changes: what problem do they solve, or how do they improve the application or codebase? If this pull request fixes an open issue, use a keyword to link this pull request to the issue.)

Fixes #7768

This change adds Rotate Page 90° right and Rotate Page 90° left arrow buttons to the scanned-exam error correction page. Each click immediately updates the PDF preview by 90°, and the resulting rotation is applied permanently when the corrected scan is saved.

Screenshots of your changes (if applicable) image

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) X
🐛 Bug fix (non-breaking change that fixes an issue)
🎨 User interface change (change to user interface; provide screenshots) X
♻️ Refactoring (internal change to codebase, without changing functionality)
🚦 Test update (change that only adds or modifies tests)
📦 Dependency update (change that updates a dependency)
📖 Documentation update (change that updates documentation)
🔧 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

(Include any questions or comments you have regarding your changes.)

@coveralls

coveralls commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 30970627726

Coverage increased (+0.02%) to 90.604%

Details

  • Coverage increased (+0.02%) from the base build.
  • Patch coverage: 41 of 41 lines across 3 files are fully covered (100%).
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 51638
Covered Lines: 47804
Line Coverage: 92.58%
Relevant Branches: 2491
Covered Branches: 1239
Branch Coverage: 49.74%
Branches in Coverage %: Yes
Coverage Strength: 129.61 hits per line

💛 - Coveralls

@YheChen
YheChen requested review from david-yz-liu and removed request for david-yz-liu August 4, 2026 02:07
@YheChen YheChen changed the title feat: option to correct sideways scans WIP: feat: option to correct sideways scans Aug 4, 2026
@YheChen YheChen changed the title WIP: feat: option to correct sideways scans feat: option to correct sideways scans Aug 4, 2026
upside_down: Page Upside Down?
rotate90_left: Rotate 90° left
rotate90_right: Rotate 90° right
rotation: Page Orientation

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.

Change to "Fix Page Orientation"


b. You'll be taken to a new screen where you can see the scanned page and text label, and input the copy number and page number. (The text label is in the form `<template name>-<copy number>-<page number>`.)
You can also specify if the page was scanned upside down, so that MarkUs will reorient the page when displaying it for graders.
You can also correct the page orientation before saving.

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 is good; please also replace the screenshot below

margin-top: 0.2em;
}

.rotation-button {

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 is good; the icons are a bit off-centre, please modify the vertical-align property for this class to fix the centering.

@YheChen
YheChen requested a review from david-yz-liu August 5, 2026 03:17

@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, @YheChen!

@david-yz-liu
david-yz-liu merged commit 9ba2275 into MarkUsProject:master Aug 6, 2026
8 checks passed
@david-yz-liu david-yz-liu added this to the v2.10.2 milestone Aug 6, 2026
@YheChen
YheChen deleted the feat/correct-sideways-scans branch August 6, 2026 03:21
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.

Have option to correct sideways scans

3 participants