Commit Graph

2992 Commits

Author SHA1 Message Date
Michael Brewer-Davis b8b6515dbf fix assigning zero scores
closes QO-463

Test plan:
Create/take quiz
In Speedgrader
- attempt to give individual questions
  scores of 0
- reload page
- verify that 0 score is saved
Repeat in quiz moderate page

Change-Id: I06833fbf0955e3c71aaa74344b57e82900505798
Reviewed-on: https://gerrit.instructure.com/176960
Reviewed-by: Rob Orton <rob@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Tested-by: Jenkins
QA-Review: Gentry Beckmann <gbeckmann@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
2019-01-05 21:28:05 +00:00
Rex Fleischer e02dd896c6 render context module children on update
fixes: ADMIN-2304

Test-Plan:
- create new course
- create module in course
- create assignment in module
- ensure module and assignment are not published
- click publish on the module
- make sure the module and assignment show as published

Change-Id: I10f4cf7b3ce1f088b67e023dabd16471c170de2d
Reviewed-on: https://gerrit.instructure.com/176149
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2018-12-20 16:35:40 +00:00
Adrian Packel 7101a0bd40 Reenable anon plagiarism in SG for Turnitin
For assignments using Turnitin (but not Vericite), re-enable the
SpeedGrader link to the similarity report and the resubmit button even
for assignments that are currently anonymizing.

closes GRADE-1883

Test plan:
- Create an anonymous assignment (with or without file submissions;
  see creation steps below)
- In a Rails console, create some OriginalityReport objects for multiple
  submissions (see below)
  - Give at least one a valid score and workflow_state of 'scored'
    - Maybe enter a value for originality_report_url for one of them
  - Give at least one a workflow_state of 'error'
    - (or use "pending", in which case leave the score blank)
  - If your assignment involves file submissions, ensure each report's
    attachment_id matches an existent attachment
- Open these submissions in SpeedGrader and check the following:
  - For 'scored' reports, you should see a clickable similarity score
    that links to a URL of the form:
    - .../anonymous_submissions/3oPSs/originality_report/asset_id
      (asset_id will be, e.g., submission_34 or attachment_999)
    - Visiting that URL should take you to the report's custom URL
      if defined, or else return you to SpeedGrader saying that
      a report couldn't be found (which is expected since our data
      is made up)
  - For 'pending'/'error' reports, you should see an error icon that
    reveals a 'Resubmit' button when clicked
    - Clicking 'Resubmit' should make a request to a URL
      of the form (you can check this in your logs):
      .../anonymous_submissions/3oPSs/turnitin/resubmit
    - This should then redirect you to the submission in SpeedGrader
- Unmute the assignment
  - The above URLs should now be in the familiar
    'submissions/<submission ID>' form, but work identically
  - The one change should be that the above links redirect you to the
    submission details page instead of SpeedGrader

APPENDIX: Creating Turnitin originality data:
For a given submission:
  > submission.originality_reports.create!(
      workflow_state; 'scored', # or 'error' or 'pending'
      originality_score: 88.0, # 0 = bad, 100 = great
      originality_report_url: <a custom URL if desired>
      attachment_id: <specific attachment ID or nil>
    )
If your assignment involves submitting files, you will need to specify a
valid attachment ID for attachment_id; otherwise, leave it blank.

APPENDIX 2: A note on Turnitin
It is also possible to set up an LTI-based assignment that uses Turnitin
but this is not strictly required to view originality scores, and
furthermore this author was not sure how to configure it (beyond the
directions given in Confluence) to result in anything other than an
error when opening it, apparently because we were trying to pass a
context_id that was already in use.

Change-Id: Ibf14e6c83e77516ae34d2dde409b623e693d5677
Reviewed-on: https://gerrit.instructure.com/175816
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
Tested-by: Jenkins
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-12-19 19:38:55 +00:00
Michael Brewer-Davis abc54925e1 internationalize numbers in quizzes speedgrader
fixes QO-440

Test plan:
As a teacher, create a quiz
  - ensure that at least one question has a
    decimal point value
As a student, take the quiz
As a teacher, visit the speedgrader page
  for the quiz
  - ensure that changing point values and
    fudge points works as expected
  - ensure page elements are updated correctly
  - ensure that values are saved correctly
As the teacher, change your preferred language
  to one that uses a different format for
  decimal numbers (e.g., French)
Visit the speedgrader page again
  - ensure... as above

Change-Id: I996f0380cb991833a7b3943c6da2610e6329eefe
Reviewed-on: https://gerrit.instructure.com/175512
Tested-by: Jenkins
Reviewed-by: Omar Khan <okhan@instructure.com>
QA-Review: Omar Khan <okhan@instructure.com>
Product-Review: Kevin Dougherty III <jdougherty@instructure.com>
2018-12-18 15:01:26 +00:00
wdransfield 8f1d41b290 Check if placement is truthy for select content dialog
Fixes PLAT-4011

Test Plan:
* Create a course and install a tool that uses the assignment_selection
  placement AND has not_selectable set to true
