refs LS-3017
flag=none
Shape is not a valid prop type, but rather a function that returns a
valid prop type. Since no shape was being defined, requiring a simple
object seemed more appropriate.
test plan:
- tests pass
qa risk: low
Change-Id: I10d6743669c3138d6426a455868f5af1c33722fe
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/286330
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
refs LS-3017
flag=none
These warnings were not causing tests to fail for some reason. I wasn't
able to pin the reason down, my suspicion is that fetch-mock uses an
internal logging mechanism.
test plan:
- run `yarn test:jest ui/features/k5_`
- there should be no console output regarding unmatched requests
qa risk: low
Change-Id: I4e8eb876571ca74eb0b2edef6a62640387f15a15
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/286391
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
fixes MAT-740
flag=none
Test Plan:
- Create a new page or edit an existing
one
- Check that there's a label that says
"Page title" just above the page title
text field
Change-Id: Icb550ba6c1926ba84ea085582ff47dc4b080a193
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/286212
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jake Oeding <jake.oeding@instructure.com>
QA-Review: Jake Oeding <jake.oeding@instructure.com>
Product-Review: David Lyons <lyons@instructure.com>
notes:
- did some housekeeping on the selenium
tests
- skips jest test due to flakiness
Change-Id: I75dbea69498efc54ccdee7c0bf0bf6264a925c7c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/286272
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
This reverts commit 078a06d50e.
Reason for revert: Broke some iframe heights in canaries
Change-Id: I3a594dc516c4ba03ec1fbd4a24f67a5223c54827
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285820
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
Reviewed-by: Mark Starkman <mark.starkman@instructure.com>
This commit adds support for Sentry's APM tracing to the frontend. It
enables tracking of client-side performance metrics across different
pages in the app, so that performance can be further improved.
Settings included in this commit:
- `sentry_frontend_traces_sample_rate`, which controls the APM sample
rate (defaults to 0.0, meaning no transactions are collected)
flag=none
closes DE-997
test plan:
- confirm that there are no issues when the sample rate setting is not
set
- confirm that setting the sample rate setting to something greater than
0.0 results in traces being collected, viewable in the Performance
section of Sentry
- confirm that traces are not collected if the `sentry_disabled` setting
is `true`
- confirm that adjusting `sentry_frontend_traces_sample_rate` correctly
adjusts the quantity of transactions delivered to Sentry, and that
leaving it unset or set to 0.0 results in no transactions being sent
Change-Id: I38790d9efce2513b5d8ce957f8b763fcd8737b34
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283692
Reviewed-by: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
refs FOO-2645
flag = none
this applies the first two codemods: updatePropNames and updateV7Props.
We can still remain on v7 at this point.
To reproduce this:
- clone github.com/instructure/instructure-ui
- activate node 14 and run "yarn install"
- apply the first mod with this command:
npx jscodeshift \
-t packages/ui-codemods/lib/updatePropNames.ts \
--config=packages/instui-config/codemod-configs/v7/propNames.config.json\
~/src/canvas-lms/ui
- apply the second mod with this command:
npx jscodeshift \
-t packages/ui-codemods/lib/updateV7Props.ts \
-fileName updateV7PropsWarnings.txt \
~/src/canvas-lms/ui
substitute ~/src/canvas-lms with the path to ur canvas installation
~ TEST PLAN ~
~~~~~~~~~
not sure if it's reasonable to be spot-checking all the affected sites,
we should be able to rely on the test suite for that, but it won't hurt
to look and click through things
Change-Id: Ie120b773550633f418fae5635d1943083a65005e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285028
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
Reviewed-by: Sean Scally <sean.scally@instructure.com>
QA-Review: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
closes OUT-4700
flag=improved_outcomes_management
test plan:
- import academic benchmark
- open find outcome modal
- one at a time, add all but one outcome from a group
- observe the 'Add All Outcomes' button is enabled
- add the final outcome
- observe the 'Add All Outcomes' button is disabled
- find a different group to import
- one at a time, add all but one outcome
- try to add the final outcome (cause it to fail)
- observe the 'Add All Outcomes' button is disabled
when trying to add the outcome, and enabled when the
import fails
Change-Id: Ib846fcb27807de8a8c873350746389baaa1b7664
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285793
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
QA-Review: Chrystal Langston <chrystal.langston@instructure.com>
Product-Review: Ben Friedman <ben.friedman@instructure.com>
Closes: LS-2985
flag= none
test plan:
- In profile notification, expect to see the “settings for” dropdown
- Confirm the selector works as usual
Change-Id: I9c80cf4e520680b89075d8ab8a77d5535607a195
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285660
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jonathan Guardado <jonathan.guardado@instructure.com>
If FullStory is enabled for the current session, this integration will
associate the FullStory session URL with any errors sent to Sentry.
Additionally, it will add an event to the FullStory session indicating
there was a Sentry error, and providing a URL for easy access. If
FullStory is not enabled for the current session, this integration is not
enabled.
closes DE-996
flag=none
test plan:
- ensure that the appropriate values are provided in config/sentry.yml
- enable FullStory for a session by overriding methods in FullStoryHelper
- cause an unhandled exception to occur on the frontend
- verify that the event in Sentry contains FullStory context with a link
to the session URL
- verify that the FullStory session contains the Sentry Error event, with
a link to the Sentry event
- disable FullStory, and verify that frontend exception monitoring with
Sentry works as normal
Change-Id: I782930ecbea6f3e4afb23045d4087fe4c252875d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283151
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
Fixes FOO-2731
Refs FOO-2674
flag=none
See also the referenced ticket.
Support found yet another race condition in rendering the
"new/edit calendar event" dialog due to a class constructor
wanting DOM elements to be there before they might have
rendered. This just waits on the #id first.
When this deploys to Production, we can pull the `calendar`
bundle from the prod `deferred_js_bundles` Setting.
Test plan:
* Not sure? This is hard to reproduce in dev, but if you can
do so on the main branch, verify that it's not reproducible
on this commit
Change-Id: I02bf765ecafb77fbd29010aba0b7db677081f148
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285980
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Sean Scally <sean.scally@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
closes LS-2984
flag = k5_parent_support
[fsc-timeout=45]
[fsc-max-nodes=20]
Test plan:
- Visit the k5 dashboard as an observer with several students
- Expect to see the observer picker
- Expect switching students to function normally
- Open a course and expect the selected student to remain selected
in the picker
- Open dashboard as a non-observer user and expect the picker to
be gone
Change-Id: I0f6aa230976b6929ceba7621c1ff34a400226340
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/284783
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
closes VICE-2505
flag=react_inbox
Test Plan:
1. Open the react inbox
2. Open Compose modal as an admin
3. Observe that the Journal Entry checkbox is not there
4. Select A student
5. observe that the Journal checkbox is still not there
6. Select the course in which the student belongs
7. The Checkbox should appear
8. Check the checkbox
9. Select a new teacher,TA,or Observer Recipient
10. The checkbox should be removed
11. Remove the teacher,ta,or observer recipient
12. The checkbox should re-appear unchecked
13. Select a Student group
14. the checkbox should remain
15. Click the CheckBox
16. send a message as a faculty note
17. Click "sent" scope and verify message is there
18. for each recipient
18 a. visit /users/[:recepient student id]/user_notes
18 b. verify the message you just sent shows
18.
Env Setup:
1. Have react inbox enabled
2. Have Faculty Journal Setting enabled
2a. This is enabled in the account permissions settings
Change-Id: I1601eaeb4d46b95c53afd4e7df115eaa582f7178
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285845
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
the planner used to rely on ENV.STUDENT_PLANNER_COURSES
it now makes a request to get dashboard_cards to
acquire the info it needs about the user's list of
courses.
closes LS-2919
flag=observer_picker
test plan:
AS A NOT K5 STUDENT
> expect the planner to load assignments
- click the + and add a note to the user
- click the + and add a note to a course
> expect both notes to be in the planner,
even after you refresh
- click the grades button
> expect grades to be loaded in the tray
- have a missing assignment, and click the
opportunities button
> expect the missing assignment(s) to show up
- dismiss one
> expect it to move to the dismissed tab
AS AN OBSERVER OF THIS STUDENT
- and another student
> expect the planner to load assignments
> expect the planner to show grades
> expect the planner to show opportunities
- Don't bother adding notes or dismissing
opportunities, those will eventually get
disabled.
- switch observed students
> expect the planner to update with new data
- switch to the card dashboar and expect it
to be correct
- refresh so the cards are the default, then
switch to the planner
- do ^that, but switch observees before switching
dashboard views
AS A K5 STUDENT
> expect the Homeroom to show the right data
- e.g. stuff due today and stuff missing
> expect the Schedule tab to show the right data
- e.g. assignments and missing items
AS AN OBSERVER OF A K5 STUDENT
- and another k5 student
> expect it to work as it always has
- switch observed student
> expect the dashboard to update with new data
- start from different default dashboards
and switch dashboard views or switch observees
then try the other way around.
AS AN ENROLLED STUDENT OBSERVING A STUDENT
> expect the dashboards to default to observing
the current user
- switch to observing your student
> expect the dashboards to reflect the new observee
- refresh
> expect to be observing the student by default
- switch to observing the observer
> expect the right stuff to happen
TURN OFF THE observer_picker FEATURE
> expect all dashboards to still work correctly
*** BONUS *****
> expect the initial queries for dashboard_cards,
missing_submissions, and planner/items
to be the result of the prefetch. On loading
the planner page, you should see only 1 copy
of the various requests until you start
interacting with the page
Change-Id: I5a2b1eb2fbc812bbf6ee0bb9c037f21ab99cb007
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/284754
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Most of the issues were due the component state is not updated when
the props change, this gets fixed reading the values directly from
the prop rather than the state but as the update callback takes some
time to reflect the changes, lets just sync the state with the props
Closes: LS-3011
flag= notification_settings_course_selector
test plan:
- With the Notification settings course selector flag enabled
- Go to the profile notification page and expect to see the “settings
for” dropdown
- Select a course and expect to see the table be updated with the
course settings
- Select another course and then select back the first course and
expect to see its settings in the table
Change-Id: I08569c9b5359dc7dd24ad53b7dc3d1b02672ba14
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285954
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jonathan Guardado <jonathan.guardado@instructure.com>
refs VICE-2505
flag=react_inbox
Test Plan:
1. Open React inbox with Networks tab open
2. Verify that the ADDRESS_BOOK_RECIPIENTS query is updated
3. Each userConnection node should have a commonCoursesConnection
Change-Id: Ie47ad35ffbd33eb33a0cb7c655150ae4c3c51435
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285909
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
closes LS-2987
flag = remember_settings_tab
Test plan:
- In course settings and then in account settings:
- Click between tabs
- Click the back button and expect tabs to change back
- Refresh the page and expect the selected tab to load again
Change-Id: I8d92d21d23084e24b384420d050e197e7152d2e9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285467
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
closes EVAL-2107
flag=assignments_2_student
Test plan:
- PreReqs:
- A student in a course with a Media Recordings assignment
- As a student, navigate to the assignment and select the Media
submission type
- Observe two panels seperated by divider
- Click left (Record) panel
- Observe the Upload Media modal opens with only the Record panel/tab
- Confirm recording media functions and can be submitted
- Close the modal and click the right (Upload) panel
- Observe the Upload Media modal opens with only the Computer panel/tab
- Confirm uploading media functions and can be submitted
Change-Id: If3fd4536b106d6c60b75266adb5bc22ecea0ce49
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285010
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Paulo Chaves <paulo.chaves@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
Test plan:
- Delete all filters
- With enhanced feature flag off
- Enable the assignment groups filter
- Select an assignment group filter value
- Then select "All Assignment Groups"
- Enable the module filter
- Select an assignment group filter value
- Then select "All Modules"
- Turn enhanced feature flag on
- Load gradebook
- There should be no filters
flag=enhanced_gradebook_filters
Fixes EVAL-2282
Change-Id: I3369a231901c85c6d8faba56a2ebfe0ad5802865
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285928
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eduardo Escobar <eduardo.escobar@instructure.com>
Reviewed-by: Paulo Chaves <paulo.chaves@instructure.com>
Reviewed-by: Syed Hussain <shussain@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
closes EVAL-2235
closes EVAL-2254
closes EVAL-2256
flag=none
test plan past due date:
- enable the feature flag “Score to ungraded“.
- create and publish a course with one teacher
and two students.
- create an assignment A1 with no due date.
- create an assignment A2 with a past due date.
- create an assignment A3 with a future due date.
- go to the gradebook page.
- click in the total dropdown menu and select the
"Score to ungraded option".
- in the modal choose "Only ungraded artifacts
that are past due".
- wait some seconds until the process finishes.
- refresh the page.
- notice that the only affected submissions are
those who belongs to the A2 assignment.
test plan excused:
- create three assignments A1, A2, A3.
- go to the gradebook page.
- Give a score to one of the students.
- click in the total dropdown menu and select the
"Score to ungraded option".
- in the modal put "EX" in the grade for ungraded
submissions input.
- wait some seconds until the process finishes.
- refresh the page.
- notice the ungraded submissions are marked as
excused, the previously graded submissions is
untouched.
test plan student group:
- create an assignment and check the option "This is
a Group Assignment", create a new group set with
the students splitted in two groups.
- go to the gradebook page.
- enable the student groups filter using the View
dropdown menu in gradebook.
- use the filter dropdown to select one of the
student groups.
- click in the total dropdown menu and select the
"Score to ungraded option".
- put some percentage for the grade input in the
modal and click on "Apply score".
- wait some seconds until the process finishes.
- refresh the page.
- notice the only affected submissions are those
that belongs to the selected student group.
Change-Id: I8d6197c28cceb512db442d0365aa8e39ff4402e5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/284965
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Syed Hussain <shussain@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
1. Show separate tags for each condition (not in named filter).
2. Shows tooltip with list of conditions when hovering over tag of
named filter.
Test plan:
- Create filter with some conditions
- Apply the filter
- Check that tags are shown for each condition
- Save the filter with a name
- Only one tag should show now for the filter
- Hover over the filter tag
- Each condition should show in the tooltip
- Dismiss a filter tag
- The filter should be disabled and not deleted
flag=enhanced_gradebook_filters
Closes EVAL-2265
Closes EVAL-2266
Change-Id: I68ae6d70187c40f03cdbf66c5688d7e842d5895a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285361
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
closes OUT-4974
flag=individual_outcome_rating_and_calculation
Test plan:
- Enable Improved Outcomes Management FF
- Enable Individual Outcome Rating and Calculation FF
- Disable Account Level Mastery Scales FF
- Go to Account > Outcomes
- Click on Create button
- In the Create modal change mastery points to 3, change calc
method to "n Number of Times" and set parameter to 5
- Verify that Final score in the example is 4.2
- Select and outcome and click on kebab menu -> Edit
- In the Edit modal change mastery points to 3, change calc
method to "n Number of Times" and set parameter to 5
- Verify that Final score in the example is 4.2
Change-Id: I5e96466a58eea01ee423b2f909950c24f64d7e31
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285731
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
closes OUT-5001
flag=individual_outcome_rating_and_calculation
Test plan:
- Enable Improved Outcomes Management FF
- Enable Individual Outcome Rating and Calculation FF
- Disable Account Level Mastery Scales FF
- Go to Account > Outcomes and click Create button
- Click on Create btn and in the Create modal select each
calculation method and verify that Example says:
-- "Item Scores:" and not "Example item scores:"
-- "Final Score:" and not "Example final score:"
- Select outcome, click kebab -> Edit, and in the Edit modal
select each calculation method and verify that Example says:
-- "Item Scores:" and not "Example item scores:"
-- "Final Score:" and not "Example final score:"
Change-Id: I239b6e7dc69a879b2208ab609e75cb8d5f7102d9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285853
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Ben Friedman <ben.friedman@instructure.com>
Closes MAT-638
flag=none
Test Plan:
1. Navigate to /courses/:id/question_banks and add
a new question bank
2. Add a multiple choice question to the bank and save
some bogus data
3. Hard refresh the page
4. Edit the multiple choice question
5. Hover your mouse over one of the answers and click the
pencil icon
6. Verify the RCE loads
7. Repeat steps 3 - 6 a few times. Make sure the RCE loads
each time. This is obviously not exaustive :)
8. Verify you can save changes to answers
Change-Id: I9a306ce7d3334ed691c108bffa33d8e81e287e63
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285692
Reviewed-by: Joe Hernandez <joe.hernandez@instructure.com>
QA-Review: Joe Hernandez <joe.hernandez@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes VICE-2572
flag=react_inbox
Test Plan:
- go to inbox with react ff on
- select a checkbox
- checkbox should be selected
- click the checkbox again
- checkbox should be deselected
Change-Id: Id80e0f0dbc510ae5576779ef1b301e8f15903839
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285837
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Classic quizzes and new quizzes are grouped together under Quizzes
heading in module requirements dropdown.
fixes LS-3007
flag = none
Test plan:
- Create a classic quiz and a new quiz and add to a module
- Open modules page, click edit module, click 'Add requirement',
click on dropdown of assignments
- Expect to see group heading 'Quizzes' with both quiz types listed
underneath
Change-Id: I68d0b99ba370cf642f6c2a8ef85cad57d5dfe7a9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285842
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
fixes VICE-2575
flag=react_inbox
Test plan
1. Open react inbox
2. Open the compose modal
3. Select a course
4. Verify that the course field is populated
Change-Id: I3b28cd0c87bd939706737b9be83c031f1c5c7c28
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285839
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Chawn Neal <chawn.neal@instructure.com>
QA-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
refs INTEROP-7087
flag=lti_platform_storage
why:
* part of the IMS LTI Platform Storage proposal
* allows tools to store and fetch data in canvas local storage, since
tool frame cookies and local storage is disabled in some browsers
test plan:
* send an lti.put_data postMessage with the correct subject, key, and
value
* in the dev tools Storage/Application tab, look in local storage and
see the key and value
* in platform_storage.js, change STORAGE_KEY_LIMIT to 1 (and rebuild
webpack if needed, I recommend keeping it running)
* send another postMessage with a different key
* note in the dev tools console that the received response message
has an error with code `storage_exhaustion` and a message
* send an lti.put_data postMessage with the first subject and key,
but no value
* look in local storage - that key and value should be gone
Change-Id: Ie06950b2ae6847ef0be6bb9d0a47ac1e1a9fe07e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274219
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
refs INTEROP-7087
flag=lti_platform_storage
why:
* part of the IMS LTI Platform Storage proposal
* allows tools to store and fetch data in canvas local storage, since
tool frame cookies and local storage is disabled in some browsers
test plan:
* send an lti.put_data postMessage with the correct subject, key, and
value
* in the dev tools Storage/Application tab, look in local storage and
see the key and value
* send an lti.get_data postMessage with the correct subject and key
* you should receive a postMessage with the key and value
Change-Id: Ib0f133f19f8bb3068e24155d39f544ac1b0428c9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274218
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
refs INTEROP-7087
flag=lti_platform_storage
why
* part of IMS LTI Platform Storage proposal
* will be used by LTI postMessages
* put limits on storage key count and size, partitioned by tool, as
defined by the Platform Storage spec
test plan
* specs
Change-Id: I3af9ad8487cccaf510826c50a2b6c478fda75110
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274217
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Evan Battaglia <ebattaglia@instructure.com>
QA-Review: Evan Battaglia <ebattaglia@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
fixes VICE-2435
Test Plan
1. Load a discussion in Legacy Discussions
2. Find a discussion ID (Hint: The ID is in the HTML)
3. Appnd #entry-NNNN (Your ID) to the URL and load
4. Expected: Page should auto scroll to entry when loaded
5. Now delete $entry-NNNN frmo the URL
6. Append /entry-NNNN and hit enter
7: Expected: Page should auto scroll to entry when loaded like Step 4
Change-Id: I74c661743a9b6cc1ada7292087282cd7293f1193
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285760
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
closes OUT-4991
flag=individual_outcome_rating_and_calculation
Test plan:
- Enable Improved Outcomes Management FF
- Enable Individual Outcome Rating and Calculation FF
- Disable Account Level Mastery Scales FF
- Go to Account > Outcomes
- Open Devtools and switch to mobile/responsive mode
- Select an outcome and expand its description
- Verify that calculation method display matches figma
mock referenced in ticket (i.e. wraps on two lines)
- Add global outcome to the account, select outcome via
TreeBrowser and click kebab menu -> Edit
- Verify that in the Edit modal calculation method
matches figma mock (i.e. wraps on two lines)
Change-Id: I9e2366c8fc9d102a210f64e6f7940a244cdd1e54
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285576
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Angela Gomba <angela.gomba@instructure.com>
Reviewed-by: Brian Watson <bwatson@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Ben Friedman <ben.friedman@instructure.com>
closes EVAL-2109
flag=assignments_2_student
test plan:
- Enable the "Assignment Enhancements - Student" feature flag
- Create an assignment with "File Uploads" selected
- As a student go to that assignment to submit a file
- Verify the background of the file upload component is grey
- Verify the "Drag file component is on the right" and has
a white background
- Verify the "Webcam Photo" and "Canvas File" components are
on the left and stacked
- After dropping/selecting a file verify the table background
is the same as the file upload component
Change-Id: I3b9c335a14cad85023c8ff1143a3489affde7289
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285243
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Syed Hussain <shussain@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
Changes anonymous student names (i.e. Student 1, Student 2) to be
consistent across pages/consistent regardless of teacher view
permissions or preferences.
flag=none
closes EVAL-2229
Test Plan:
1. Enroll at least 2 teachers in a course, each teaching a different
section. As an admin, go to one of the teacher's user page for the
course (/courses/:course_id/users/:id) and under the 'Privileges'
section, click "limit this user to only see fellow section users".
2. Create an assignment assigned to all students in the course, and
select "Graders cannot view student names".
3. As the teacher without section limitations, go to SpeedGrader for
the assignment. For each anonymous student, take note of the student
anonymous name (i.e. Student 1) and the corresponding anonymous_id
query param in the URL.
4. As the section-limited teacher, go to SpeedGrader for the assignment.
Verify that every student anonymous name + anonymous_id pair you see
matches the pair that the non-section-limited teacher saw.
Change-Id: Ia22813ef38b3378d7c38a8cb3f12b53c8c9b7d42
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/284822
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
Product-Review: Jody Sailor
closes OUT-4987
flag=individual_outcome_rating_and_calculation
Test plan:
- Enable Improved Outcomes Management FF
- Enable Individual Outcome Rating and Calculation FF
- Disable Account Level Mastery Scales FF
- Go to Account > Outcomes
- Open Create modal and using the tab button, tab to the
proficiency ratings component.
- Tab to the first rating's delete button and press the
enter key to remove the rating.
- Assert that the rating's delete button below the deleted
rating is focused.
- Tab to delete button of the second rating in the list and
press the enter key.
- Assert that the first rating's delete button is focused.
- Using the tab key, delete all ratings untils one rating is
left in the list.
- Asset that the element that is focused is the rating's points
input element.
- Tab to the + button and press enter to add a rating to the
list.
- Assert that the add rating button remains focused after adding
a rating to the ratings component.
- Repeat steps in Edit Outcome Modal.
- Repeat all steps at the Course context level.
Change-Id: I9e90298380ca4bf1d742d2b03e7fc5985c903ea7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285365
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Angela Gomba <angela.gomba@instructure.com>
Product-Review: Ben Friedman <ben.friedman@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
Reviewed-by: Angela Gomba <angela.gomba@instructure.com>
Refs LA-489
flag=responsive_layout
We can merge this once the responsive_layout feature flag is turned on
for everyone in prod. It removes any code path that was only for if the
feature flag was off
Test plan:
* go to accounts/self/settings
* the feature flag for responsive_layout should not be there anymore
* resize your page to small
* it should show the mobile layout
Change-Id: I2428f6368aa13a271d07cfaef18c12fa2bff2f3e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/220206
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Luis Oliveira <luis.oliveira@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
closes VICE-2506
flag=react_inbox
Test Plan:
1. Open react container
2. Verify that the URL displays the default inbox filter
3. Change Scope filter, verify url updates
4. Change Course filter, verify that url updates
5. Change the URL parameters
6. Verify that the filters change with the URL
7. Try to set filter to invalid filter
8. Verify that the default filter appears
Change-Id: I0ba46885c85564a58f7db67694bafa7679cfaa35
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285245
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
closes INTEROP-7279
* Currently, when editing a developer key, if something is set in a
placement-specific target_link_uri, but then it is removed, the
target_link_uri gets set to "". This can happen even if
target_link_uri is initially not present, but you put some text in
there and remove it. When the placement-specific target_link_uri is
"", the placement will not launch.
* Also, if you give a number for a placement-specific selection
width/height, and then get rid of it, the selection_width/height is
set to "" in the React state, and you'll get an error when trying to
save the dev key.
* This commit fixes the React components so, if the text edit boxes are
empty, the placement object won't have the keys at all, instead of
having an empty string.
* For keys which already have a empty string ("") placement-specific
target-link URI, this fixes the launch be treating that as nil.
Test plan:
- Before checking out this commit:
- ensure that you have an LTI 1.3 tool installed with a placement with
a placement-specific target_link_uri. The test tool by default does
this.
- Make sure you have jobs running (these copy the dev key changes to
ContextExternalTools)
- Edit the LTI Dev Key and empty out the edit box for the
target_link_uri for one of the placements. Try launching the tool
from the placement. it should crash.
- Check out this commit
- Try launching the tool from the placement. It should not crash: it
should launch using the URL for the tool.
- Edit the dev key. Fill in something in the empty placement-specific
target_link_uri and delete it. Save the key.
Then, look at the JSON for the dev key (in a console, or just edit it
again and look at the JSON in the UI). Instead of the blank string it
should not have a "target_link_uri" set.
- Edit the tool again. Put in a value for selection height and selection
width for one of the placements, then delete one of these two values
before saving. It should save successfully. After saving, look back at
the JSON. The selection height or width value you kept should be set,
whereas the one you deleted should not be in the JSON hash at all.
Change-Id: Ib1a5cde7ad398310e5cc8b705cf90e539a9d92c7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285325
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Xander Moffatt <xmoffatt@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes VICE-2527
flag=react_inbox
test plan:
- Specs pass
- Go to a Course -> Grade and leave submission comments to a student.
- Login as the student and go answer back to the teacher
(in the same place).
- Login back as teacher and go to Inbox and click on the
scope Submission Comments.
- The threads should show on the left pane with a preview.
qa risk: low
Change-Id: Ic90b47a06b99e55c5eee3ffd813d45106efcabb6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285329
Reviewed-by: Jason Gillett <jason.gillett@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
getSubmissions needs refactoring to be more efficient. Until then
this removes our needless calling of the function when there
are no submission-related enhanced filters.
Test plan:
- Ensure there are no enhanced filters by submission status
- Create a course with many assignments
- Horizontally scroll the SlickGrid to the right
- It should not freeze
flag=none
Refs EVAL-2276
Change-Id: Ic2e63a50248900c6af4d83075dba1670162c752b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285566
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
Reviewed-by: Syed Hussain <shussain@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>