fixes EVAL-2105
flag=none
test plan:
- have a course with some students and one assignment.
- enable the feature flag "Comment Library".
- go to the speed grader for the created assignment.
- select he comment library option.
- create at least 30 comments in the comment library.
- scroll down the list and double click on a selected
comment.
- notice that when pasted it is the right comment that
was selected.
Change-Id: Id184a5d65cc94a3b98fceda7d30159ba62252f25
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282954
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jody Sailor
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
Reviewed-by: Syed Hussain <shussain@instructure.com>
Closes MAT-606
flag=none
Test Plan:
- Create a page in a course and check the "add to student todo"
checkbox when saving. Choose some future date.
- Create a module in the course that requires completing
all module items
- Add the page as a module item
> Log in as the student and verify you see a calendar
event for the page
- As a student view the page and mark it as complete
> Navigate back to the calendar and verify the associated
event now has a strikethough style
Change-Id: Ie12df5a7d6ab25ebca201a949c8d31e229d4de23
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282707
Product-Review: David Lyons <lyons@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jake Oeding <jake.oeding@instructure.com>
Reviewed-by: Joe Hernandez <joe.hernandez@instructure.com>
QA-Review: Joe Hernandez <joe.hernandez@instructure.com>
fixes VICE-2422
flag=discussion_anonymity
flag=partial_anonymity
test plan:
- do the steps in this video: https://share.getcloudapp.com/geud459d
Change-Id: I329166139acdb0521f83a54a00c3abbcec41d0e3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283119
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: Jason Gillett <jason.gillett@instructure.com>
closes VICE-2417
flag=react_discussions_post
test plan:
- Specs pass
- Go to a discussion
- Delete a reply
- Notice that you aren't able to tab
thru it and doesn't have a tooltip.
qa risk: low
Change-Id: I1ac2694df57bfc25cf81e486706f49314637a3fb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283113
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
fixes VICE-2416
flag=react_discussions_post
flag=discussion_anonymity
since the reply optimistic
response does not know the id,
do not display the id for its author info
test plan:
- as a student, visit an anonymous discussion
- type a response and submit
- the immediate thing you see in your response should be
Anonymous (You) , no longer Anonymous current_user (You)
NOTE: this will eventually be replaced by the real server response
where it says Anonymous [whatever the id is] (You)
Change-Id: Ia962cf0d18130e437ff779c8e24ecc1cbe32d2ff
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283112
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 EVAL-2114
flag=assignments_2_student
Test Plan:
With the FF ON:
1. As a teacher, create a group assignment with a few students
2. As a student, make a submission and leave a comment on the
submission
3. View the assignment in the speedgrader
4. Teacher should see the student's comment on the group assignment
5. Ensure that the message that all comments are sent to the whole
group shows up only for group assignment
5. Repeat steps for a regular assignment
Change-Id: I38f3f60f9acca08ad809b072dc283237ecc06dd9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282328
Reviewed-by: Eduardo Escobar <eduardo.escobar@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Jody Sailor
closes VICE-2409
flag=discussion_anonymity
test plan:
- Specs pass
- Go to an Anonymous Discussion.
- Edit it, change anything on it.
- Save it. It should save without issue and go back to the topic.
qa risk: low
Change-Id: I69295d74fd304451ccbaa7c11ffeec90715e0ef6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283106
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Chawn Neal <chawn.neal@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
closes OUT-4811
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
- Select an Outcome and click on Kebab menu -> Edit
- Verify that in the Edit Modal there is a form for
selecting proficiency ratings
- Click on + button to add a proficiency but do not
enter description
- Verify that error message appears below the description
field and that Save button becomes disabled
- Enter description
- Verify that error message disappers and that Save button
becomes enabled
- Repeat the above 4 steps this time creating a rating
with description but without points
- Click on Save button and verify that the outcome is
updated with the selected proficiency ratings
(view response to graphql mutation in devTools -> Network)
- Go to Account > Course
- Add an Account level outcome to the course, select that
outcome via Tree Browser and click Kebab menu -> Edit
- Verify that in the Edit Modal the proficiency ratings
are displayed but cannot be changed
- Disable Individual Outcome Rating and Calculation FF
- Enable Account Level Mastery Scales FF
- Go to Account > Outcomes
- Select an Outcome and click on Kebab menu -> Edit
- Verify that in the Edit Modal there is no form for
selecting proficiency ratings
Change-Id: Id2b7d4b46b84931db02606f84858517f2139a3b8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281523
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Marcus Pompeu <marcus.pompeu@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
QA-Review: Chrystal Langston <chrystal.langston@instructure.com>
This allows us to move forward with more speed and confidence
as we refactor and split out the file.
activateTooltips & activateKeyClicks imports were removed, as they
are already loaded in ui/index.
Test plan:
- All automated tests pass
Refs EVAL-2190
flag=none
Change-Id: Ic54b988c87d4b161bd61172afa4e0f63e8543df9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282901
Product-Review: Syed Hussain <shussain@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Eduardo Escobar <eduardo.escobar@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
fixes MAT-245
flag=none
test plan
- Create a wiki page with a long content.
It's suggested more than 3-screens size text.
- Using HTML editor, add an id to an element in
the middle of the content.
Ex. <div id="test"></div>
- Save it.
- Create another wiki page.
- Create a link inside the page linking to the
previous page and using id.
Ex. href="/courses/1/pages/page#test"
- Save it.
- On wiki page preview click the link.
> Verify that the page navigate to the 1st page
and positions the viewport starting from
the element with the given id.
> Verify this with the supported browsers.
Specifically Chrome and Safari.
Change-Id: I2f4fb02b0e98b534f3851c019f0ea71a65835484
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282953
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Juan Chavez <juan.chavez@instructure.com>
closes LS-2891
flag=pace_plans
test plan:
- in a course with a pace plan
- in settings, set Participation to "Course" and enter dates
- go to pace plans and click Show Projections, uncheck
Required Completion... checkbox if checked
> expect the caption under End Date to say
"Required by course end date"
- create a term if you don't have one
- see /accounts/:id/terms
- from course settings, set Term to be a term with an end date
- go to pace plans and click Show Projections
> expect the caption under End Date to say
"Required by term end date"
- check Require Completion by Specified End Date
> expect the caption to say
"Required by specified end date
Change-Id: I132188385976e5d27142b472dfb3b5465aa803c7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282876
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes VICE-2410
flag=partial_anonymity
Test Plan:
- turn on redesign, anonymity and partial anonymit ff
- go to a partially anonymous discussion
- create an anonymous reply as a student
- edit the reply
> should not see anonymous response selector
Change-Id: I3cf2d4d896d8dcfa5a8687e9dae35489c3e90a8d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283030
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
closes VICE-2411
flag=partial_anonymity
Test Plan:
- turn on redesign, anonymity and partial anonymity ff
- go to a partially anonymous discussion
- create an anonymous reply as a student
> focus should not be cut off for dropdown selector
Change-Id: I400590d3970f2e9196cab55cd0f46f12cccc8b0e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283035
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Chawn Neal <chawn.neal@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
closes VICE-2412
flag=partial_anonymity
Test Plan:
- turn on redesign, anonymity and partial anonymity ff
- go to a partially anonymous discussion
- as a student:
> should see anonymous avatar without blue border
Change-Id: I5773c39f2b82ec0f27e97f24d85706e73ee3cb25
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283038
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
closes VICE-2153
flag=react_inbox
test plan:
- Specs pass
- Go to Inbox
- Click on the compose icon
- You should be able to select To using the AddressBook
- Send a message
- Make sure selected users received the message
qa risk: low
Change-Id: Ie070548e8765fabacfaf664a69e257e275f4e04a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283015
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeffrey Johnson <jeffrey.johnson@instructure.com>
Product-Review: Jeffrey Johnson <jeffrey.johnson@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
closes MAT-497
flag=none
test plan:
- Edit a wiki page
- Embed a Studio video in RCE
> Verify in HTML view that the iframe
contains lti-embed class
- Save wiki page
- Open wiki page preview
- With browser dev tools, adjust the screen
width to < 320px
> Verify that the page padding is removed for
LTI iframe
> Verify that the iframe width fills the page
> Verify that you can horizontally scroll
inside iframe. With this we need to make sure
that no content is cut, for example: audio
scroll controls
Change-Id: Id420208deb9161741748fccec6fafe336e435859
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282817
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob DeWar <jacob.dewar@instructure.com>
QA-Review: Jacob DeWar <jacob.dewar@instructure.com>
Product-Review: David Lyons <lyons@instructure.com>
closes LS-2933
flag=none
test plan:
- on a course setings page
- set Participation to Course
- tab into Start date input
- press down arrow
> expect the calendar to pop open
- press more down and up arrows
> expect the highlighted date to move accordingly
- hit Enter
> expect the calendar to close and the value to be set
- hit Enter again (w/o navigation away)
> expect the form to get submitted
> expect the date to be what was set when the page reloads
- go to the course pace plans page
- click on Show Projections
- tab to the start date input
- start typing
> expect the calendar to pop open
> expect arrow keys to navigate around in the month
- type Enter
> expect the calendar to close and show the selected date
- tab away
> expect the date value to remain
Change-Id: I3b1359027af998be2f9cb986b8f680a8f93b936b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282802
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: Ed Schiebel <eschiebel@instructure.com>
This commit displays all dates in pace_plans in its course timezone.
It required a couple changes to some of our date-time handling
utilities so we could specify a timezone.
closes LS-2938
flag=pace_plans
test plan:
- put your course in different timezone
- in a course with a pace plan, do to /courses/:id/pace_plans
- open projected dates
- play around in the start date input
- type in a new date
- pick a new date in the calendar
> expect the date shown in the textbox to reflect
what you entered or picked
> expect the calendar to highlight the right date
when you pop it open
- try a couple timezones, some +hours, some -hours
> expect DateInputs elsewhere in canvas still work
- there's one in the student planner +todo item tray
Change-Id: I117b5553ffc8f076ef2143dd4d6d25f809eddb7f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282536
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: Ed Schiebel <eschiebel@instructure.com>
closes OUT-4831
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 and verify that in the Create
Modal there is a form for creating ratings with + button
- Click on + button and create a new rating with description
but without points
- Verify that error message appears below the points
field and that the Create button gets disabled
- Enter points and verify that error message disappers
and that Create button becomes enabled
- Click on Create button and verify that an outcome is
created with the selected ratings (devTools -> Network
-> view response to graphql mutation)
- Disable Individual Outcome Rating and Calculation FF
- Enable Account Level Mastery Scales FF
- Click on Create button
- Verify that in the Create Modal there is no form for
creating individual ratings
Change-Id: Ic450633451596f633eed028c3e610822e055d71b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281431
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Manoel Quirino <manoel.quirino@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Test plan:
- Enable enhanced_gradebook_filters flag
- Create a filter in Gradebook
- Rename the filter
- Upon both cancelling or completing a rename the focus
should transfer to the rename button
- Add a few filter conditions
- Upon deleting a not-first filter the focus should transfer to
the delete button of the previous condition
- Upon deleting the first filter the focus should transfer to
the rename filter button
Closes EVAL-2097
Closes EVAL-2098
flag=enhanced_gradebook_filters
Change-Id: I5791587a2ca3b1e5963f236a523c765b6f298044
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282699
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Eduardo Escobar <eduardo.escobar@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
Product-Review: Syed Hussain <shussain@instructure.com>
closes EVAL-2156
flag=enhanced_gradebook_filters
Test Plan:
1. Enable Gradebook Enhanced Filters and create some GradebookFilter
objects in a rails console:
GradebookFilter.create!(
course_id: 1,
user_id: 1,
name: "my filter",
payload: { some: "data" }
)
2. Go to Gradebook. Click on the 'Filters' button and verify your
filters are shown.
3. Go to the
ui/features/gradebook/react/default_gradebook/hooks/useFilters.js
file and change the `path` so that it starts with '/api2' instead of
'/api' (we're doing this so that the request will fail). Then, load
gradebook and verify you see an error message stating that gradebook
filters failed to load.
Change-Id: I468093165f624fb0a5cbbf3bbf7fcd562ae3b286
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282201
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jody Sailor
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Eduardo Escobar <eduardo.escobar@instructure.com>
* Show spinner after refresh when there is outcomes import running
or queued
* Show spinners to child groups when importing all outcomes from
a group
closes OUT-4747
flag=none
Test plan:
* Setup
Open app/graphql/mutations/import_outcomes.rb, set "sleep 60"
or a bigger value to the first line of "def execute" function
on line 120
* Repeat for Course and Account
* Group Import
- Open Find Outcomes modal
- Select a group which child groups and click in
import all outcomes
- Assert the spinners appear in the not imported outcomes
- Select the child group and assert the spinners appear like
prev line
- Refresh the page, Go to find outcomes modal, open same folder
and assert the same (spinners appear for the folder and child
folder)
- Wait for import completation and assert both parent folder and
child folder has "Add all outcomes" button disabled
- Assert the modal message appear saying the import has finished
- Outcome Import
- Open Find Outcomes modal
- Select an outcome and click import
- Assert the spinner appear in the outcome
- Refresh the page, and assert spinner still appear
- Wait for import completation and assert "Add outcome" button
got disabled
Change-Id: I04946d71359bfdcc1ce3279dfaefca58321542c6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281428
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Chrystal Langston <chrystal.langston@instructure.com>
QA-Review: Chrystal Langston <chrystal.langston@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
The picker makes more sense in the header once we start showing it
across dashboard views.
closes LS-2932
flag = observer_picker
Test plan:
- With observer_picker flag disabled, open the dashboard and expect
no observer picker
- With the flag enabled, open the dashboard as an observer of
multuple studnets and expect to see the picker in the header
(next to the options menu button)
- Switch the student selected and expect cards to update (note: the
picker will appear in 'Recent Activity' view but will not affect
views besides card view)
- Open dashboard as a non-observer and expect to not see picker
Change-Id: I4692377b8763547ac1d68951f208f747315d467c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282673
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
closes VICE-2402
flag=none
test plan:
- Specs pass
- Within the course, navigate to a group that
has no students assigned to it.
- On the kebab, select the option to “Message All Unassigned Students”
and type a message and send it.
- Act as a student in that group set, view the message.
It shouldn't be wrapped by JSON.
qa risk: low
Change-Id: I5d473e419ad7d87e2f127b3b8d1999d14f152403
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282789
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Chawn Neal <chawn.neal@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
fixes FOO-563
flag = none
Test plan:
• Create a custom course role
• Enroll the user in a course with the custom role
• From the people tab, click on the user name of the user you just
enrolled
• Verify the user's role is labeled as the custom role name
• Click the User Account Details button
• Verify the user's role is labeled as the custom role name
• Navigat to the course's default section page
• /courses/<id>/sections/<default_section_id>
• Verify the user's role is labeled as the custom role name
Change-Id: I6565971b4525afa50bdfcdcf3a87ac8964393274
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282785
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
refs VICE-2359
flag=partial_anonymity
Test Plan:
- turn on redesign, anonymity, and partial anonymity ff
- as a student go to a partially anonymous discussion
- reply as anonymous
> should show as an anonymous reply
- reply as not anonymous
> should show as not anonymous
Change-Id: If5a3b3d0f47d67be6d252678920b335ff17b8316
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282371
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>
Selenium tests will be added later on for this process.
closes VICE-2367
flag=react_discussions_post
flag=discussion_anonymity
flag=partial_anonymity
test plan:
- Specs pass
- Make sure the course you are going to tests has
this two student settings enabled:
Create discussion topics
Create anonymous discussion topics
1. Go to the course as student
2. Create a discussion
3. When selecting partial anonymity, the selector should be shown
4. Create it with Show to everyone. Make sure the author is shown
5. Repeat the steps 1-3
6. Select Hide from everyone. Make sure the author is anonymous
qa risk: low
Change-Id: I34c836883968a2049d9b352caf120e8bec5220bd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282666
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Jeffrey Johnson <jeffrey.johnson@instructure.com>
Reviewed-by: Jeffrey Johnson <jeffrey.johnson@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Uses strings for Gradebook settings booleans
Test plan:
- Repeat the following with enhanced_gradebook_filters on and off
- Change the following settings in Gradebook
- show_concluded_enrollments
- show_inactive_enrollments
- show_unpublished_assignments
- show_separate_first_last_names
- view_ungraded_as_zero
- These should successfully save and be reflected on reload
flag=enhanced_gradebook_filters
Closes EVAL-2145
Change-Id: I4bdf6be890b914a8ed6fd436114dcefa689fdad9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282208
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
Product-Review: Jody Sailor
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
This scope was erroneously left as `*` before; this corrects that.
flag=none
Change-Id: I10a8ff2557ba2cb77e28ca9a306ecd0d946a5195
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282680
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
Product-Review: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
fixes INTEROP-6572
The problem is that certain places in the UI flow call store.reset().
Before we kick off fetching of the list of tools, we check the store's
state's isLoading and isLoaded to make sure we don't fetch multiple
times. However, store.reset() resets the isLoading and isLoaded. When
the JSON requests/responses are interwoven with resets, we can have
multiple responses concatenating the tools multipe times. Example:
store reset, externalTools = []
XHR request (lti_apps) 1 made
store reset, externalTools = []
XHR request (lti_apps) 2 made
XHR response 1 received; externalTools = [a, b, c]
XHR response 2 received; externalTools = [a, b, c, a, b, c]
The most common call to reset() is when showing the App Center grid of
tools (see ExternalAppsStore.reset() in AppCenterStore.js). reset() is
also called when adding or editing a tool, but it is hard to do that
multiple times quickly before the lti_apps endpoint can return. Also
note that the list of tools seems to be cached because the lti_apps
endpoint can return a 304 (no new content), so initial requests to fetch
the list of tools are usually quicker.
I believe the other usages of $.ajax() in ExternalAppsStore are OK to
leave as-is. They are only things relating to one item (tool), and the
changes we might want to try to attempt anyway. And, importantly, they
don't concatenate to the list of tools as a successful retrieval of the
tools does.
This also fixes a mostly unrelated-bug where we were calling
store.fetch() without a store.reset() upon LTI 1.1 tool addition
failure, which again was causing us to show all the tools duplicated.
Test Plan:
- First, make sure you can repro the problem from the Account or Course
Settings page. There are two ways:
- Easiest: Go to the "Apps" tab and place your cursor over "View App
Configurations"/"View App Center". Click your mouse button rapidly
so it goes between to two (App center, and Configurations list) as
fast as possible. There should then be duplicates.
- More in line with Mysti's "switch tabs" way: edit the #index method
in app/controllers/lti/lti_apps_controller.rb and add a "sleep 3"
(e.g.). On the Apps tab, make sure it shows the App Center logos
grid, not the installed tools list. Switch back and forth between
the Apps tabs and another tab as quick as possible. This will force
multiple reloads of the App Center. Then click "View App
Configurations" and wait a few seconds. Duplicates should start
appearing.
- Make sure that you cannot repro the bug after checking out this commit
and building assets.
- For the second bug, also make sure you can repro it before and not
after this commit:
- Try to add an LTI 1.1 tool with no shared secrets (e.g. using Manual
Entry when adding the tool).
- Both before and after this commit, it should fail. But before this
commit, it will also duplicate the currently-shown list of
already-installed apps.
Change-Id: Ia99a7e46b895807822a0b430e2878c7ffe4ac848
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282586
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: Evan Battaglia <ebattaglia@instructure.com>
refs VICE-2359
flag=partial_anonymity
Test Plan:
- turn on redesign, anonymity, and partial anonymity ff
- anonymous response selector should only show if a user
> user doesn't have Teacher, TA, or Desiner
> topic is partially or fully anonymous
> user should only be able to use the dropdown if partially anonymous
Change-Id: I8d20f0184f941d6fddc4a649996c8f89958ef7ce
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282360
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeffrey Johnson <jeffrey.johnson@instructure.com>
Product-Review: Jeffrey Johnson <jeffrey.johnson@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Fixed up a few missed cases of not referencing the correct
expiry attribute on the access token. We need to reference
permanent_expires_at instead of expires_at since our change
to adding a permanently expired at tokens column vs the original
tokens that had expired in need of a refresh.
fixes FOO-2574
flag = none
test plan:
• Navigate to /profile/settings
• Generate a new access token with an expiry
• After generating the token ensure the expiry is visible
in-line and when clicking on the access token details
• Refresh the page and verify the same behavior as above
• Verify access tokens with no expiry still function as they
did before
• Verify regenerated access tokens display the exiry in
Access Token Details
Please enter the commit message for your changes. Lines starting
Change-Id: I160d7f6cdcdd4119f68c438a19fd32d9d0046c2c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282554
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ben Rinaca <brinaca@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
AnonymousAvatar needs to be on shared because it will be used by two
different modules (discussion_topics_post and discussion_topic_edit).
AnonymousPostSelector needs to be on discussion_topic_edit.
refs VICE-2367
flag=react_discussions_post
flag=discussion_anonymity
test plan:
- Specs pass
- Cursory testing of Anonymous Discussions
qa risk: low
Change-Id: I0b805b9022eaa212415db7f4d032108c1a8b92a8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282642
Reviewed-by: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Chawn Neal <chawn.neal@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jason Gillett <jason.gillett@instructure.com>
closes INTEROP-7088
flag=none
why
* screen reader alerts are already supported, so why not visible ones
* Clay made a Github PR for it:
https://github.com/instructure/canvas-lms/pull/1933
* slight difference from the PR: instead of adding another db query and
piping the tool name through the LTI Launch model, just use the
link_text attribute that's already present
test plan:
* using the api docs, and the 1.3 test tool, send
a "lti.showAlert" postMessage to Canvas
* an alert should show that contains the tool's name
Change-Id: Ia000f679b90893a3ea1e00866c5998f383858be9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273938
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Alexandre Trindade <alexandre.trindade@instructure.com>
QA-Review: Alexandre Trindade <alexandre.trindade@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
If an outcome is selected then removed using the outcome kebab menu
(not the bulk remove button), the selected outcomes popover should
be updated.
closes OUT-4778
flag=improved_outcomes_management
test plan:
- Turn on FF
- Navigate to a course with a group containing several outcomes
- Click on a group with outcomes
- Click on the check box next to 2 outcomes to select
- Notice that the outcomes popover text reads 2 Outcomes Selected
- Click on the kebab menu next to the first outcome selected
- Click Remove
- In Remove Outcome Modal, click Remove Outcome button
- Notice that the outcomes popover text updates to 1 Outcome
Selected
- Click on the 1 Outcome Selected text to ensure the outcome is
not listed as selected
- Repeat steps for the second outcome selected
- Notice that the outcome popover text updates to 0 Outcomes
Selected
- Repeat all steps in Account context
Change-Id: I2467ab134dc161d8f82d1e37e3529af7aa703da4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282558
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Brian Watson <bwatson@instructure.com>
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
QA-Review: Martin Yosifov <martin.yosifov@instructure.com>
Product-Review: Ben Friedman <ben.friedman@instructure.com>
fixes INTEROP-7236
Test plan:
- go to /accounts/1/settings#tab-tools
- Text "See some LTI tools that work great with Canvas" should link to
EduAppCenter
- "Links to external site" icon should be visible to the right of the
text, instead of to the left. This was a by-product of me fixing the
link, but I believe is correct anyway, evidenced by usage on
Wikipedia, and the fact that we are using the same
<Link>/IconExternalLinkLine usage in another part of Canvas
(UrlEntry.js)
Change-Id: I509f24073347e4ffd02ec19fb78c330943c381aa
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282481
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: Evan Battaglia <ebattaglia@instructure.com>
Pass the current (not the initial) observed user into the planner
for initialization - sometimes the planner isn't initialized
immediately, so pass the current user. Also decide whether the user
is observer based off the observer list instead of role (the role
may call a user an observer even if they're not linked to any
student).
closes LS-2913
flag = none
Test plan:
- Create a user with the following enrollments (and no extra ones):
- Teacher in any active course
- Student in an active k5 course
- Observer who is not linked to any student in an active k5 course
- Visit the dashboard and expect the schedule tab to work as normal
- Visit the course where enrolled as a student and expect the
schedule tab to work there
Change-Id: If0067ee3f51d2b554dab934fcbfb4f4a70bcfad5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282298
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>
flag=react_discussion_design
fixes VICE-2110
Test Plan:
1) Create a new entry and add an attachment.
2) the new entry should show an attachment.
3) Edit an existing entry, and add an attachent.
4) the entry should now show an attachment.
Implemented:
- add fileId to updateDiscussionEntryMutation FE.
- only allows one file upload.
- toggles Attach vs filename.
- can remove file attachment.
- uses file_upload api.
Not Implemented yet:
- does not implement optomistic response.
- does not save with draft feature.
Change-Id: Ie3afc3dfcb8397aaad5954410ace74b2665f51a2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281438
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeffrey Johnson <jeffrey.johnson@instructure.com>
QA-Review: Jeffrey Johnson <jeffrey.johnson@instructure.com>
Product-Review: Jeffrey Johnson <jeffrey.johnson@instructure.com>
The date input for projected start and end are not fully
keyboard accessible, but there's a ticket for that
closes LS-2837
flag=pace_plans
test plan:
- go to /courses/:id/pace_plans in a course with a pace plan
- using only the keyboard, navigate around the page
> expect it all works as expected
- expecially make sure you change an assignment duration using
arrow keys or typing in a new valuee
> expect focus to stay on the number input as you change duration
> don't expect focus to stay on the cancel or publish buttons unless
you've merged LS-2937
Change-Id: I1a9c19c3fde22d97cdff686f97784b7aef674503
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282377
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: Ed Schiebel <eschiebel@instructure.com>
before, because the buttons were rendered differently whether there
was a tooltip or not, focus was lost after cancelling or publishing
a plan. this change always renders the tooltip so the footer's DOM
remains the same, but disables the tooltip if it's not necessary
closes LS-2937
flag=pace_plans
test plan:
- in a course with a pace plan, go to the pace plan page
- hover or focus on Cancel or Publish
> expect a tooltip telling you you can't
> expect a screenreader to read the tooltip
- click the button
> expect nothing to happen
> expect focus to remain on the button
- change something in the plan
- hover or focus on Cancel or Publish
> expect no tooltip
> expect a screenreader to only tell you you're on
the button
- click the button
> expect the action to take place
> expect focus to stay on the button
Change-Id: Ibe4c0e6b1cdbf919f97a1617417c706fef464117
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282269
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: Ed Schiebel <eschiebel@instructure.com>
refs VICE-2359
flag=partial_anonymity
Test Plan:
- turn on redesign, anonymity, and partial anonymity ff
- as a student go to reply to a partially anonymous discussion
> should see anonymous reply selector
- if you have an avatar set
> should see avatar for non anonymous option
- if you have no avatar set
> should see initials
Change-Id: I9c050311ae8e578276f56d8c08951793e8408518
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282358
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>
closes EVAL-2113
flag=assignments_2_student
Test Plan:
Things to look for during QA (Badge for unread comments, button text
either "Add Comment" or "View Feedback", grade)
With the flag enabled:
1. As a teacher, create a non-digital assignment (e.g. No Submission)
2. As a student, goto the assignment and see that "Add Comment" button is
available and you can add a comment
3. As the teacher, add a comment to the assignment using Speedgrader
4. As the student:
- when you go to the assignment, the feedback tray should open by default
and you should see the teacher's comment
- Refresh the page and you should see the "View Feedback" button
5. As the teacher, grade the assignment
6. As the student, Offline Score should be visible beside the feedback
button
7. Repeat steps 1 - 6 for another Online (e.g. Text Entry) assignment
Change-Id: I51401d0b0f351543c7e93df7eef4a65f8d3b5099
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282180
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Shafovaloff <ashafovaloff@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Jody Sailor
closes OUT-4780
flag=improved_outcomes_management
Test plan:
- Enable Improved Outcomes Management FF
- Enable Account Level Mastery Scales FF
- Go to Outcomes > Account
- Select outcome group with outcomes via TreeBrowser
- Select few outcomes and click Outcomes Selected footer link
- Verify that \/ of the popup points to the outcomes/bullseye
icon and not to the Outcomes Selected footer link
- Resize browser to mobile view and click Add -> Find
- Select Account Standards via Group Selector
- Verify that there is no space between Account Standards
and the horizontal separator below
Change-Id: I3ffa5f659d73f4f8772910a4eb5077b3040f535e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282301
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@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 VICE-2387
flag=react_discussions_post
flag=discussion_anonymity
test plan:
- Specs pass
- Go to an anonymous discussion topic.
- As a teacher, reply to the anonymous discussion.
- The author info should show after creating the entry.
qa risk: low
Change-Id: I306d32ad640a5c2371e182f76fd4f912790e2303
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282283
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Caleb Guanzon <cguanzon@instructure.com>
closes FOO-2638
flag = granular_permissions_manage_lti
Test plan:
• At the root account level, enable the feature flag for:
"managing LTI tools in Account or Course contexts"
• Navigate to `accounts/self/permissions`
• Search for "Manage LTI"
• Select the grouped granular permission
• Verify the popout menu to the right correctly and accurately
describes what each granular permission is responsible for and
any additional considerations
Change-Id: I7f38a89ec27f420a036a68a332f73ab8f479babe
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282350
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: August Thornton <august@instructure.com>