* Add other tools to the course
* Try to add tools as an external tool submission type
* Verify you can add standard tools and tools through a
  content item selection request

Change-Id: If966addea2976dd3b30c78f4770a271f6ddd0b44
Reviewed-on: https://gerrit.instructure.com/175341
Tested-by: Jenkins
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2018-12-13 17:20:53 +00:00
wdransfield 0fb6baba90 Close deep linking modal after processing items
Closes PLAT-4077

Test Plan:
Verify the deep linking modal closes after succesfully retrieving
content items in the RCE

Change-Id: I64c1273e0df064f5ce59630b67cd82b536ad9de6
Reviewed-on: https://gerrit.instructure.com/175174
Tested-by: Jenkins
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
2018-12-13 16:57:42 +00:00
wdransfield 87fff4ba09 Handle deep linking messaging claims
closes PLAT-4068

Test Plan:
Verify the following claims are properly handled in Canvas
when a deep linking response occurs from the RCE:
- msg
- errormsg
- log
- errorlog

Change-Id: Ib795fd72866892611953398267066f08ab547040
Reviewed-on: https://gerrit.instructure.com/174728
Tested-by: Jenkins
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2018-12-12 17:19:00 +00:00
Clay Diffrient 6cc657c9ad Add security tab to account settings page
closes CORE-2106

Test Plan:
  - Enable Content Security Policy feature flag
  - Go to account settings
  - There should be a tab there that says 'Security'
  - Clicking it should show you some placeholder text

Change-Id: Id34feba1b831d57951a0ba5ab2b717af29a5f449
Reviewed-on: https://gerrit.instructure.com/171476
Tested-by: Jenkins
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
2018-12-05 18:07:19 +00:00
Brent Burgoyne 0594640295 support parsing event time formats in datepicker
fixes CORE-2036

test plan:
- change language to spanish (and portuguese)
- create a discussion topic with a delayed post date/time
- edit the discussion topic
- the date under the datepicker should be correct
- verify the same thing with:
  - quizzes show answers after
  - file restriction dates

Change-Id: I0cb8101d1573c6364cfa5592f514b6bab85c2f1e
Reviewed-on: https://gerrit.instructure.com/173825
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
2018-12-05 17:14:04 +00:00
Matthew Berns 63d20c74f8 fix ratings of the same point value both being selected
fix description column not properly updating when saving with NSR enabled

fixes OUT-1393

test plan:
- have NSR enabled
- create a rubric criterion in which two of the tiers have matching
  point values
- as a student, submit to an assignment attached to the rubric
- as a teacher, go to speedgrader to assess the rubric
- click on one of the matching rating values and save the rubric
- your selection should persist
- enter a point value directly into the point input field
- the left-most rating should be selected and persist
- enable ranges on the criterion
- ensure ranges are all still properly selectable
- ensure description for the criterion is properly updating in the database
  by going to the rails console and doing RubricAssessment.last. The
  description should update based on the selected tier
- repeat test plan on the submission's show page

Change-Id: Iffe28df273a53ba3dfc7bb9f2a8d07e0892c6c75
Reviewed-on: https://gerrit.instructure.com/173135
Tested-by: Jenkins
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Reviewed-by: Neil Gupta <ngupta@instructure.com>
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-11-30 20:57:05 +00:00
Aaron Hsu daa58572dd Show prereqs for locked assignments due to module progression
fixes COMMS-1752

Test Plan
 * Create two modules
 * Lock a module as a prereq saying must done in order
 * Create a bunch of assignments for module
 * Mask as a student and notice that assignments with
      prereqs cannot be accessed and wil lead the user back to the
      prereq assignment

Change-Id: I44ba88e93d775880a3b730a94fcbb2e5f0f48c6e
Reviewed-on: https://gerrit.instructure.com/173725
Tested-by: Jenkins
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Aaron Hsu <ahsu@instructure.com>
Product-Review: Aaron Hsu <ahsu@instructure.com>
2018-11-30 17:57:45 +00:00
wdransfield af6851947e Properly display deep linking links
Closes PLAT-4018

Test Plan:
-Install an LTI 1.3 tool that uses DeepLinkingRequest
 messages (I'm working on updating the test tool for
 this). Make sure to include the editor button and
 link selection placements
- Navigate to the assignment create/edit UI
- Choose 'External Tool' as the submission type
- Click the 'Find tool' button
- Verify the LTI 1.3 tool has a magnifying glass
  icon
- Verify Lti 1.1 tools that use content item still
  have a magnifying glass icon
- Navigate to the module item creation modal in a
  course
- Attempt to insert an external tool
- Verify the LTI 1.3 tool has a	magnifying glass
  icon
- Verify Lti 1.1 tools that use	content	item still
  have a magnifying glass icon

Change-Id: I5e6ea20498eddfaef8f63d02b03525f4a052fbef
Reviewed-on: https://gerrit.instructure.com/173314
Tested-by: Jenkins
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
2018-11-29 20:52:51 +00:00
Landon Gilbert-Bland d6c6751cc1 Show different data when assignment is not yet availaible
Fixes COMMS-1751

