Go to file
Michael Hulse c67220d7c1 re-implement topnav in user settings
A previous commit, g/349439, we had to revert
the implementation of the TopNav in the user’s account
settings page (/profile/settings).

The previouis implementation was using
document.querySelector on a non-existent DOM element
which caused the page to break when the instui_topnav
FF was turned off (because mountPoint was not found
in the DOM).

At the time of this implmentation, IIRC, we did not have
initializeTopNavPortal() which now handles cases where
the mountPoint does not exist in the DOM.

This commit re-impliments the TopNav on the user’s account
settings page using initializeTopNavPortal().

This commit also updates the breadcrumbs to have two parts
(instead of just one part) regardless of the feature flag
setting. This change makes the breadcrumbs more consistent
with the rest of the links in the user’s settings sidebar.
Additionally, having two breadcrumbs avoids a bug with the
current version of the InstUI TopNavBar as documented here:

https://instructure.slack.com/archives/C0JCJ63TR/p1717523719748679

refs FOO-4085
flag=instui_nav

test plan:
- in new tab, navigate to User > Settings
  /profile/settings
- TopNav should be displayed with breadcrumbs
- breadcrumbs should have two parts:
  1. user short name linked to /profile route
  2. string “Settings”
- enable the instui-nav flag
- check >= tablet viewports
- page should fully render
- no errors in console
- disable instui-nav flag
- check >= tablet viewports
- reload /profile/settings
- page should fully render
- no errors in console

