Go to file
Dustin Cowles c3e952a1a4 add TopNavigationTools
closes ADV-104
flag=top_navigation_placement

Test plan:
- NOTE: You must restart the web container after running Setting.set

- PreReqs:
  - A tool with the `top_navigation` placement
- On a Canvas page with the Top Navigation, check the following
 - Without the tool in the allow list
  - ENV does not have key `top_navigation_tools`
  - No tool buttons show up in the navigation bar
 - With the tool in the allow list by dev key
Setting.set("top_navigation_allowed_dev_keys", "global-dev-key-id")
  - ENV.top_navigation_tools is populated with the tool config
  - The tool menu button shows up in the top navigation bar
  - The tool is listed in the menu and can be launched in drawer
  - Adjust the page to mobile width
   - Ensure the tool menu shows up in mobile header and can be launched
    - The tool should open in a tray that overlays the content
  - Repeat with the tool only in the domain list
Setting.set("top_navigation_allowed_dev_keys", "")
Setting.set("top_navigation_allowed_launch_domains", "tool-launch-domain")
 - With the tool in either allow list, add it to the pinned keys list
Setting.set("top_navigation_pinned_dev_keys", "global-dev-key-id")
  - Ensure the tool has a dedicated button in top nav and the tool menu
    is not rendered.
  - Repeate with the tool only in the allowd domains list
Setting.set("top_navigation_pinned_dev_keys", "")
Setting.set("top_navigation_pinned_launch_domains", "tool-launch-domain")
- With the tool in the pinned list but not the allowed list, ensure it
  is not rendered in the top navigation menu and is not in ENV.

Change-Id: I267b78316e54dab7f811e3a7d8eaa752668ac5db
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/347352
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Dustin Cowles <dustin.cowles@instructure.com>
2024-05-30 18:14:38 +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 create web compose varient running puma/debug 2024-01-25 20:06:31 +00:00
Gemfile.d bundle update rubocop 2024-05-30 16:20:52 +00:00
app add TopNavigationTools 2024-05-30 18:14:38 +00:00
bin remove bundle binstub 2024-01-18 17:16:15 +00:00
build replace esmac with Dependency Cruiser 2024-04-25 19:35:38 +00:00
config bundle update rubocop 2024-05-30 16:20:52 +00:00
db/migrate Allow User to Add Their Name Pronunciation to Profile 2024-05-30 18:12:16 +00:00
doc unify SpeedGrader text 2024-05-29 18:41:43 +00:00
docker-compose remove all code relating to inst api gateway 2024-04-09 16:55:37 +00:00
gems bundle update rubocop 2024-05-30 16:20:52 +00:00
hooks Politely suggest that new .js(x) files be in TypeScript 2023-11-14 03:07:16 +00:00
inst-cli inst cli: support debugging 2024-05-29 19:29:54 +00:00
jest fix subscribe field when (un)archiving 2024-05-22 09:46:23 +00:00
lib Allow User to Add Their Name Pronunciation to Profile 2024-05-30 18:12:16 +00:00
log remove deprecated build & log 2023-02-13 16:36:02 +00:00
packages upgrade big.js 2024-05-29 21:57:11 +00:00
patches patch format-message to fix CJS issue 2024-01-23 02:22:22 +00:00
public unify SpeedGrader text 2024-05-29 18:41:43 +00:00
script ensure using the correct version of bundler for script/delayed_job 2024-05-22 21:26:43 +00:00
spec add TopNavigationTools 2024-05-30 18:14:38 +00:00
tmp
ui add TopNavigationTools 2024-05-30 18:14:38 +00:00
ui-build fix analytics hub lunch_url 2024-05-07 16:41:42 +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 .jx -> .jsx in canvas-planner 2023-07-28 16:33:32 +00:00
.editorconfig
.eslintignore upgrade to jquery 3.5 2024-03-19 19:28:16 +00:00
.eslintrc.js upgrade jquery-ui position to unpatched 1.9.0-beta.1 2024-02-08 02:47:04 +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 bundle update --bundler 2024-04-16 15:11:59 +00:00
Dockerfile.githook
Dockerfile.jenkins bundle update --bundler 2024-04-16 15:11:59 +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.puma bundle update --bundler 2024-04-16 15:11:59 +00:00
Gemfile bundle update rubocop 2024-05-30 16:20:52 +00:00
Gemfile.lock bundle update rubocop 2024-05-30 16:20:52 +00:00
Gemfile.rails71.lock bundle update rubocop 2024-05-30 16:20:52 +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 convert remaining boolean flags 2023-03-16 18:30:43 +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 update chrome version for JS tests 2024-03-27 17:26:46 +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
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
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 upgrade big.js 2024-05-29 21:57:11 +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 upgrade big.js 2024-05-29 21:57:11 +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.