Test Plan:
  * Make sure to compile css before testing this.
  * Create three assignments
      1) with a lockAt and unlockAt date in the future
      2) with only an unlockAt date in the future
      3) with only a lockAt date in the past
  * Make sure the student view for the page loads in all cases and
    matches the designs

Change-Id: Ib8bffd440db799d2c8423461e10a7f173fa72b65
Reviewed-on: https://gerrit.instructure.com/173289
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
2018-11-29 19:09:11 +00:00
Carl Kibler 253a77b24e make file chooser in submissions awesome
When submitting file for an assignment the file tree wasn't keyboard-
focusable or even usable. It was an ancient, never-worked mess. Now it
sports the React-based FileBrowser with brand-new keyboard-handling.

fixes ADMIN-1547

test plan:
 - Need assignment wtih File Upload submission type
 - Go to submit as student and:
 - Tabbing with keyboard focuses 'Add additional file' and
   also 'Choose an existing file'
 - Click/enter on Choose existing and screenreader says Collapsed
   or Expanded appropriately
 - File tree works well with keyboard and mouse, loading user files
 - Selecting a file with Enter key says 'selected <filename>'
 - Submitting after a file has been selected works
 - Switch to RCE element on like a Page or discussion topic and do
   Upload file->Canvas and make sure file tree there works still and
   has new keyboard enhancements.

Change-Id: I338b458fd331116b3245f0196b9e026b96739a22
Reviewed-on: https://gerrit.instructure.com/170417
Tested-by: Jenkins
Reviewed-by: Mysti Sadler <mysti@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Carl Kibler <ckibler@instructure.com>
2018-11-28 22:15:18 +00:00
Carl Kibler ae4251d48a fix references to renamed JS imports
fixes ADMIN-2256

test plan:
 - In a course, create 2 modules and add some items to each
 - use "Move Module" and "Move Contents" a few times
 - use "Move To" to be sure it still works too
 - When a module is empty (no contents), clicking 'Move Contents'
   option doesn't throw a JS console error. (it did before).

Change-Id: Ia0ad37fdd4076e74501f64023a6da3558af9c913
Reviewed-on: https://gerrit.instructure.com/172920
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Carl Kibler <ckibler@instructure.com>
2018-11-21 18:14:20 +00:00
Landon Gilbert-Bland 685e36638d Fix race condition for loading new ARC media recorder
Fixes COMMS-1763

Test Plan:
  * Go to a page with the RCE and attempt to load the media capture
    component using safari or IE11. It should load the old flash
    version of this.
  * Do the same thing with chrome or firefox. It should load the new arc
    media player. Do this multiple times (reloading the page each time)
    and make sure it consistantly loads the new recorder instead of the
    old flash one.

Change-Id: I1998996d0538717e5395315c65f46ac94cb8114d
Reviewed-on: https://gerrit.instructure.com/172904
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
2018-11-20 19:51:12 +00:00
Frank Murphy 0b97c48ea5 Disable saved comments for peer reviews.
Fixes OUT-2577

Test Plan:
- Create a rubric with free-form comments.
- Create a normal teacher-assessed assignment with that rubric.
- Verify that comments can be saved in speed grader and that the
  saved comments persist for this rubric.
- Create a peer-reviewed assignment with the rubric, and assign
  peer reviewers.
- Masquerade as a student and verify that comments can't be saved.
- Verify that comments can still be submitted as a peer reviewer.
- Create a moderated grading assignment (you'll need a TA in this
  course)
- Masquerade as the TA, and verify that you can save comments.
- Verify that the teacher can see the saved TA comments.

Change-Id: Ie5bbea6dfbc9a15f53056e418ec799d819a17d63
Reviewed-on: https://gerrit.instructure.com/172602
Tested-by: Jenkins
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-11-16 20:55:50 +00:00
Nick Houle 6759b56024 Add Progress widget
Fixes: GOOF-443, GOOF-436, GOOF-628

This reverts commit 1f7dccc1a1.

Test plan:
- Compile assets for canvas
- Boot up the docker container
- Navigate to a course with the google lti installed
- As a student submit an assignment from google drive
- On the assignment detials, submission details and grade summary
  pages (found on the invision links in the ticket) confirm you
  see the progress widgets and the files correct upload status
- On the submission details page in the grade book confirm you
  can see the icons
- In speedgrader confirm you can see the images for the correct
  states in the iframe and see the correct icons on the right
  hand sidebar AND confirm they change accrodignly as you change
  the submission selected from the dropdown if there are multiple
  submissions

Change-Id: I5e44483b07d0fde462db93838864437dd631e36d
Reviewed-on: https://gerrit.instructure.com/170883
Reviewed-by: Jeremy Slade <jslade@instructure.com>
Reviewed-by: Michael Guymon <mguymon@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
2018-11-14 22:49:53 +00:00
Michael Brewer-Davis 15082567f8 show question comments in quiz details
closes QO-386

