canvas-lms/package.json

290 lines
11 KiB
JSON
Raw Normal View History

AMD Conversion "Trivial" JavaScript / CoffeeScript changes -------------------------------------------------- For the most part, all javascript was simply wrapped in `require` or `define`. The dependencies were found with a script that matched regexes in the files, it errs on the side of listing too many dependencies, so its worth double checking each file's dependencies (over time, anyway). i18n API changes -------------------------------------------------- No longer have to do I18n.scoped calls, just list i18n as a dependency with the scope and it's imported already scoped require ['i18n!some_scope'], (I18n) -> I18n.t 'im_scoped', 'I'm scoped!' JS bundling now done with r.js, not Jammit -------------------------------------------------- We don't use jammit to bundle JS anymore. Simply list dependencies for your JS modules in the file and RequireJS handles the rest. To optimize the JavaScript, first make sure you have node.js 0.4.12+ installed and then run: $ rake js:build The app defaults to the optimized build in production. You can use non-optimized in production by putting ?debug_assets=true in the url just like before. You can also test the optimized JavaScript in development with ?optimized_js=true. Significant changes -------------------------------------------------- These files have "real" changes to them (unlike the JavaScript that is simply wrapped in require and define). Worth taking a really close look at: - app/helpers/application_helper.rb - app/views/layouts/application.html.erb - config/assets.yml - config/build.js - lib/handlebars/handlebars.rb - lib/i18n_extraction/js_extractor.rb - lib/tasks/canvas.rake - lib/tasks/i18n.rake - lib/tasks/js.rake Change-Id: I4bc5ecb1231f331aaded0fef2bcc1f3a9fe482a7 Reviewed-on: https://gerrit.instructure.com/6986 Tested-by: Hudson <hudson@instructure.com> Reviewed-by: Ryan Florence <ryanf@instructure.com>
2011-11-11 00:31:45 +08:00
{
"name": "canvas-lms",
"license": "AGPL-3.0",
AMD Conversion "Trivial" JavaScript / CoffeeScript changes -------------------------------------------------- For the most part, all javascript was simply wrapped in `require` or `define`. The dependencies were found with a script that matched regexes in the files, it errs on the side of listing too many dependencies, so its worth double checking each file's dependencies (over time, anyway). i18n API changes -------------------------------------------------- No longer have to do I18n.scoped calls, just list i18n as a dependency with the scope and it's imported already scoped require ['i18n!some_scope'], (I18n) -> I18n.t 'im_scoped', 'I'm scoped!' JS bundling now done with r.js, not Jammit -------------------------------------------------- We don't use jammit to bundle JS anymore. Simply list dependencies for your JS modules in the file and RequireJS handles the rest. To optimize the JavaScript, first make sure you have node.js 0.4.12+ installed and then run: $ rake js:build The app defaults to the optimized build in production. You can use non-optimized in production by putting ?debug_assets=true in the url just like before. You can also test the optimized JavaScript in development with ?optimized_js=true. Significant changes -------------------------------------------------- These files have "real" changes to them (unlike the JavaScript that is simply wrapped in require and define). Worth taking a really close look at: - app/helpers/application_helper.rb - app/views/layouts/application.html.erb - config/assets.yml - config/build.js - lib/handlebars/handlebars.rb - lib/i18n_extraction/js_extractor.rb - lib/tasks/canvas.rake - lib/tasks/i18n.rake - lib/tasks/js.rake Change-Id: I4bc5ecb1231f331aaded0fef2bcc1f3a9fe482a7 Reviewed-on: https://gerrit.instructure.com/6986 Tested-by: Hudson <hudson@instructure.com> Reviewed-by: Ryan Florence <ryanf@instructure.com>
2011-11-11 00:31:45 +08:00
"version": "0.0.0",
"engines": {
"node": ">=10.14.0",
"yarn": "^1.6.0"
},
"private": true,
"workspaces": {
"packages": [
"gems/canvas_i18nliner",
"gems/selinimum",
"gems/plugins/*",
"packages/*",
"client_apps/*"
],
"nohoist": [
"canvas_quizzes/grunt*",
"canvas_quizzes/jasmine*"
]
},
"dependencies": {
Give RCEWrapper onFocus/onBlur handlers closes ADMIN-2742 there are challanges - RCEWrapper keeps track of whether it has focus. This is true if anything w/in its outermost div is the activeElement - since the previously active element blurs before the new element becomes active. we need a timeout to wait and see where focus lands. this is true when: - focus moves to a tinymce popup, like a menu - focus moves to one of RCE's dialogs or trays - the user interacts with content in the CanvasContentTray. This is because a new instance of the CCT is created every time it renders as the user interacts with it. (An artifact of how it's wired into redux). This also addresses a bug where the html-view textarea was the wrong size when flipping between rich text and html views. NOTE: if you close any of the Trays or Modals by typing "esc", it will blur the RCE. This is a known bug that I'm hoping will be fixed via INSTUi-2201. If not, then via another CORE ticket test plan: - not necessary, but if you test in assignments2, you'll know it's working because the RCE will go away if it loses focus, so enable assignments2, create an assignment, then edit the assignment (you can't create an a2 assignment yet) - insert and edit an external link - insert and edit a course image - upload an image - insert and edit a course document - upload a document > in each case, expect focus to return to the RCE, and if applicable, the yellow indicator box is correctly positioned. - in any of the above cases, click on the yellow indicator while it's visible > expect focus to stay w/in the rce resizing: - click the "switch to html view" button > expect the textarea to fill the avaiable space - resize it and click the button to switch back > expect the rce to be the same (or really close) size Change-Id: If85c5644558fbce27530e43bb71c2bdb7e91eb12 Reviewed-on: https://gerrit.instructure.com/199273 Tested-by: Jenkins Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> QA-Review: Jeremy Putnam <jeremyp@instructure.com> Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2019-06-27 06:07:22 +08:00
"@instructure/canvas-rce-old": "4.1.4",
"@instructure/media-capture": "^5.54.0",
"@instructure/react-crop": "^5.0.1",
"@instructure/ui-alerts": "^5",
"@instructure/ui-billboard": "^5",
"@instructure/ui-breadcrumb": "^5",
"@instructure/ui-buttons": "^5",
"@instructure/ui-core": "^5",
"@instructure/ui-editable": "^5",
"@instructure/ui-elements": "^5",
track anonymous grading in the audit trail ui closes GRADE-1668 test plan: A. Setup 1. Create an assignment * With moderated grading * With anonymous grading * Worth 10 points * Three graders (A, B, and C) * Teachers as final grader (not admin) * Assigned to only one or two students * just for less work in QA 2. As each student, submit to the assignment 3. As Grader A: a. Assign provisional grades b. Maybe leave a submission comment or two 4. As the teacher, disable anonymous grading * The related event will have a warning badge 5. As Grader B: a. Assign provisional grades b. Maybe leave a submission comment or two * The related events will have warning badges 6. As the teacher, re-enable anonymous grading 7. As Grader C: a. Assign provisional grades b. Maybe leave a submission comment or two 8. As the final grader: a. Visit the moderation page b. Select provisional grades c. Post grades d. Display grades to students B. Verify 1. Log in as a user with "view audit trail" permission (admin) 2. Open the assignment in SpeedGrader 3. Open the assessment audit trail 4. For Grader A a. Expand the user event group for Grader A b. Verify there is no non-anonymous warning icon to the side of the user name c. Verify there are no non-anonymous warning badges to the side of the user's grading actions 5. For Grader B a. Expand the user event group for Grader B b. Verify there is a non-anonymous warning icon to the side of the user name c. Verify the non-anonymous warning icon triggers a sensible tooltip d. Verify there are some non-anonymous warning badges to the side of the user's grading actions e. Verify the badged icons trigger sensible tooltips 6. For Grader C a. Expand the user event group for Grader C b. Verify there is no non-anonymous warning icon to the side of the user name c. Verify there are no non-anonymous warning badges to the side of the user's grading actions 7. For the teacher a. Expand the user event group for the teacher b. Verify there is a non-anonymous warning icon to the side of the user name c. Verify there is a non-anonymous warning badge to the side side of the user's action disabling anonymous grading d. Verify there are no non-anonymous warning badges to the side of the user's moderation actions (after enabling anonymous) Change-Id: I2e675b84dc3e6b59e3111ed39b7a814f38f19f5c Reviewed-on: https://gerrit.instructure.com/170684 Tested-by: Jenkins Reviewed-by: Gary Mei <gmei@instructure.com> Reviewed-by: Adrian Packel <apackel@instructure.com> QA-Review: Adrian Packel <apackel@instructure.com> Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-11-01 22:13:35 +08:00
"@instructure/ui-focusable": "^5",
"@instructure/ui-form-field": "^5",
"@instructure/ui-forms": "^5",
"@instructure/ui-icons": "^5",
"@instructure/ui-layout": "^5",
"@instructure/ui-media-player": "^5.54.0",
Give RCEWrapper onFocus/onBlur handlers closes ADMIN-2742 there are challanges - RCEWrapper keeps track of whether it has focus. This is true if anything w/in its outermost div is the activeElement - since the previously active element blurs before the new element becomes active. we need a timeout to wait and see where focus lands. this is true when: - focus moves to a tinymce popup, like a menu - focus moves to one of RCE's dialogs or trays - the user interacts with content in the CanvasContentTray. This is because a new instance of the CCT is created every time it renders as the user interacts with it. (An artifact of how it's wired into redux). This also addresses a bug where the html-view textarea was the wrong size when flipping between rich text and html views. NOTE: if you close any of the Trays or Modals by typing "esc", it will blur the RCE. This is a known bug that I'm hoping will be fixed via INSTUi-2201. If not, then via another CORE ticket test plan: - not necessary, but if you test in assignments2, you'll know it's working because the RCE will go away if it loses focus, so enable assignments2, create an assignment, then edit the assignment (you can't create an a2 assignment yet) - insert and edit an external link - insert and edit a course image - upload an image - insert and edit a course document - upload a document > in each case, expect focus to return to the RCE, and if applicable, the yellow indicator box is correctly positioned. - in any of the above cases, click on the yellow indicator while it's visible > expect focus to stay w/in the rce resizing: - click the "switch to html view" button > expect the textarea to fill the avaiable space - resize it and click the button to switch back > expect the rce to be the same (or really close) size Change-Id: If85c5644558fbce27530e43bb71c2bdb7e91eb12 Reviewed-on: https://gerrit.instructure.com/199273 Tested-by: Jenkins Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> QA-Review: Jeremy Putnam <jeremyp@instructure.com> Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2019-06-27 06:07:22 +08:00
"@instructure/ui-menu": "^5",
"@instructure/ui-number-input": "^5",
"@instructure/ui-overlays": "^5",
"@instructure/ui-pagination": "^5",
"@instructure/ui-select": "^6.8.1",
"@instructure/ui-svg-images": "^5",
"@instructure/ui-table": "^5",
"@instructure/ui-tabs": "^5",
"@instructure/ui-text-input": "^6.8.1",
"@instructure/ui-themeable": "^5",
"@instructure/ui-themes": "^5",
"@instructure/ui-toggle-details": "^5",
"@instructure/uid": "^5",
"apollo-cache-inmemory": "^1.3.10",
"apollo-client": "^2.6.4",
"apollo-link": "^1.2.3",
"apollo-link-error": "^1.1.1",
"apollo-link-http": "^1.5.5",
"apollo-link-state": "^0.4.2",
"axios": "^0.19.0 || ^0.18.0",
"axios-cache-adapter": "^2.4.0",
"backbone": "1.1.1",
"big.js": "^5.0.3",
"brandable_css": "0.1.0",
"canvas-planner": ">=1.0.16",
"canvas_offline_course_viewer": "https://github.com/instructure/canvas_offline_course_viewer.git#1.2.0",
"classnames": "^2.2.5",
"color-slicer": "0.8.0",
"create-react-class": "^15.6.3",
"d3": "3.5.17",
"formdata-polyfill": "^3.0.9",
"fullcalendar": "https://github.com/instructure/fullcalendar.git#1108dd1c991a029ec6fd7de3337737ec5295ba97",
"graphiql": "^0.14.2",
"graphiql-explorer": "^0.4.2",
"graphql": "^14",
"graphql-tag": "^2.8.0",
"i18n-js": "^3",
"ic-ajax": "~2.0.1",
"ic-tabs": "0.1.3",
"immer": "^3",
"immutability-helper": "^3",
Configurable proficiency ratings page closes OUT-1856, OUT-1858, OUT-2239, OUT-2148 This adds configurable proficiency ratings on the account rubrics page. Persisting these changes will occur in a future patchset (2252). Validating order will be in a separate patchset (2240). test plan: - with the "non-scoring rubrics" feature flag off, the account rubrics page should appear without the proficiency ratings tab - with the "non-scoring rubrics" feature flag on, the accounts rubrics page should appear with the proficiency tab, if visiting with an account with "manage_outcomes" permission (e.g. account admin) - create an account role that has "Create and edit assessing rubrics" permission enabled but "Manage learning outcomes" disabled by going to the account page, click on the "Permissions" link in the left menu, then select the "Account Roles" tab to then be able create the role and enable the permission above. - create an account user by going to the account page and then click on the "People" link in the left menu to then be able to click on "+ New User". you'll use the email address entered in the next step. - make that user an account admin by going to the account page, click on the "Settings" link in the left menu, then select the "Admins" tab, then click on "+ Account Admins". select the new role from the drop down menu and enter the email address you used in the preivous step - confirm with the feature flag enabled, that visiting the account rubrics page does not appear with the proficiency tab, if visiting with an account without "manage_outcomes" permission (e.g. masquerade as the user created above) - on the proficiency tab, test error handling: * description is required * points is required, should be a valid number * when saving changes, all fields with errors should be labelled with an error text, with the first field receiving focus Change-Id: Ic52ef9fe9c58cfb215216b3a505ef1fb4b851c68 Reviewed-on: https://gerrit.instructure.com/150841 Reviewed-by: Michael Brewer-Davis <mbd@instructure.com> Reviewed-by: Frank Murphy <fmurphy@instructure.com> Tested-by: Jenkins QA-Review: Dariusz Dzien <ddzien@instructure.com> Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-04-10 09:20:00 +08:00
"immutable": "^3.8.2",
"is-valid-domain": "^0.0.11",
"jquery": "https://github.com/ryankshaw/jquery.git#dadf794ebc4c4dcf94c344dab7d9341d46bc17cc",
"jquery-getscrollbarwidth": "^1.0.0",
"jquery-ui-touch-punch": "^0.2.3",
"jquery.cookie": "^1.4.1",
"jquery.elastic": "1.0.0",
"location-origin": "^1.1.4",
"lodash": "^4.16.4",
"md5": "^2.2.1",
"mediaelement": "https://github.com/instructure/mediaelement.git#master",
Pass correct locale to Planner Sometimes ENV.LOCALE and ENV.MOMENT_LOCALE are different (zh-Hans v zh-cn or mi v mi-nz). We were passing the former to planner, but moment needs the full locale, including language and region identifiers, and formatMessage copes with the full locale just fine, so we really need to pass in the latter or moment eventually blows up. So mi-nz month names would successfully parse, had to both bump our version of moment and tweak the canvas customized mi-nz locale data. to test, you'll have to run yarn to update moment, then build with RAILS_LOAD_ALL_LOCALES=1 yarn build Note on the changes to timezoneSpec.js: - some of the specs were parsing dates like "Mon, Aug 3", which are being interpreted in the current year, when Aut 3 is not a Monday. Resolved this by using MockDate to pretend today is 2/1/2015 - moment does not always interpret the Chinese characters for evening as implying PM. I'm assuming canvas will never need that particular construct and commented out the failing string. - there's one date-time that's getting the date totally wrong. - Fixed grammatically incorrect instances of '8月 3, 2015' to ''8月 3日, 2015' - fix cases where the year is coming after the month and day, which would never really happen fixes ADMIN-1331 test plan: - have a student in course so planner is enabled. - go to /profile/settings and Edit - change the Language to Reo Māori (Aotearoa) and "Update Settings" - go to the planner dashboard - click on + to create a new todo > expect you can create a todo. If you want, you can repeat with any of the languages listed in the ticket just to prove ^that wasn't a fluke. Change-Id: I9ba069ef61529088ab92271d7857998df6bbc409 Reviewed-on: https://gerrit.instructure.com/161206 Tested-by: Jenkins Reviewed-by: Ryan Shaw <ryan@instructure.com> Reviewed-by: Mysti Sadler <mysti@instructure.com> Reviewed-by: Jeremy Stanley <jeremy@instructure.com> QA-Review: Anju Reddy <areddy@instructure.com> Product-Review: Ed Schiebel <eschiebel@instructure.com>
2018-08-18 03:21:04 +08:00
"moment": "^2.10.6",
"newless": "^0.3.0",
"normalize-scroll-left": "^0.2",
"page": "visionmedia/page.js#1.6.4",
"parse-decimal-number": "1.0.0",
"parse-link-header": "^1",
"prop-types": "^15",
"qs": "^6.6.0",
"react": "^16.9.0",
"react-apollo": "^3.0.1",
"react-dnd": "^2.5.2",
"react-dnd-html5-backend": "^2.5.2",
"react-dom": "^16.9.0",
"react-immutable-proptypes": "^2.1.0",
"react-lazy-load": "^3.0.13",
"react-modal": "^3",
"react-redux": "^5.1.1",
upgrade react-token-input so it supports react 16 closes: CORE-1885 Test plan: * make sure the token input that appears when you edit assignment due date Overrides on the assignment overrides page still works Like it did before. Here’s it’s original test plan: new due dates selection UI - on assignments, quizzes & discussions pages - with DA on and off - assign various due dates/(un)lock dates to source sections, individuals, and everybody - these should create overrides that properly take students/sections and dates - validations should work for all dates as normal and not let empty overrides get created (with no students or sections) - the names of overrides should properly update as students change - as more overrides get created, saving assignments should not slow down significantly - the student/section selector should be intuitive * the “new grading period set” form should work as it did before. Here’s it’s original test plan: A new button "+ Add Grading Period Set" is on the Grading Period Sets page. This allows a new set to be named and associated with as many terms as needed. To begin, visit the Grading page for an account (e.g. /accounts/1/grading_standards) and click "+ Set of Grading Period" and within this form ensure the following: 1. Given no name in the "Set name" field, when clicking the "Create" button a flash message is displayed and the set is not saved 2. Given no enrollment terms in the "Attach terms", when clicking the "Create" button a flash message is displayed and the set is not saved 3. Given a name and at least one attached enrollment term, when clicking the "Create" button an AJAX call successfully persists to the database and the new set is displayed on the page along with a successful flash message 4. When the form is open, the "+ Set of Grading Periods" button is disabled 5. When the form is in the process of creating a new set, the "Create" and "Cancel" button is disabled 6. Clicking close at any other time closes the form and re-enables the "+ Set of Grading Periods" button and all data in the form is cleared Change-Id: Ibb0290202b5dcf00ec42a4bb6d1c3d2e3d7a3b2b Reviewed-on: https://gerrit.instructure.com/164492 Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> Tested-by: Jenkins Product-Review: Ryan Shaw <ryan@instructure.com> QA-Review: Ryan Shaw <ryan@instructure.com>
2018-09-14 23:20:08 +08:00
"react-tokeninput": "^2.5.0",
"react-transition-group": "^1",
"redux": "^4.0.1",
"redux-actions": "^2.6.4",
"redux-thunk": "^2.3.0",
"spin.js": "2.3.2",
"swfobject": "^2.2.1",
"tablesorter": "^2.28.5",
"timezone": "^1.0.18",
"tinycolor2": "1.4.1",
"tinymce-a11y-checker": "^2",
Configurable proficiency ratings page closes OUT-1856, OUT-1858, OUT-2239, OUT-2148 This adds configurable proficiency ratings on the account rubrics page. Persisting these changes will occur in a future patchset (2252). Validating order will be in a separate patchset (2240). test plan: - with the "non-scoring rubrics" feature flag off, the account rubrics page should appear without the proficiency ratings tab - with the "non-scoring rubrics" feature flag on, the accounts rubrics page should appear with the proficiency tab, if visiting with an account with "manage_outcomes" permission (e.g. account admin) - create an account role that has "Create and edit assessing rubrics" permission enabled but "Manage learning outcomes" disabled by going to the account page, click on the "Permissions" link in the left menu, then select the "Account Roles" tab to then be able create the role and enable the permission above. - create an account user by going to the account page and then click on the "People" link in the left menu to then be able to click on "+ New User". you'll use the email address entered in the next step. - make that user an account admin by going to the account page, click on the "Settings" link in the left menu, then select the "Admins" tab, then click on "+ Account Admins". select the new role from the drop down menu and enter the email address you used in the preivous step - confirm with the feature flag enabled, that visiting the account rubrics page does not appear with the proficiency tab, if visiting with an account without "manage_outcomes" permission (e.g. masquerade as the user created above) - on the proficiency tab, test error handling: * description is required * points is required, should be a valid number * when saving changes, all fields with errors should be labelled with an error text, with the first field receiving focus Change-Id: Ic52ef9fe9c58cfb215216b3a505ef1fb4b851c68 Reviewed-on: https://gerrit.instructure.com/150841 Reviewed-by: Michael Brewer-Davis <mbd@instructure.com> Reviewed-by: Frank Murphy <fmurphy@instructure.com> Tested-by: Jenkins QA-Review: Dariusz Dzien <ddzien@instructure.com> Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-04-10 09:20:00 +08:00
"uuid": "^3.2.1"
},
AMD Conversion "Trivial" JavaScript / CoffeeScript changes -------------------------------------------------- For the most part, all javascript was simply wrapped in `require` or `define`. The dependencies were found with a script that matched regexes in the files, it errs on the side of listing too many dependencies, so its worth double checking each file's dependencies (over time, anyway). i18n API changes -------------------------------------------------- No longer have to do I18n.scoped calls, just list i18n as a dependency with the scope and it's imported already scoped require ['i18n!some_scope'], (I18n) -> I18n.t 'im_scoped', 'I'm scoped!' JS bundling now done with r.js, not Jammit -------------------------------------------------- We don't use jammit to bundle JS anymore. Simply list dependencies for your JS modules in the file and RequireJS handles the rest. To optimize the JavaScript, first make sure you have node.js 0.4.12+ installed and then run: $ rake js:build The app defaults to the optimized build in production. You can use non-optimized in production by putting ?debug_assets=true in the url just like before. You can also test the optimized JavaScript in development with ?optimized_js=true. Significant changes -------------------------------------------------- These files have "real" changes to them (unlike the JavaScript that is simply wrapped in require and define). Worth taking a really close look at: - app/helpers/application_helper.rb - app/views/layouts/application.html.erb - config/assets.yml - config/build.js - lib/handlebars/handlebars.rb - lib/i18n_extraction/js_extractor.rb - lib/tasks/canvas.rake - lib/tasks/i18n.rake - lib/tasks/js.rake Change-Id: I4bc5ecb1231f331aaded0fef2bcc1f3a9fe482a7 Reviewed-on: https://gerrit.instructure.com/6986 Tested-by: Hudson <hudson@instructure.com> Reviewed-by: Ryan Florence <ryanf@instructure.com>
2011-11-11 00:31:45 +08:00
"devDependencies": {
"@apollo/react-testing": "^3.0.1",
Upgrade to babel 7 & allow any js file to be themeable closes: CORE-2699 CORE-2700 UIDEV-99 This commit gets canvas-lms itself upgraded to babel 7. To do that we also had to upgrade jest to v24. We had already got canvas-rce and canvas-planner on jest24/babel7 but now this gets everything to babel 7. so you will see a lot of things removed from yarn.lock since we don’t don’t have to have different versions of everything for babel and jest The other major thing this does is make it so any JS file in canvas can become an @instructure/ui-themeable themeable component. This means you no longer should have to put your css in app/stylesheets for any new react components that you are writing. Test plan: 1. Make sure that the perf of `yarn build:js` is on-par with what it was before. We pass everything through the themeable babel transform now so there is a chance it is slower. If it is majorly slower, we’ll have to figure something out. 2. run a production weback build. The common (or any bundle for that matter should get output exactly the same as it did before) things to manually qa check: * in a NODE_ENV=production enviornment, go to /accounts/site_admin/developer_keys * click the "+ Developer Key" button, it should open the modal. (there are selenium tests that do this, but it was one thing that had to be fixed to get jenkins to pass) * on a course that is set up as a master course, click on the thing that opens the blueprint courses tray. * verify that when you click "Associations" and "Sync History" links in that tray, that they dynamically load the webpack chunk for the modal contents for that thing and then the modal is shown (again, there are selenium specs that test that exact thing but it is always good to manually test it too) Change-Id: I802584228962b54480a500f8fe422f45c2dcac4c Reviewed-on: https://gerrit.instructure.com/183965 Tested-by: Jenkins Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> QA-Review: Ryan Shaw <ryan@instructure.com> Product-Review: Ryan Shaw <ryan@instructure.com>
2019-03-06 05:20:27 +08:00
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/parser": "^7",
"@babel/plugin-transform-react-inline-elements": "^7.2.0",
"@instructure/browserslist-config-canvas-lms": ">=2",
"@instructure/ui-babel-preset": "^6",
"@sentry/webpack-plugin": "^1.5.2",
"@sheerun/mutationobserver-shim": "0.3.2",
"@testing-library/dom": "^6",
"@testing-library/jest-dom": "^4",
"@testing-library/react": "^9",
"@testing-library/react-hooks": "^2.0.1",
"@yarnpkg/lockfile": "^1.0.2",
"axe-core": "~2.1.7",
"babel-eslint": "^10",
Upgrade to babel 7 & allow any js file to be themeable closes: CORE-2699 CORE-2700 UIDEV-99 This commit gets canvas-lms itself upgraded to babel 7. To do that we also had to upgrade jest to v24. We had already got canvas-rce and canvas-planner on jest24/babel7 but now this gets everything to babel 7. so you will see a lot of things removed from yarn.lock since we don’t don’t have to have different versions of everything for babel and jest The other major thing this does is make it so any JS file in canvas can become an @instructure/ui-themeable themeable component. This means you no longer should have to put your css in app/stylesheets for any new react components that you are writing. Test plan: 1. Make sure that the perf of `yarn build:js` is on-par with what it was before. We pass everything through the themeable babel transform now so there is a chance it is slower. If it is majorly slower, we’ll have to figure something out. 2. run a production weback build. The common (or any bundle for that matter should get output exactly the same as it did before) things to manually qa check: * in a NODE_ENV=production enviornment, go to /accounts/site_admin/developer_keys * click the "+ Developer Key" button, it should open the modal. (there are selenium tests that do this, but it was one thing that had to be fixed to get jenkins to pass) * on a course that is set up as a master course, click on the thing that opens the blueprint courses tray. * verify that when you click "Associations" and "Sync History" links in that tray, that they dynamically load the webpack chunk for the modal contents for that thing and then the modal is shown (again, there are selenium specs that test that exact thing but it is always good to manually test it too) Change-Id: I802584228962b54480a500f8fe422f45c2dcac4c Reviewed-on: https://gerrit.instructure.com/183965 Tested-by: Jenkins Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> QA-Review: Ryan Shaw <ryan@instructure.com> Product-Review: Ryan Shaw <ryan@instructure.com>
2019-03-06 05:20:27 +08:00
"babel-jest": "^24",
"babel-loader": "^8",
"babel-plugin-dynamic-import-node": "^2.2.0",
"babel-plugin-transform-amd-to-commonjs": "^1.4.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4",
"clean-webpack-plugin": "^3",
"coffee-loader": "~0.7.2",
"coffee-script": "^1",
"concurrently": "^4",
"core-js-builder": "^3",
"css-loader": "^3",
"ember-template-compiler": "^1.8.0",
"enzyme": "^3",
"enzyme-adapter-react-16": "^1",
"enzyme-to-json": "^3.3.4",
Upgrade to babel 7 & allow any js file to be themeable closes: CORE-2699 CORE-2700 UIDEV-99 This commit gets canvas-lms itself upgraded to babel 7. To do that we also had to upgrade jest to v24. We had already got canvas-rce and canvas-planner on jest24/babel7 but now this gets everything to babel 7. so you will see a lot of things removed from yarn.lock since we don’t don’t have to have different versions of everything for babel and jest The other major thing this does is make it so any JS file in canvas can become an @instructure/ui-themeable themeable component. This means you no longer should have to put your css in app/stylesheets for any new react components that you are writing. Test plan: 1. Make sure that the perf of `yarn build:js` is on-par with what it was before. We pass everything through the themeable babel transform now so there is a chance it is slower. If it is majorly slower, we’ll have to figure something out. 2. run a production weback build. The common (or any bundle for that matter should get output exactly the same as it did before) things to manually qa check: * in a NODE_ENV=production enviornment, go to /accounts/site_admin/developer_keys * click the "+ Developer Key" button, it should open the modal. (there are selenium tests that do this, but it was one thing that had to be fixed to get jenkins to pass) * on a course that is set up as a master course, click on the thing that opens the blueprint courses tray. * verify that when you click "Associations" and "Sync History" links in that tray, that they dynamically load the webpack chunk for the modal contents for that thing and then the modal is shown (again, there are selenium specs that test that exact thing but it is always good to manually test it too) Change-Id: I802584228962b54480a500f8fe422f45c2dcac4c Reviewed-on: https://gerrit.instructure.com/183965 Tested-by: Jenkins Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> QA-Review: Ryan Shaw <ryan@instructure.com> Product-Review: Ryan Shaw <ryan@instructure.com>
2019-03-06 05:20:27 +08:00
"es-check": "^5",
"eslint": "^6",
"eslint-config-airbnb": "^18",
"eslint-config-prettier": "^6",
"eslint-plugin-eslint-comments": "^3.0.1",
"eslint-plugin-import": "^2",
Upgrade to babel 7 & allow any js file to be themeable closes: CORE-2699 CORE-2700 UIDEV-99 This commit gets canvas-lms itself upgraded to babel 7. To do that we also had to upgrade jest to v24. We had already got canvas-rce and canvas-planner on jest24/babel7 but now this gets everything to babel 7. so you will see a lot of things removed from yarn.lock since we don’t don’t have to have different versions of everything for babel and jest The other major thing this does is make it so any JS file in canvas can become an @instructure/ui-themeable themeable component. This means you no longer should have to put your css in app/stylesheets for any new react components that you are writing. Test plan: 1. Make sure that the perf of `yarn build:js` is on-par with what it was before. We pass everything through the themeable babel transform now so there is a chance it is slower. If it is majorly slower, we’ll have to figure something out. 2. run a production weback build. The common (or any bundle for that matter should get output exactly the same as it did before) things to manually qa check: * in a NODE_ENV=production enviornment, go to /accounts/site_admin/developer_keys * click the "+ Developer Key" button, it should open the modal. (there are selenium tests that do this, but it was one thing that had to be fixed to get jenkins to pass) * on a course that is set up as a master course, click on the thing that opens the blueprint courses tray. * verify that when you click "Associations" and "Sync History" links in that tray, that they dynamically load the webpack chunk for the modal contents for that thing and then the modal is shown (again, there are selenium specs that test that exact thing but it is always good to manually test it too) Change-Id: I802584228962b54480a500f8fe422f45c2dcac4c Reviewed-on: https://gerrit.instructure.com/183965 Tested-by: Jenkins Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> QA-Review: Ryan Shaw <ryan@instructure.com> Product-Review: Ryan Shaw <ryan@instructure.com>
2019-03-06 05:20:27 +08:00
"eslint-plugin-jest": "^22",
"eslint-plugin-jsx-a11y": "^6",
"eslint-plugin-lodash": "^6",
"eslint-plugin-notice": "^0.8",
"eslint-plugin-prettier": "^3",
"eslint-plugin-promise": "^4",
"eslint-plugin-qunit": "^4",
"eslint-plugin-react": "^7",
"eslint-plugin-react-hooks": "^1",
"exports-loader": "^0.7",
"expose-loader": "^0.7",
"fetch-mock": "^7",
"file-loader": "^4",
"gglobby": "0.0.3",
"glob": "^7",
"graphql-tools": "^4",
"gulp": "^3",
"gulp-file": "^0.4",
"gulp-filter": "^5",
"gulp-insert": "^0.5",
"gulp-load-plugins": "^1",
"gulp-rename": "^1",
"gulp-rev": "^8",
"gulp-sourcemaps": "^2",
"gulp-uglify": "^3",
"handlebars": "1.3.0",
"imports-loader": "^0.8",
"istanbul-instrumenter-loader": "^3",
"istanbul-merge": "^1.1.1",
Upgrade to babel 7 & allow any js file to be themeable closes: CORE-2699 CORE-2700 UIDEV-99 This commit gets canvas-lms itself upgraded to babel 7. To do that we also had to upgrade jest to v24. We had already got canvas-rce and canvas-planner on jest24/babel7 but now this gets everything to babel 7. so you will see a lot of things removed from yarn.lock since we don’t don’t have to have different versions of everything for babel and jest The other major thing this does is make it so any JS file in canvas can become an @instructure/ui-themeable themeable component. This means you no longer should have to put your css in app/stylesheets for any new react components that you are writing. Test plan: 1. Make sure that the perf of `yarn build:js` is on-par with what it was before. We pass everything through the themeable babel transform now so there is a chance it is slower. If it is majorly slower, we’ll have to figure something out. 2. run a production weback build. The common (or any bundle for that matter should get output exactly the same as it did before) things to manually qa check: * in a NODE_ENV=production enviornment, go to /accounts/site_admin/developer_keys * click the "+ Developer Key" button, it should open the modal. (there are selenium tests that do this, but it was one thing that had to be fixed to get jenkins to pass) * on a course that is set up as a master course, click on the thing that opens the blueprint courses tray. * verify that when you click "Associations" and "Sync History" links in that tray, that they dynamically load the webpack chunk for the modal contents for that thing and then the modal is shown (again, there are selenium specs that test that exact thing but it is always good to manually test it too) Change-Id: I802584228962b54480a500f8fe422f45c2dcac4c Reviewed-on: https://gerrit.instructure.com/183965 Tested-by: Jenkins Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> QA-Review: Ryan Shaw <ryan@instructure.com> Product-Review: Ryan Shaw <ryan@instructure.com>
2019-03-06 05:20:27 +08:00
"jest": "^24",
"jest-canvas-mock": "^2",
"jest-config": "^24",
"jest-environment-jsdom-fourteen": "^0.1.0",
"jest-fetch-mock": "^2.1.2",
"jest-junit": "^7",
"jest-localstorage-mock": "^2",
"jest-moxios-utils": "^1",
"jest-raw-loader": "^1",
"json-loader": "^0.5.7",
"jsx-loader": "0.11.2",
"karma": "^3",
"karma-chrome-launcher": "^2",
"karma-coverage-istanbul-reporter": "^2",
"karma-firework-reporter": "~0.2.4",
"karma-junit-reporter": "^1",
"karma-qunit": "~1.2.1",
"karma-sourcemap-loader": "^0.3",
"karma-spec-reporter": "^0.0.32",
"karma-verbose-reporter": "^0.0.6",
"karma-webpack": "^3",
"lint-staged": "^9",
"merge-stream": "^1",
Pass correct locale to Planner Sometimes ENV.LOCALE and ENV.MOMENT_LOCALE are different (zh-Hans v zh-cn or mi v mi-nz). We were passing the former to planner, but moment needs the full locale, including language and region identifiers, and formatMessage copes with the full locale just fine, so we really need to pass in the latter or moment eventually blows up. So mi-nz month names would successfully parse, had to both bump our version of moment and tweak the canvas customized mi-nz locale data. to test, you'll have to run yarn to update moment, then build with RAILS_LOAD_ALL_LOCALES=1 yarn build Note on the changes to timezoneSpec.js: - some of the specs were parsing dates like "Mon, Aug 3", which are being interpreted in the current year, when Aut 3 is not a Monday. Resolved this by using MockDate to pretend today is 2/1/2015 - moment does not always interpret the Chinese characters for evening as implying PM. I'm assuming canvas will never need that particular construct and commented out the failing string. - there's one date-time that's getting the date totally wrong. - Fixed grammatically incorrect instances of '8月 3, 2015' to ''8月 3日, 2015' - fix cases where the year is coming after the month and day, which would never really happen fixes ADMIN-1331 test plan: - have a student in course so planner is enabled. - go to /profile/settings and Edit - change the Language to Reo Māori (Aotearoa) and "Update Settings" - go to the planner dashboard - click on + to create a new todo > expect you can create a todo. If you want, you can repeat with any of the languages listed in the ticket just to prove ^that wasn't a fluke. Change-Id: I9ba069ef61529088ab92271d7857998df6bbc409 Reviewed-on: https://gerrit.instructure.com/161206 Tested-by: Jenkins Reviewed-by: Ryan Shaw <ryan@instructure.com> Reviewed-by: Mysti Sadler <mysti@instructure.com> Reviewed-by: Jeremy Stanley <jeremy@instructure.com> QA-Review: Anju Reddy <areddy@instructure.com> Product-Review: Ed Schiebel <eschiebel@instructure.com>
2018-08-18 03:21:04 +08:00
"mockdate": "^2.0.2",
"moment-timezone-data-webpack-plugin": "^1.0.3",
"moxios": "^0.4",
"nyc": "^13",
"prettier": "^1",
"qunitjs": "^1.14.0",
"raven-js": "^3.26.2",
"react-test-renderer": "^16",
"redux-logger": "^3.0.6",
make feature flags for Right To Left layout Closes: CORE-1154 There are 2 feature flags here. One a specific user (internal employees, sales people, contractors, etc) can turn on to see where we are and what would still need to be done. And the other is for an account to be able to turn on to let the users in their account that have their language set to an RTL language (eg: Arabic, Farsi or Hebrew) see the interface in RTL This commit is part of a chain of commits. you'll need to apply the ones that follow-on after this to see most of the actual Right To Left features, this commit is mainly just to create the feature flag. Test plan: * go to your user settings page * you should see a feature option for Force RTL Layout” * it should show that it is “in development” * it should should be hidden: eg: only appears for site admins and not For normal users * turn it on (if you have this checked out along with the others that follow beind this commit) * navigate around canvas, most things on most pages should be RTL * you should be able to get an idea of how much more work and what Kind of changes we’d still need to make to get it 100% * now turn off that user feature flag, and go to your account's settings * turn on the "allow users from RTL languages to see RTL layout" account-level feature flag. * nothing should change for you, it should be LTR like normal * set your language to either Arabic, Farsi or Hebrew * now the interface should all be in right to left. (again, you'll need to have the follow-on commits to this to see all of the RTL changes) * without either of the feature flags turned on, absolutely nothing should be different at all anywhere in the interface. Change-Id: Ia78d86fa46d2d289b1913c5d1340546d7f6c3a1f Reviewed-on: https://gerrit.instructure.com/143891 Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com> QA-Review: Jeremy Putnam <jeremyp@instructure.com> Product-Review: Ryan Shaw <ryan@instructure.com> Tested-by: Jenkins
2018-03-17 02:25:14 +08:00
"sass-direction": "^1",
"script-loader": "^0.7",
"sinon": "^7",
"style-loader": "^0.23",
"stylelint": "^10",
"through2": "^3",
"waait": "^1",
"webpack": "^4",
"webpack-cleanup-plugin": "^0.5",
"webpack-cli": "^3",
"webpack-manifest-plugin": "^2",
"webpack-stats-plugin": "^0.2.1",
"wsrun": "^5",
"xsslint": "ryankshaw/xsslint#babel7",
"yaml-loader": "^0.5"
},
"optionalDependencies": {
"inspect-process": "^0.5"
},
"browserslist": [
"extends @instructure/browserslist-config-canvas-lms"
],
"jest-junit": {
"output": "./coverage-js/junit-reports/jest.xml"
},
"repository": "instructure/canvas-lms",
"scripts": {
"test": "concurrently --names \"packages,jest,karma\" \"yarn test:packages\" \"if [ \"$COVERAGE\" ]; then yarn test:jest:coverage --maxWorkers 1; else yarn test:jest --maxWorkers 1; fi\" \"if [ \"$COVERAGE\" ]; then yarn test:karma; else yarn test:karma:concurrently; fi\"",
"test:coverage": "script/generate_js_coverage",
"test:watch": "concurrently --names \"jest,karma\" \"jest --watch .\" \"yarn test:karma:watch\"",
"test:jest": "jest --color",
"test:jest:coverage": "NODE_OPTIONS=\"--max_old_space_size=8192\" jest --color --coverage",
"test:jest:debug": "inspect node_modules/.bin/jest --runInBand",
"test:karma": "yarn run test:karma:watch --single-run",
"test:karma:concurrently": "DISABLE_HAPPYPACK=1 concurrently --names \"coffee,js1,js2\" \"JSPEC_GROUP=coffee yarn test:karma:headless\" \"JSPEC_GROUP=js1 yarn test:karma:headless\" \"JSPEC_GROUP=js2 yarn test:karma:headless\"",
"test:karma:headless": "yarn run test:karma --browsers ChromeHeadlessNoSandbox",
"test:karma:watch": "node --max-old-space-size=4096 ./node_modules/.bin/karma start",
"test:karma:watch:headless": "yarn run test:karma:watch --browsers ChromeHeadlessNoSandbox",
"test:packages": "if [ \"$COVERAGE\" ]; then yarn workspace-run-serial test:coverage; else yarn workspace-run-serial test; fi",
"build": "yarn run build:css && yarn run build:js",
"build:watch": "concurrently --raw \"yarn build:css:watch\" \"yarn build:js:watch\"",
"build:css": "brandable_css",
"build:css:watch": "brandable_css --watch",
"build:js": "yarn run webpack-development",
"build:js:watch": "yarn run webpack",
"build:packages": "yarn workspace-run build:canvas",
"lint:browser-code": "es-check es8 ./public/dist/**/*.js",
"lint:staged": "lint-staged",
"postinstall": "yarn build:packages && ./script/install_hooks",
"webpack:analyze": "NODE_ENV=production SKIP_SOURCEMAPS=1 node --max_old_space_size=8096 $(yarn bin)/webpack --json > stats-prod.json && NODE_OPTIONS=\"--max_old_space_size=8192\" npx webpack-bundle-analyzer stats-prod.json public/dist/webpack-production",
"webpack": "gulp rev 1> /dev/null & NODE_OPTIONS=\"--max_old_space_size=8192\" webpack --progress --color --watch",
"webpack-development": "gulp rev 1> /dev/null & NODE_OPTIONS=\"--max_old_space_size=8192\" webpack --color && yarn lint:browser-code",
"webpack-production": "NODE_ENV=production gulp rev && NODE_ENV=production NODE_OPTIONS=\"--max_old_space_size=8192\" webpack --color && yarn lint:browser-code",
"workspace-run": "r() { wsrun --fast-exit --exclude-missing --collect-logs --report -c $@; exit $?; } && r",
"workspace-run-serial": "r() { wsrun --fast-exit --exclude-missing --collect-logs --report --serial -c $@; exit $?; } && r",
"jspec": "./spec/jspec.sh",
"jspec-watch": "./spec/jspec.sh --watch",
"a11y-report": "./spec/jspec.sh --a11y",
"upgrade-and-dedupe": "rm -rf yarn.lock node_modules && yes 1 | yarn install --flat --production --ignore-scripts && git checkout package.json && yarn install && git add yarn.lock",
"upgrade-instructure-ui": "script/upgrade-instructure-ui"
},
"resolutions": {
"jquery": "https://github.com/ryankshaw/jquery.git#dadf794ebc4c4dcf94c344dab7d9341d46bc17cc",
"graphael": "this is just here so yarn.lock looks the same whether the analytics plugin is checked out or not",
"graphael": "https://github.com/ryankshaw/graphael.git",
"node-sass": "if we let node-sass upgrade to recent versions, it causes: SIS-3125",
"node-sass": "4.7.2"
AMD Conversion "Trivial" JavaScript / CoffeeScript changes -------------------------------------------------- For the most part, all javascript was simply wrapped in `require` or `define`. The dependencies were found with a script that matched regexes in the files, it errs on the side of listing too many dependencies, so its worth double checking each file's dependencies (over time, anyway). i18n API changes -------------------------------------------------- No longer have to do I18n.scoped calls, just list i18n as a dependency with the scope and it's imported already scoped require ['i18n!some_scope'], (I18n) -> I18n.t 'im_scoped', 'I'm scoped!' JS bundling now done with r.js, not Jammit -------------------------------------------------- We don't use jammit to bundle JS anymore. Simply list dependencies for your JS modules in the file and RequireJS handles the rest. To optimize the JavaScript, first make sure you have node.js 0.4.12+ installed and then run: $ rake js:build The app defaults to the optimized build in production. You can use non-optimized in production by putting ?debug_assets=true in the url just like before. You can also test the optimized JavaScript in development with ?optimized_js=true. Significant changes -------------------------------------------------- These files have "real" changes to them (unlike the JavaScript that is simply wrapped in require and define). Worth taking a really close look at: - app/helpers/application_helper.rb - app/views/layouts/application.html.erb - config/assets.yml - config/build.js - lib/handlebars/handlebars.rb - lib/i18n_extraction/js_extractor.rb - lib/tasks/canvas.rake - lib/tasks/i18n.rake - lib/tasks/js.rake Change-Id: I4bc5ecb1231f331aaded0fef2bcc1f3a9fe482a7 Reviewed-on: https://gerrit.instructure.com/6986 Tested-by: Hudson <hudson@instructure.com> Reviewed-by: Ryan Florence <ryanf@instructure.com>
2011-11-11 00:31:45 +08:00
}
}