Change-Id: I232687f7debf2ed19ee580a881a44d9995dac484
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/349458
Reviewed-by: Martin Ochoa <martin.ochoa@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Michael Hulse <michael.hulse@instructure.com>
Product-Review: Michael Hulse <michael.hulse@instructure.com>
2024-06-10 19:06:23 +00:00
.github update github reviewers list 2022-06-28 19:24:59 +00:00
.storybook reduce use of babel 2023-12-24 00:34:28 +00:00
.vscode Add Registration Wizard state management 2024-06-06 16:02:14 +00:00
Gemfile.d Add verifiers to New Quiz links on import from Old Quiz 2024-06-10 18:02:25 +00:00
app re-implement topnav in user settings 2024-06-10 19:06:23 +00:00
bin remove bundle binstub 2024-01-18 17:16:15 +00:00
build Simplify, refactor Karma test config 2024-06-10 18:31:19 +00:00
config refine and localize summaries in an additional step 2024-06-10 14:31:17 +00:00
db/migrate refine and localize summaries in an additional step 2024-06-10 14:31:17 +00:00
doc add window width to getPageSettings postMessage 2024-06-06 22:27:43 +00:00
docker-compose remove all code relating to inst api gateway 2024-04-09 16:55:37 +00:00
gems check enrollment_state for completed enrollments 2024-06-07 21:36:46 +00:00
hooks Politely suggest that new .js(x) files be in TypeScript 2023-11-14 03:07:16 +00:00
inst-cli remove Cassandra support for page views 2024-06-05 15:15:34 +00:00
jest colocate some QUnit tests 2024-06-05 17:32:28 +00:00
lib Block Editor using craft.js 2024-06-07 16:07:22 +00:00
log remove deprecated build & log 2023-02-13 16:36:02 +00:00
packages Fix incorrect formatMessage imports 2024-06-10 15:33:05 +00:00
patches patch format-message to fix CJS issue 2024-01-23 02:22:22 +00:00
public Block Editor using craft.js 2024-06-07 16:07:22 +00:00
script Force by_role linter to give -1 and not -2 2024-06-03 21:14:39 +00:00
spec spec: ungraded discussion edit assign to tests 2024-06-10 19:01:12 +00:00
tmp
ui re-implement topnav in user settings 2024-06-10 19:06:23 +00:00
ui-build Simplify, refactor Karma test config 2024-06-10 18:31:19 +00:00
vendor/gems/bundler-multilock bundle update bundler-multilock 2024-05-19 19:58:16 +00:00
.codeclimate.yml
.dependency-cruiser.js replace esmac with Dependency Cruiser 2024-04-25 19:35:38 +00:00
.devcontainer.json Add VSCode devcontainer configuration 2023-10-11 14:57:46 +00:00
.dive-ci
.dockerignore Create prod dockerfile for easy OSS use 2024-06-04 17:23:33 +00:00
.editorconfig
.eslintignore upgrade to jquery 3.5 2024-03-19 19:28:16 +00:00
.eslintrc.js colocate some QUnit tests 2024-06-05 17:32:28 +00:00
.git-blame-ignore-revs rubocop: update .git-blame-ignore-revs 2024-01-31 03:23:03 +00:00
.gitignore Add ICE design for Announcements desktop view 2024-05-24 10:19:06 +00:00
.gitmessage
.groovylintrc.json stop loading webpack-builder image twice before running JS specs 2022-08-17 13:45:40 +00:00
.i18nignore Don't try to extract translations from vendor 2022-03-03 17:48:51 +00:00
.i18nrc (i18n-js:4) use i18nliner-canvas from npm 2022-06-23 18:42:23 +00:00
.irbrc rubocop: fix miscelleneuos violations in prep of bumping rubocop 2023-04-12 19:26:13 +00:00
.lintstagedrc.js Improve pre-commit hook 2023-02-07 18:42:53 +00:00
.npmrc
.nvmrc Upgrade to node 18 2023-09-11 17:28:59 +00:00
.prettierrc Use trailing commas where valid in ES5 2022-09-23 19:05:01 +00:00
.rspec
.rubocop.yml rubocop: enable Rails/NotNullColumn 2024-04-04 14:39:57 +00:00
.sentryignore Only upload production source maps to Sentry 2022-03-24 18:17:54 +00:00
.stylelintrc
CONTRIBUTING.md
COPYRIGHT
Courses add all the custom recurrence UI 2023-07-14 12:55:32 +00:00
Dockerfile update bundler in dockerfiles 2024-06-05 21:06:07 +00:00
Dockerfile.githook
Dockerfile.jenkins update bundler in dockerfiles 2024-06-05 21:06:07 +00:00
Dockerfile.jenkins-cache add Rails 7.1 lockfiles for embedded gems 2024-02-14 22:30:10 +00:00
Dockerfile.jenkins.final Unfreze bundle when using gem overrides 2023-08-24 17:25:57 +00:00
Dockerfile.jenkins.js use bind mounts for cache helper image copies 2022-09-26 11:51:46 +00:00
Dockerfile.jenkins.linters Unfreze bundle when using gem overrides 2023-08-24 17:25:57 +00:00
Dockerfile.jenkins.ruby-runner keep lockfiles in sync as part of `bundle` commands 2023-05-16 18:39:21 +00:00
Dockerfile.jenkins.webpack-assets use bind mounts for cache helper image copies 2022-09-26 11:51:46 +00:00
Dockerfile.jenkins.webpack-builder use bind mounts for cache helper image copies 2022-09-26 11:51:46 +00:00
Dockerfile.jenkins.webpack-cache cache compiled webpack assets 2022-09-27 19:43:55 +00:00
Dockerfile.jenkins.webpack-runner replace JS_BUILD_NO_UGLIFY; enable sourcemaps in jenkins 2024-01-29 20:33:23 +00:00
Dockerfile.jenkins.yarn-runner remove --ignore-optional flag 2024-01-17 23:34:02 +00:00
Dockerfile.package-translations remove python dep from package-translations build 2023-10-12 14:44:59 +00:00
Dockerfile.production update bundler in dockerfiles 2024-06-05 21:06:07 +00:00
Dockerfile.puma update bundler in dockerfiles 2024-06-05 21:06:07 +00:00
Gemfile bundle update rubocop 2024-05-30 16:20:52 +00:00
Gemfile.lock Add verifiers to New Quiz links on import from Old Quiz 2024-06-10 18:02:25 +00:00
Gemfile.rails71.lock Add verifiers to New Quiz links on import from Old Quiz 2024-06-10 18:02:25 +00:00
Jenkinsfile only trigger cystalball-map build from main-postmerge 2024-04-25 03:29:53 +00:00
Jenkinsfile.axe always upload junit results as artifact 2022-06-10 15:07:32 +00:00
Jenkinsfile.cassandra
Jenkinsfile.contract-tests Remove Canvas Outcome Pact Tests 2023-11-29 18:00:03 +00:00
Jenkinsfile.coverage emsure private defaults are used everywhere 2023-03-23 13:52:36 +00:00
Jenkinsfile.coverage-js Simplify, refactor Karma test config 2024-06-10 18:31:19 +00:00
Jenkinsfile.crystalball emsure private defaults are used everywhere 2023-03-23 13:52:36 +00:00
Jenkinsfile.dive
Jenkinsfile.docker-smoke move nodeLabel out of canvas-builds 2023-03-16 19:41:00 +00:00
Jenkinsfile.docker-sync upgrade chromedriver to latest version 120 2024-01-22 18:56:21 +00:00
Jenkinsfile.dynamodb
Jenkinsfile.js Simplify, refactor Karma test config 2024-06-10 18:31:19 +00:00
Jenkinsfile.junit-uploader move nodeLabel out of canvas-builds 2023-03-16 19:41:00 +00:00
Jenkinsfile.master-bouncer-check-all move withGerritCredentials to global shared library 2023-02-13 16:12:23 +00:00
Jenkinsfile.package-translations use transifex API token instead of username / password 2023-02-06 16:42:35 +00:00
Jenkinsfile.postgres
Jenkinsfile.redis
Jenkinsfile.rspecq specTimings isNumber check 2023-06-14 00:47:13 +00:00
Jenkinsfile.selenium.flakey_spec_catcher Remove auditor cassandra support 2023-04-03 15:40:22 +00:00
Jenkinsfile.selenium.performance.chrome remove dead / unused values 2023-03-13 21:28:52 +00:00
Jenkinsfile.test-subbuild
Jenkinsfile.vendored-gems Remove auditor cassandra support 2023-04-03 15:40:22 +00:00
Jenkinsfile.xbrowser
LICENSE
README.md
Rakefile
SECURITY.md Adding SECURITY.md for github. 2023-04-19 22:32:57 +00:00
bower.json
code_of_conduct.md
config.ru rubocop: Style/RedundantConstantBase 2023-04-10 20:56:27 +00:00
docker-compose.new-jenkins-flakey-spec-catcher.yml
docker-compose.new-jenkins-js.yml remove translations/_core_en.js in production try 2 2022-02-18 00:08:38 +00:00
docker-compose.new-jenkins-package-translations.yml use transifex API token instead of username / password 2023-02-06 16:42:35 +00:00
docker-compose.new-jenkins-selenium.yml upgrade chromedriver to latest version 120 2024-01-22 18:56:21 +00:00
docker-compose.new-jenkins.consumer.yml Bump rails 2021-12-23 15:26:13 +00:00
docker-compose.new-jenkins.vendored-gems.yml
docker-compose.new-jenkins.yml Use shared db for dynamo in Jenkins 2024-01-24 15:34:21 +00:00
docker-compose.spring.yml remove CommonJS from k5uploader 2024-02-22 20:18:45 +00:00
docker-compose.yml
gulpfile.js replace JS_BUILD_NO_UGLIFY; enable sourcemaps in jenkins 2024-01-29 20:33:23 +00:00
issue_template.md
jest.config.js use JSC in Jest instead of Babel 2024-01-18 00:11:45 +00:00
karma.conf.js handle .jsx files in karma 2023-08-01 20:16:15 +00:00
package.json Simplify, refactor Karma test config 2024-06-10 18:31:19 +00:00
renovate.json Configure Renovate 2024-03-29 19:25:01 +00:00
rspack.config.js replace webpack with rspack 2024-02-08 23:02:33 +00:00
tsconfig.json use JSC in Jest instead of Babel 2024-01-18 00:11:45 +00:00
vitest.config.ts Add analytics hub as remote module 2024-04-26 13:26:39 +00:00
vitest.workspace.ts Install Vitest 2023-11-17 14:19:22 +00:00
yarn.lock More block editor 2024-06-10 16:35:37 +00:00

README.md

Canvas LMS

Canvas is a modern, open-source LMS developed and maintained by Instructure Inc. It is released under the AGPLv3 license for use by anyone interested in learning more about or using learning management systems.

Please see our main wiki page for more information

Installation

Detailed instructions for installation and configuration of Canvas are provided on our wiki.