Test plan:
- create quiz
- add question to quiz with comments per
  answer and comments per question (correct/incorrect/
  general)
- save question
- reload quiz, click "Show Question Details"
- verify that question comments are displayed
- edit quiz question, click "Show Question Details"
- verify that question comments are displayed
- preview quiz, verify correct comments are displayed
  in the correct format
- take quiz as student, verify correct comments
  are displayed in the correct format

Change-Id: I8adb15fe49936c60ab322ebbbdce207de355abb5
Reviewed-on: https://gerrit.instructure.com/170711
Tested-by: Jenkins
Reviewed-by: Omar Khan <okhan@instructure.com>
QA-Review: Omar Khan <okhan@instructure.com>
Product-Review: Kevin Dougherty III <jdougherty@instructure.com>
2018-11-12 17:59:56 +00:00
Michael Brewer-Davis 97a910bcf0 fix quiz forcing 4 decimal points
closes QO-409

Test plan:
Take quiz with numeric question
Verify that trailing zeroes are removed,
  not added
  
Change-Id: Ica9d96d4c88a272380dde81db7afd1742ee53cd5
Reviewed-on: https://gerrit.instructure.com/171069
Reviewed-by: Jim Simon <jsimon@instructure.com>
Reviewed-by: David Tan <dtan@instructure.com>
Tested-by: Jenkins
QA-Review: David Tan <dtan@instructure.com>
Product-Review: Kevin Dougherty III <jdougherty@instructure.com>
2018-11-07 14:12:59 +00:00
Steven Burnett 4eca927712 fix overflow with conversations courses
fixes COMMS-1732

Test Plan:
- make 100 courses
- enroll yourself in those courses
- go to the inbox click on the course selection (top left)
- notice you can scroll through them.

Change-Id: I5b6d124b75115028a5c5d97951a74b37ffff80f6
Reviewed-on: https://gerrit.instructure.com/171277
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Tested-by: Jenkins
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
2018-11-06 20:30:48 +00:00
Jacob Burroughs 15541fdd7a Update krecord to support nginx-rtmp
fixes COMMS-1731

Test plan:
- Test media recorder against FMS: it should work
- Test media recorder against nginx-rtmp: it should work
- Make sure audio-only and video work
- Make sure recordings > 1min work
- Maks sure seeking, stopping, and playing the recording multiple times works

Change-Id: Icaa5897e23c7330f49623fecdef6e05935e2a0c0
Reviewed-on: https://gerrit.instructure.com/170842
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
2018-11-06 18:49:58 +00:00
Gary Mei 85ee64f3ae allow provisional graders to delete grades
When a provisional grade has been left, it should be deletable by the
provisional grader who left it. Invalid grades still be unacceptable,
but now "no provisional grade" is considered valid. Deleting a
provisional grade will not change the fact that the provisional
grader took up a moderation slot.

A provisional grade cannot be deleted nor changed after the
provisional grader has been been selected by the final grader in the
moderation page. After grades have posted, grades can be deleted
or changed.

fixes GRADE-1637

Test Plan
- Create a moderated assignment with just 1 number of graders.
- As the provisional grader, launch SpeedGrader and give a grade to a
  student. Tab away.
- Delete the provisional grade; there should be no error messages.
- Enter a valid, non-empty grade.
- Replace the valid provisional grade with an invalid provisional grade
  (e.g. "asdf"). There should be an error message, and the
  provisional grade should have reverted to the last valid provisional
  grade.

- Delete the provisional grade.
- As another provisional grader, launch SpeedGrader and attempt to
  leave a provisional grade. There should be an error message stating
  that the max number of graders has already been reached.

- Leave a provisional grade again, as the first provisional grader.
- As the final grader, open the moderation page and select the
  provisional grader.
- As the provisional grader, attempt the delete the provisional
  grade. It should have an error message.
- As the provisional grader, attempt to change the provisional grade.
  It should have an error message.

- As the final grader, post the grades.
- As the provisional grader, attempt to delete the grade. It should be
  okay.
- As the provisional grader, attempt to leave and change a grade. It
  should be okay.

Change-Id: I169ac65a5d8785007b3c71aed87bbef968c86e9e
Reviewed-on: https://gerrit.instructure.com/168804
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
2018-10-30 19:34:18 +00:00
wdransfield 69eef0dd47 Fix multiple plagiarism resubmits on single click
Closes PLAT-3915

Test Plan:
- Create a published course with a plagiarism framework
  tool and and at least 2 students
- Create an assignment and link it to the plagiarism tool
- submit to the assignment as student A
- Create a pending originality report for student A
- in Speedgrader, before results are returned, navigate to
  the non-submitting student, then back to the submitting
  student
- Use the plagiarism resubmit button
- Verify only one "plagiarism_resubmit" webhook is sent

Change-Id: I4bd2f11a0e29d19728a1e8b99e0cd110acfd994c
Reviewed-on: https://gerrit.instructure.com/169921
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
QA-Review: Marc Phillips <mphillips@instructure.com>
2018-10-29 19:12:54 +00:00
Gary Mei 944e68fb9e add alternative text for media comment thumbnails
Pass appropriate alternative text for media thumbnails so that
screenreaders can describe the media comments.

fixes GRADE-1662

Test Plan
- Create an assignment.
- Launch SpeedGrader.
- Add a media comment.
- Launch a supported browser+screenreader combination.
- Navigate to the media thumbnail with a keyboard.
- Verify that the screenreader reads out a clear description of the
  media comment link. It should tell the user that they can play the
  comment, the author name, and the timestamp.
- Verify this works for SpeedGrader and the submission details page.

Change-Id: Ic8dd5f39e5e7429ba2d2fdde16a8fb021b708c84
Reviewed-on: https://gerrit.instructure.com/169190
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Nathan Rogowski <nathan@instructure.com>
2018-10-29 18:10:30 +00:00
Rob Orton 1f7dccc1a1 Revert "Add Progress widget"
This reverts commit de24e65b85.

Change-Id: I0d13c23684dbc2a80aa1ba2212f99107c176f4c2
Reviewed-on: https://gerrit.instructure.com/170014
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2018-10-27 14:41:12 +00:00
Adrian Packel d1eb4fe3f6 Focus media comment link when closing dialog
When closing a media comment in SpeedGrader, return the focus to the
link that opened the comment. Do the same for media comments viewed
from the submission details page.

fixes GRADE-1665

Test plan:
  - Create a submission comment containing a media object
    - (set up Notorious plugin or fake creation; see below)
  - Enable VoiceOver
  - Open the relevant submission in SpeedGrader
    - Navigate to the thumbnail for the media comment, and click to open
      it
    - Close the resulting dialog
    - Focus should return to the thumbnail
  - Test that this is also the case for the submission details page

Steps for creating a fake media comment follow. Note that, if you can
enable the Notorious plugin, you may have a shot at creating them the
"proper" way, but if you're running a local Canvas setup you'll likely
still run into cross-site errors when attempting to record/upload media.

- Upload an audio or video attachment (for instance, via the "Files" tab
  on the right side of the attachment edit page)
- In the Rails console, create a new MediaObject referencing it:
  > MediaObject.create!(
      user_id: <uploading user ID>,
      attachment_id: <ID of attachment you uploaded>,
      media_id: 'my_media_file_id',
      workflow_state: 'active'
    )
- Create a submission comment referencing that MediaObject:
  > submission = <the submission you want to comment on>
  > submission.submission_comments.create!(
      author_id: <user ID>,
      media_comment_id: <ID of MediaObject above>,
      media_comment_type: <either 'audio' or 'video'>
      comment: 'this is my media comment! hi'
    )
- The submission-comment-with-media should now be present when you
  load the submission in SpeedGrader. Clicking the thumbnail should
  bring up the "Play media comment" dialog box, although the actual
  media object may still fail to load due to cross-site issues. This
  shouldn't matter for testing purposes since we're concerned with the
  dialog box's behavior.

Change-Id: Iada77f91831f30b0191f26af369df4aec0dccfcd
Reviewed-on: https://gerrit.instructure.com/169052
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Nathan Rogowski <nathan@instructure.com>
2018-10-23 21:17:24 +00:00
Frank Murphy ec72fa0e2d Fix rubric switching from empty to filled rubrics.
Fixes OUT-2552

Test Plan:
- Create an assignment with a rubric (original bug is with
  free-form comments, but should work with points too).
- Fill out the rubric for one student, but not the next student in
  speed grader.
- Open speed grader, switch to the "filled rubric" student.
- Reload the page.
- Update the rubric.
- Switch to the unfilled rubric, and back.
- Verify the filled rubric is shown.
- Repeat the process in reverse. Load the unfilled student, switch
  to filled, switch back to unfilled.

Change-Id: I77147d406ea02604705fd3b25ddd33ca546d01e5
Reviewed-on: https://gerrit.instructure.com/169081
Reviewed-by: Neil Gupta <ngupta@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Jenkins
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Pert Eilers <peilers@instructure.com>
2018-10-22 17:04:40 +00:00
wdransfield 46cbc56878 Show resubmit to tool button when score is absent
Fixes PLAT-3798

Test Plan:
- Create an assignment associated with a plagiarism
  platform LTI 2 tool.
- Create submissions in the assignment for at least
  two users.
- Create an originality report for one of the the
  submissions.
- Navigate to the submission that has the originality
  report in speedgrader and verify the following:
    * The originality score is shown
    * No "Resubmit to <Tool name>" button is shown
- Use the left or right arrow buttons in the speed
  grader UI to navigate to the submission without an
  originality report. Verify the following:
    * No originaliity score is shown
    * A button with "Resubmit to <Tool name> is shown

Change-Id: I0f01f570a27086d4ee544a28172ff7d51a64140d
Reviewed-on: https://gerrit.instructure.com/168451
Tested-by: Jenkins
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Reviewed-by: Marc Phillips <mphillips@instructure.com>
2018-10-18 16:04:21 +00:00
Steven Burnett f2aaaa7fbd not hide submission comment box
fixes COMMS-1469

Test Plan:
- As a student go submit an assignment
- try to add a media comment to the submission
- notice after the modal pops up the comment boxes doesn't go away.

Change-Id: Ia022f9afa254d2d180ecc0713a4f199edaebc56c
Reviewed-on: https://gerrit.instructure.com/167253
Tested-by: Jenkins
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Aaron Hsu <ahsu@instructure.com>
2018-10-13 20:20:57 +00:00
Ryan Shaw e6a6feef2e remove unused slickgrid files
These are all the js files from slickgrid that are not used in any of
our webpack bundles. So technically, we don’t need them.

Gradebook people, what would you prefer? To get rid of them so we don’t 
have files sitting around in our repo that are unused or keep them
so whatever is in /vendor/slickgrid is an accurate representation of
what was copypasta’ed into our codebase?

It is up to you, I am just making this commit because I was auditing 
All our other unused stuff and so you are aware. I’m good either way. 
If you want me to submit this, I’ll fix up the commitmessage

Also if we are going to delete these I’m sure there are .png, .gif and 
.css files in public/javascripts/vendor/slickgrid that are also unused
that could be deleted if we wanted to

Test plan:
* all the automated builds should pass
* the gradebook, gradezilla and jobs pages should work

Change-Id: Ia0be29b959c7b264c828531b5a0d6e839e9a58a3
Reviewed-on: https://gerrit.instructure.com/167745
Tested-by: Jenkins
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
2018-10-11 23:54:52 +00:00
Ryan Shaw 3c4b3cb28a remove js/coffee files not used in any bundle
To figure these out, I made a custom webpack plugin that deleted any
file webpack knew about in public/ or app/.
I committed the result of that, then ran:

rm public/javascripts app/jsx app/coffeescripts

And then by looking at the things that were still there it meant that
webpack never saw them so they are not used in any bundles

Test plan:
* see if you can think of anything that actually uses any of these
  And let me know if you can find anything
* automated builds should pass

Change-Id: Id4584fedf96668ba9a5310f07611a8d7b78aaf62
Reviewed-on: https://gerrit.instructure.com/167744
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2018-10-10 22:12:02 +00:00
Ryan Shaw 52437a1137 Fix some invalid imports
These are all things that were improperly importing either:
* a “default” object when there was only named exports
* a named export when there is only a default export

They work now because we tell babel to transpile es modules down
to commonJS in the “env” preset in babelrc but we want to eventually
not do that and these will need to be fixed before then

Test plan:
* no functionality should actually change in the code generated by
  Webpack
* this build should pass
* but so should the build for the commit that follows this that
  sets the `“modules”: false` option for babel-preset-env in
  .babelrc

Change-Id: Ic6f49fb94ee0d0592ca5e34ef7ed0a5633c40d80
Reviewed-on: https://gerrit.instructure.com/167054
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2018-10-09 21:31:57 +00:00
Clay Diffrient f0988890e6 Enhance MathJax for discussions
This commit makes things with MathJax work a bit better overall
and offers a few key changes.

We no longer will load MathJax when there is a hidden <math>
tag on the page.  It only loads if a <math> tag is explicitly
visible.

We also load a combined TeX/MML config so that if there is MML
on the page explicitly and the Advanced Equation Editor opens
it handles all the cases.  This was really prevalent potentially
with discussion posts/replies.

Finally, when we explicitly request to load MathML we now always
call the callback if present to make sure any hooks get put in, but
we also tell the existing MathJax instance to reprocess the page
to handle any newly added areas that it needs to handle.

closes CORE-1597
closes CORE-1402

Test Plan:
  - Go to a discussion post and do the following:
     - Use the advanced equation editor (AEE) to put something in the
       description.
     - Post a reply to that using the AEE.  It should work.
     - Explictly use the HTML editor to put MathML code into the
       description or a post.
     - Open the AEE and insert something.
     - It likewise should work :)

Change-Id: I934047c7c6760166d9cdcc495fa96fb3185aa9a8
Reviewed-on: https://gerrit.instructure.com/165453
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2018-10-05 06:42:05 +00:00
Adrian Packel 3ec3170fa0 Add a11y title/role to message students dialog
Add the role of "dialog" and an appropriate aria-label to the "message
students" dialog.

fixes GRADE-1580

Test plan:
  - Open Individual Gradebook with VoiceOver or JAWS active
  - Select an assignment
  - Click the "Message students who..." button
  - The dialog that opens should be identified by your screenreader
    software as a dialog, with an appropriate name ("Message Students
    for [course name]")
  - Make sure the dialog still functions as it used to

Change-Id: Ic9be7e82404fe8832fe747ff9256b9240c179f00
Reviewed-on: https://gerrit.instructure.com/166455
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Product-Review: Nathan Rogowski <nathan@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
2018-10-04 18:38:39 +00:00
Derek Bender f35287c1a7 sort anonymous speed grader students consistently
fixes: GRADE-1505

test plan:
  - given many students in a course with an anonymous assignment
  - verify "Student 1", "Student 2", "Student 3", etc. are the same
  between Speed Grader and the Moderation page.

Change-Id: I07d52d2d5d9bf1d185285b6f07886bf616ba0fb2
Reviewed-on: https://gerrit.instructure.com/162080
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
Tested-by: Jenkins
2018-10-04 06:56:13 +00:00
Jeremy Neander b8c2cece19 add assessment summary to assessment audit tray
closes GRADE-1575

test plan:
 A. Setup
    1. Create an assignment
       * With moderated grading
       * Worth 10 points
    2. Grade at least one student
    3. Post grades
    4. Unmute

 B. Verify
    1. Log in as a user with "view audit trail" permission (admin)
    2. Open the assignment in SpeedGrader
    3. Verify the "score out of points possible" is correct
    4. Verify the "Posted to student" date is correct

 Notes:
   * The "Posted to student" date is not present for anonymous
     assignments (yet)

Change-Id: Iff383eda746dcba6bb5d9e21485572c4ae774e28
Reviewed-on: https://gerrit.instructure.com/166716
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-10-03 21:20:17 +00:00
Clay Diffrient 563125c477 Set focus to the login link for inactivity
closes CORE-1927

Test Plan:
  - Trigger the inactivity logged out error
  - Focus should go to the Login link

Change-Id: I445a63ea65f20dc91af1386b1990446c2f203057
Reviewed-on: https://gerrit.instructure.com/165529
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2018-10-02 21:38:25 +00:00
Aaron Kc Hsu 075f242a44 Replace flash with arc html5 media recorder
fixes COMMS-1462 COMMS-1420 COMMS-1418 COMMS-1417

Test Plan
* Navigate to /accounts/1/settings and notice that there is
a new Arc in RCE feature flag
* Setup notorious using the gerrit project and README
* Navigate to /plugins/kaltura and make sure local
notorious and also js_uploader html5 is turned on
* Now go to discussions/assignments show and speedgrader
/courses/1/gradebook/speed_grader
* Make sure turning off and on the feature flag fits the
way we need this to work

Change-Id: I883b0bb33e9f4bff134b22b4a192884c9aa9db29
Reviewed-on: https://gerrit.instructure.com/162819
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
Product-Review: Steven Burnett <sburnett@instructure.com>
2018-10-02 02:58:15 +00:00
Cody Cutrer 5dd5b4c82a refactor saml debugging
refs CORE-1813

move it up and generify it so that other providers can use it,
the available keys shown in the UI is driven by the model,
and enable/view it per provider, rather than globally

test plan:
 * go to the auth providers page for someone with SAML
 * debugging should now be listed under the individual SAML provider,
   rather than globally at the bottom of the page
 * Click Start Debugging
 * in another browser/in cognito window start a login flow
 * click refresh on the debugger; it should load more data
 * stop debugging should clear it

Change-Id: I28139f8ce289fbd0a4297768b209c0971f833d12
Reviewed-on: https://gerrit.instructure.com/162990
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
2018-09-29 04:27:17 +00:00
Ryan Shaw 63d342e83b amdtoes6 spec/jsx/add_people
Change-Id: I23336d32609f63826e6b77f31d7be6b5d7dc576f
Reviewed-on: https://gerrit.instructure.com/166032
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2018-09-28 02:00:02 +00:00
Ryan Shaw 560322d4a3 amdtoes6 k5uploader
Change-Id: I8943d8d1c75e03d8743bf6dd02ec78be769a67c6
Reviewed-on: https://gerrit.instructure.com/166031
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2018-09-28 01:58:46 +00:00
Nick Houle de24e65b85 Add Progress widget
Fixes: GOOF-443, GOOF-436

Test plan:
- Compile assets for canvas
- Boot up the docker container
- Navigate to a course with the google lti installed
- As a student submit an assignment from google drive
- On the assignment detials, submission details and grade summary
  pages (found on the invision links in the ticket) confirm you
  see the progress widgets and the files correct upload status
- On the submission details page in the grade book confirm you
  can see the icons
- In speedgrader confirm you can see the images for the correct
  states in the iframe and see the correct icons on the right
  hand sidebar AND confirm they change accrodignly as you change
  the submission selected from the dropdown if there are multiple
  submissions

Change-Id: I7e8c98dcc1bc33a3af315393559d87df309a522a
Reviewed-on: https://gerrit.instructure.com/161530
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Michael Guymon <mguymon@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Tested-by: Jenkins
Product-Review: Jesse Poulos <jpoulos@instructure.com>
2018-09-26 22:25:01 +00:00
Clay Diffrient 17d31f5a52 Make focus remain on the editor toggle button
closes CORE-1834

Test Plan:
  - Go to places that show an RCE instance with a
    Rich Content / HTML toggle shown.
  - Each instance should keep focus on the toggler
    when switching between views

Change-Id: I5507e1d7894049c9c85ea7bc5398844b7300419e
Reviewed-on: https://gerrit.instructure.com/164914
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2018-09-24 21:57:57 +00:00
Jeremy Neander 95f2adb6df create assessment audit tray for speedgrader
closes GRADE-1574

test plan:
 To verify, open the assignment in SpeedGrader and:
   1. Verify the "Assessment audit" button is present
   2. Verify the button opens the tray
   3. Verify the tray can close and be reopened

 The button/tray will be available only when:
   * The user has the "view audit trail" permission (admins)
   * AND the assignment is either moderated or anonymous
   * AND the assignment is unmuted
   * AND grades have been posted

Change-Id: I36a3511a4423e55c88c9c6d4e0016645ffe91082
Reviewed-on: https://gerrit.instructure.com/165409
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-09-24 18:26:35 +00:00
Frank Murphy 281db2c9c2 Locally track saved comments for reuse in speed grader.
References OUT-2518

Test Plan:
- Ensure the NSR feature flag is enabled.
- Create a rubric with two free-form criteria.
- Align to an assessment.
- Grade for one student in speed grader, add comments, select
  "save comments for later" on one criteria but not the other.
- Save assessment, move to a different student to assess.
- Verify the comment that was previously saved can be selected,
  and the comment that wasn't saved is not in the selection drop down.

Change-Id: I0d35a07cd470585b865c86d9811abeb03888dd59
Reviewed-on: https://gerrit.instructure.com/164805
Reviewed-by: Neil Gupta <ngupta@instructure.com>
Tested-by: Jenkins
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Reviewed-by: Frank Murphy <fmurphy@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
2018-09-24 17:10:13 +00:00
Brent Burgoyne 96b11b7cf5 bulk update of localized date/time formats
including better test coverage for parsing/formatting and fixes for
bugs exposed by changes to the formats.

closes CORE-1557

test plan:
- spot check datepicker in each locale
- try dates in multiple months
- try current year and future/past
- make sure string below datepicker field shows correct date

Change-Id: I9857b6f84c4e98fdaff5a6d8e90568602f42e689
Reviewed-on: https://gerrit.instructure.com/164724
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
2018-09-19 15:24:00 +00:00
Ed Schiebel 9b31408c46 close module tooltips
canvas' jquery tooltip inherits from the vanilla jquery tooltip and adds
a 20ms timeout to the open sequence to let the browser scroll the
element into view before jquery tries to postion it. for some reason I
can't devine, the timeout interferes with the tooltip's lifecycle and
was causing tips to get stuck open when clicking on the button. this
didn't happen in assigments, which use the same code so I suspected it
had something to do with how long the api calls took. Testing on beta,
where the server isn't colocated with the UI, I confirmed that even on
assignments, the tooltips get stuck when clicking the publish button,
which strengthens my confidence in my theory.  Increasing the timeout to
200ms seems to work, though I came at that value by simply adding a 0.
It's fast enough that the delay isn't perceptible. Hopefully it's long
enough to work in prod. Time will tell.

Also, the 'change:published' event listener that changes the tooltip
from Publish to Published was causing the button to render twice right
in a row, and that was also confusing the tooltip code, so I removed it
and it's working much better.

closes ADMIN-1332

test plan:
  - have a course with a module with a couple objects in it
  - mouse over and out of the publish/unpublish icon button
  > expect the tooltip to come and go
  - click the button
  - mouse out
  > expect the tooltip to close
  > expect tooltips on the other buttons to open/close as expected
  - click the button again, but make sure the mouse lingers over the
    button until the tooltip changes, then mouse out
  > expect the tooltip to close and other tooltips to work
  - do that again so you test both publishing and unpublishing, because
    they are a little different

  - repeat on the assignments page to be sure it works there too

Change-Id: I00ba077fe18e33b685ee00f9b110afbe1f41c0d2
Reviewed-on: https://gerrit.instructure.com/164493
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Jon Willesen <jonw+gerrit@instructure.com>
Tested-by: Jenkins
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2018-09-19 12:24:02 +00:00
Derek Bender f1f7b5905a fix view rubric for teachers in speed grader
this bug was introduced in dd3122c

fixes: GRADE-1606

test plan:
 - given an assignment with an attached rubric
 - when a rubric assessment as a TA in Speed Grader
 - then a teacher can still leave a rubric assessment because the "View
   Rubric" button is still present

Change-Id: I55a7fba29ffdbb45f94b84c2bc45b2eef6140b54
Reviewed-on: https://gerrit.instructure.com/164626
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
QA-Review: Keith T. Garner <kgarner@instructure.com>
Tested-by: Jenkins
2018-09-17 20:54:10 +00:00
Brent Burgoyne 4f0106f39a add mark tag to rce/html whitelist
clsoes CORE-1883

test plan:
- edit a wiki page
- switch to html editor
- add <mark>test</mark>
- save the page
- the mark tag should not be stripped out

Change-Id: Ic79b5554e0254b54797f78d5d4ab7e5e6c8281bf
Reviewed-on: https://gerrit.instructure.com/164510
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Brent Burgoyne <bburgoyne@instructure.com>
2018-09-14 20:14:39 +00:00