Commit Graph

14681 Commits

Author SHA1 Message Date
Jeremy Stanley 3d66ec5d74 notify when a blueprint sync completes
test plan: enable Blueprint Sync in notification preferences,
 perform syncs, and ensure admins and teachers get appropriate
 notifications in /users/id/messages.

 also test twitter, sms, and summary notifications.

 to test summary notifications:
 1. configure an email address to receive daily or weekly
    summaries (doesn't matter which; we will override the time)
 2. perform a sync
 3. in a console, force the messages to come due for delivery,
    and then queue them up (make sure jobs are running):

DelayedMessage.where(workflow_state: 'pending').update_all(send_at: 1.day.ago)
SummaryMessageConsolidator.process

 4. the summary message should then be visible in
    /users/X/messages

closes MC-102

Change-Id: I5e259e55f0684a05de27ec0a80ec59679d6cd5a6
Reviewed-on: https://gerrit.instructure.com/110927
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2017-05-19 22:08:46 +00:00
Keith Garner 3bb068bbe6 fix leak of unmuted score when escaping out of what-if edit
This adds GradeSummaryAssignmentPresenter#original_points, which won't
share the published_score with the grade_summary page if the
assignment is muted or the submission is nil.

fixes CNVS-36928

test plan:
 - Have a course with a teacher, a student, and an assignment.
 - As the teacher, mute the assignment and grade the student
 - As the student, visit the grade summary page.
 - Select the muted icon to go into what-if editing mode, but hit
   escape without entering any data.
 - Note that the total score remains the same as it originally was
 - Select the muted icon and enter a what-if score. Rever that score.
 - Note that the total score the same as it originally was

Change-Id: I9a30dcd09e2c7c10d4c70a1fdea7a764db5a127c
Reviewed-on: https://gerrit.instructure.com/111925
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Reviewed-by: Neil Gupta <ngupta@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-05-19 21:46:53 +00:00
Ryan Shaw b2700d45b6 [ci coverage] convert public/js w/ no ‘export’s to ‘import’
closes: CNVS-35922

now that we pass all of public/javascripts through
babel, istanbul/esprima should not choke on `import`
in our JS tooling.

test plan:
* run `yarn test` w/ COVERAGE=1
* it should work

Change-Id: Ia19deb547350245b7cae54e76e56ae6355f61b2c
Reviewed-on: https://gerrit.instructure.com/105962
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2017-05-19 19:11:12 +00:00
Ryan Shaw 44ed07d8d6 remove jQueryUI Accordion from common bundle
closes: CNVS-36892 CNVS-36956

note: This means that we will no longer automagically 
make jQueryUI accordions for people that add content with 
the class .accordion to their .user_content, which is 
what we warned people would eventually happen.

But have no worries, for anyone that was relying on that,
I made a drop-in, backwards compatible way of doing 
the exact same thing that people can use to continue 
to use even if/when Canvas removes all these jqueryUI
widgets from it’s own code. They just need to add a 
little snippetto their custom JS file in the ThemeEditor:

See: https://github.com/ryankshaw/widgetize-canvas-lms-user-content
for how to install it.

Test plan:
* with this patchset checked out:
* make sure the accordion in the legacy (non-service)
  Wiki sidebar works and looks right
* make sure the accordion in the theme editor works and looks right
* Go to https://github.com/ryankshaw/widgetize-canvas-lms-user-content
  And follow the installation instructions for adding it to your
  Custom JS file in theme editor
* create a page that has all the markup from:
  github.com/ryankshaw/widgetize-canvas-lms-user-content#example-usage
* verify that that the widgets on that page all work, especially the
  accordion.

Change-Id: I105ed2d87c165139999b76208790600242468f4d
Reviewed-on: https://gerrit.instructure.com/111708
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
2017-05-19 18:28:01 +00:00
Ryan Shaw fb41a8a46a rm …/vendor/{timezone,ie11-polyfill,fontface}
closes: CNVS-36805

I’m working towards turning on babel for public/javascripts
And so instead of having to worry about selectively adding excludes
For things in public/javascripts/vendor that we haven’t modified,
I’m just moving things out of there.

This commit just relies on gulp rev to put these files in
public/dist/* instead of having the intermediate artifacts
hanging around in public/javascripts/vendor/* that then
get copied/revved to public/dist by gulp rev.

This also minifies any gulp-revved js in production

Test plan:
* Nothing should change
* run compile_assets
* the javascript for your timezone data should load
  just fine like it did before
* the lato fontface observer should still be working
* go to the site in IE, there should not be any
  Js errors (like “Promise is not defined”)

Change-Id: I10b2e3f102276ab0ef5f58cbc0d981f5aa800522
Reviewed-on: https://gerrit.instructure.com/111251
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2017-05-19 18:21:14 +00:00
James Williams 1286599425 master courses: fix sync when old associations are deleted
Change-Id: Ice68bbb549ef745730bd2bc05146567c4b412b9a
Reviewed-on: https://gerrit.instructure.com/112440
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2017-05-19 16:58:07 +00:00
Derek Bender 6a4e784148 add cell styles to gradebook
closes CNVS-31858

test plan
 - Given a gradezilla enabled gradebook
 - Given submissions that are late, missing, resubmitted, dropped, and
   excused
 - When a submission is late
 - Then the cell color is blue
 - When a submission is missing
 - Then the cell color is purple
 - When a submission is resubmitted
 - Then the cell color is green
 - When a submission is dropped
 - Then the cell color orange
 - When a submission is excused
 - Then the cell color is yellow

 - Given multiple students in the course to verify zerbra striping of
   state colors
 - When on the gradebook page
 - Then even rows are lighter
 - Then odd rows are darker

Change-Id: I9231f454b6982e1c7dc9c95d5eaed11140d2d3bc
Reviewed-on: https://gerrit.instructure.com/110818
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Tested-by: Jenkins
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Christi Wruck
2017-05-19 16:25:07 +00:00
Brian Park 9cf5c0830f remove old settings cog
closes: CNVS-36914

Test Plan:

1. Navigate to GradeZilla
2. Observe that old settings cog is gone

Note for QA: multiple selenium specs with test_id values
were deleted in this changeset.
 - see the diff for which ones
 - sanity check that these are really not needed any more

Change-Id: Ia94b32791a3b86082ecf35522b981f517de2248e
Reviewed-on: https://gerrit.instructure.com/112333
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Tested-by: Jenkins
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Christi Wruck
2017-05-19 16:09:58 +00:00
Jeremy Neander 8e264e183c add filters to view options menu
closes CNVS-31860

test plan:
* visit Gradezilla Gradebook
* open the View menu
* verify that the following is available in the Filters section
  * Assignment Groups
    * only available when multiple assignment groups exist
  * Grading Periods
    * only available when a grading period set exists
  * Modules
    * only available when at least one module exists
  * Sections
    * only available when multiple sections exist
* for each filter in the Filters submenu
  * select the filter
  * verify the filter is still selected when menu reopens
  * verify the filter is still selected after page reload
  * deselect the filter
  * verify the filter is still deselected when menu reopens
  * verify the filter is still deselected after page reload
* for the Grading Periods filter
  * select the filter
  * verify that the grading period select element is present
  * deselect the filter
  * verify that the grading period select element is absent
* for the Sections filter
  * select the filter
  * verify that the section select element is present
  * deselect the filter
  * verify that the section select element is absent

Change-Id: I428182973a17ba7a3da9fd10bcff25f19f6f4adb
Reviewed-on: https://gerrit.instructure.com/111987
Tested-by: Jenkins
Reviewed-by: Brian Park <brian@siimpl.io>
Reviewed-by: Matt Taylor <mtaylor@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Christi Wruck
2017-05-19 16:03:50 +00:00
Matt Taylor 68198f7aba apply late policy deductions for late submissions
When a submission is scored, the late policy should be applied
by calculating and storing points_deducted, then deducting
that value from score before it is saved to the database.

Also provide an interface for bulk update processes to pass
a late policy and points possible to the same method, avoiding
(N+1) lookups of the same policy and/or assignment on each
submission.

fixes CNVS-36386

Test Plan (repeat on Gradebook, Gradezilla and Individual View):
  1. Course with no late policy
     a. Grade a submission for an assignment due in the past
        The score should stay unchanged
  2. Course with a late policy 10% per day down to 30% minimum
     Use rails console to create the late policy
     a. Create a 10 point assignment due in the future
     b. Submit the assignment for a student
     c. Grade the assignment at 8 points, it should stay at 8
     b. Change the due date to 2 days ago
     e. Re-grade the assignment at 8 points, should change to 6
     f. Change the due date to 10 days ago
     g. Re-grade the assignment at 8 points, should change to 3
     h. Set late_policy_status to 'none' in rails console
     i. The student's grade should change to 8
     j. Set late_policy_status back to 'late' in rails console
     k. The student's grade should change to 3
     l. Set accepted_at to 3 days ago in rails console
     m. The student's grade should change to 5

Change-Id: I57dcb06b72de21a670d79d85fe422e66cb914c1b
Reviewed-on: https://gerrit.instructure.com/110799
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-05-19 15:43:23 +00:00
Ryan Shaw 98ceb83100 Remove Jcrop, nothing used it anymore
closes: CNVS-37025

test plan:
* nothing uses this so nothing should change

Change-Id: I105e5c0b05098147e67e600f63c72f6bf153bfdc
Reviewed-on: https://gerrit.instructure.com/112316
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2017-05-19 15:34:41 +00:00
Ryan Shaw be13be9891 Remove all code around the old Attendence page
closes: CNVS-36889

We log dived and no one is actually using this
anymore and could not tell if it was even working
still. This removes all the view/controller/spec/js/css
Code that was only used on that page.

Test plan:
* since this just removes stuff, I guess the test would be
 That <cavas>/courses/x/attendance gives you a 404 now
* specs should pass

Change-Id: Ie764d0f527046423b7535867f660afe53474887f
Reviewed-on: https://gerrit.instructure.com/111677
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2017-05-19 15:26:14 +00:00
wdransfield efa8019bc0 Similarity detection platform pledge
Closes PLAT-2530

Test Plan:
- Navigate to /accounts/:id/settings
- Find the Similarity Detection Platform
  section and add a Similarity Pledge
- Create an assignment that uses a plagiarism
  detection tool
- As a user submit an assignment and verify that
  the pledge appears above the submit button
- Verify you are unable to submit the assignment
  without checking the box next to the pledge
- Verify the pledge does not appear for
  assignments that are not using the plagiarism
  platform
- Verify the pledge continues to work properly
  for vericite and turnitin assignments.

Change-Id: Ie62207688eecf2425c51d58500e008587c7cc72a
Reviewed-on: https://gerrit.instructure.com/112060
Tested-by: Jenkins
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2017-05-19 15:24:24 +00:00
Jeremy Stanley caaf131333 fix overwriting quiz availability dates in blueprint migration
test plan:
 0. have an unlocked quiz in a blueprint course
    that has availability dates defined
 1. perform a sync
 2. edit the availability dates in a minion course
 3. lock the quiz in the blueprint
 4. perform a sync
 5. ensure the blueprint's availability dates replaced
    the changed ones in step 2

fixes MC-192

Change-Id: Iad249920e18341faec0e4c000ec77811b6256171
Reviewed-on: https://gerrit.instructure.com/112156
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: David Mirabile <dmirabile-c@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2017-05-19 14:31:32 +00:00
James Williams 4cf310dfa5 remove admin tools restore courses dropdown
wasn't populated with anything

test plan:
* the account 'admin tools', 'restore courses'
 tab shouldn't have an empty dropdown for no reason

closes #CNVS-36862

Change-Id: I65276c6edaf164f71a58d760683dc9ebbdacf5a1
Reviewed-on: https://gerrit.instructure.com/112302
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: David Mirabile <dmirabile-c@instructure.com>
Product-Review: Chris Ward <cward@instructure.com>
2017-05-19 12:25:59 +00:00
Venk Natarajan de32dba3a8 Show a context card when clicking group leader's name.
When clicking the group leader's name on the group's page, show a
context card if the "show context card" feature is enabled.

Fixes FALCOR-67

Test Plan:
* Create a course with some students.
* Put some students in a group, set one of them as a leader.
* On the course page, click "people", then click on the link
  for the group.
* Click on the name next to the "person" icon.  If student
  context cards are enabled, a context card should show up.
  If not enabled, you should be redirected to a details page
  for the user instead.
* (Student context cards can be toggled from Admin->Settings->
  Feature Options.  A "hard refresh" may be needed for the
  change to take effect)

Change-Id: Ia22dc00ed4c150c3f31bea9b8664a2db3c12febb
Reviewed-on: https://gerrit.instructure.com/112011
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Mary Jane Anderson <manderson@instructure.com>
2017-05-18 21:47:20 +00:00
Simon Williams 7acf812189 Merge remote-tracking branch 'baholladay/account_settings'
Change-Id: I4b05fb056699513ad8896a5e88d1fbf4c4e51137
2017-05-18 14:58:17 -06:00
Ed Schiebel 9f24350c52 Hide master course sidebar's Associations button when necessary
which is to say, if the user is not a master course admin.

closes MC-204

Test plan:
  - create a master course
  - open the sidebar
  > expect to see the Associations link
  - add a user as a course Teacher
  - masqurade as ^that user
  - accept the enrollment into the course
  - open master course sidebar
  > expect the Associations link to be gone

Change-Id: Ic1f7ac753f2e99ae423e5dacca017e8418503aa8
Reviewed-on: https://gerrit.instructure.com/111515
Tested-by: Jenkins
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: David Mirabile <dmirabile-c@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2017-05-18 20:41:52 +00:00
Ed Schiebel 5027f49fda Master Course locks do not show up on "normal" course files
fixes CNVS-36979

test plan:
original test plan from the locked files commit:
setup: create master and minion courses.
 - in the master course, add a file and lock it,, migrate
 > expected: in the minion course it shows up as locked. the gear menu
 > only lets the user download
 - in the master course, add a folder and put a couple files in it,
   migrate
 > expected: in the minion course, the folder and files show up as
 > unlocked
 - in the master course, lock one of the files in the folder, migrate
 > expected: in the minion course, the folder is locked. the 1 file is
 > locked, the other isn't
 - in the master course, unlock the files in the folder, create a
   sub-folder, add a file there and lock it
 > expected: in the minion course, the top and sub-folders are locked
 - navigate to the master course's files
new to this change:
 - create a new plain old non-blueprint course
 - add a file and a folder with a file
 > expected: nothing shows a master course lock

Change-Id: I1c4aa69a92dbd0b9845c022fab742c5e910fc737
Reviewed-on: https://gerrit.instructure.com/112109
Tested-by: Jenkins
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: David Mirabile <dmirabile-c@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2017-05-18 20:40:41 +00:00
Dan Minkevitch a4a81947c3 Parse pageview user IDs as strings to prevent Javascript type conversion
Fixes CNVS-36822

Test Plan:
* Enroll a user across a trust
* View that user's page (making sure their user ID is long/high enough of
  a number to break Javascript number conversion, eg. something like
  10000000000000001)
* Verify that user's page views are actually theirs when viewing
  them from the trusted account and that the network request for the
  page view isn't being incorrectly rounded/formatted

Change-Id: I89df0f2b8ef6b2127e136b3b54e2e84a0924556d
Reviewed-on: https://gerrit.instructure.com/111449
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
2017-05-18 20:37:51 +00:00
Dan Minkevitch 0258c4d760 Update Planner API with correct status codes
Refs FALCOR-183

Change-Id: Iab0447b92ce959ee31e8ba1734379639c93a7f62
Reviewed-on: https://gerrit.instructure.com/112323
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
Product-Review: Dan Minkevitch <dan@instructure.com>
QA-Review: Dan Minkevitch <dan@instructure.com>
2017-05-18 19:55:52 +00:00
Simon Williams 16276bb5bb Merge remote-tracking branch 'jackhughesweb/master'
Change-Id: Ibbee87aa44adcd658211d25899c698f2b823ca49
2017-05-18 12:13:50 -06:00
Jeremy Stanley ced20885dd monologues
test plan: users should be able to send conversation messages
to themselves

fixes CNVS-36220

Change-Id: Ibe0e35e00a92b24ee371dc2ea11c4d9150df6a16
Reviewed-on: https://gerrit.instructure.com/111697
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: David Tan <dtan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2017-05-18 14:44:16 +00:00
Felix Milea-Ciobanu b4a6477299 teacher history view
refs MC-118

test plan:
- use a blueprint course with at least one association
- create a blueprint sync with several changes
- once the sync is complete, use the rails console to grab the
  database id of that migration
- use the course id of an associated course and go to the following
  URL: `/course/:course_id/#!/blueprint/migrations/:migrationId`
- note that a full screen modal showed up displaying the correct
  changes from the last sync
- note that closing the modal changes the URL to `/courses/:course_id`

Change-Id: Id2c85d1f0b4f55801c44dfa27d6cc2ba33fdde87
Reviewed-on: https://gerrit.instructure.com/111233
Tested-by: Jenkins
QA-Review: Heath Hales <hhales@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Kendall Chadwick <kchadwick@instructure.com>
2017-05-18 14:25:13 +00:00
James Williams b6b8220ba6 don't send course announcement notifications when soft-concluded
test plan:
* have a student in a course that is soft-concluded
* they should not recieve a notification if a new announcement
 is created

closes #CNVS-36063

Change-Id: I407c2f2722fc9f0ae5514218f70df2293dbb12b5
Reviewed-on: https://gerrit.instructure.com/111804
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2017-05-18 12:31:33 +00:00
Brian Park ac8a4c85da populate group and total "out of" labels on student grades page
Fixes: CNVS-36559

Test Plan:
1. As student, navigate to student grades page
  - Observe that assignment groups have "Out of" column populated
  - Observe that total "Out of" column is populated
2. As teacher, update course settings to disallow totals
3. As student, navigate to student grades page
  - Observe that assignment groups have no "Out of" value
  - Observe that total row is not visible

Change-Id: Ia55c67e63a7dc990e8be3349faa3e6afe8208340
Reviewed-on: https://gerrit.instructure.com/111726
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Matt Taylor <mtaylor@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Christi Wruck
2017-05-18 00:54:31 +00:00
Neil Gupta f0a3595015 Add late policy status support to submission controller
Fixes CNVS-32372

Test plan:
* Create a course
* Enroll a student
* Create an assignment
* As a teacher, hit the submissions update API endpoint
(PUT "/api/v1/courses/#{course.id}/assignments/#{assignment.id}/submissions/#{student.id}.json")

and pass:

submission: {
  late_policy_status: 'missing'
}

* Make sure the json response includes the right late policy status.
* Load the submission in rails console and make sure its late policy
  status is set.

You can pass 'missing', 'late', 'none', or null for late policy status
If status is 'late', then you can also include an `accepted_at`
timestamp that should also persist. If status is anything else,
accepted_at will be automatically cleared and fall back to submitted_at

Change-Id: I7f4032af520c44e5095da95ead03f0c0c987ef3f
Reviewed-on: https://gerrit.instructure.com/111439
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Matt Taylor <mtaylor@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
2017-05-17 22:59:26 +00:00
Clay Diffrient 6e1d34b08f Pass proper course data into canvas-planner
closes FALCOR-265

Test Plan:
  - Enable planner feature flag
  - Switch to list view dashboard
  - Have several assignments with due dates
  - Notice that the assignments show up

Change-Id: I235795b86b704fd33d8f0ba82a874c89e9c3348d
Reviewed-on: https://gerrit.instructure.com/111723
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Mary Jane Anderson <manderson@instructure.com>
2017-05-17 21:53:31 +00:00
Felix Milea-Ciobanu 54e175bbb9 fix blueprint sync button
fixes MC-211

test plan:
- create some changes in a blueprint course that has at least one
  association (to get the sync button to show up)
- note that the sync button looks as expected
- click the sync button
- note the sync button animation rotates in the correct direction

Change-Id: If8da83392ed212e43c669f5853f95d838d02d0ee
Reviewed-on: https://gerrit.instructure.com/112024
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
2017-05-17 20:49:06 +00:00
Rob Orton 5ff62a953f fix doc typo in account reports api
fixes CNVS-35978

test plan
 - specs should pass

Change-Id: I1ab94cc12142fc2a0de01391b05c9e8a4d0c7a50
Reviewed-on: https://gerrit.instructure.com/107333
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
2017-05-17 19:34:39 +00:00
Rob Orton 90d3293f3a add current_line and total_lines to account_reports
refs CNVS-35978

test plan
 - run report
 - it should have current_line

Change-Id: Ic60b1421e38a2b2d66604fbb14c1063925965dc6
Reviewed-on: https://gerrit.instructure.com/106951
Tested-by: Jenkins
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2017-05-17 19:34:01 +00:00
Mysti Sadler 5c2b0571aa Add to do date to discussion topics
closes FALCOR-223

Test plan
- As a teacher, edit a course discussion or
- a group discussion (account or course) and
- verify the checkbox shows up
- Verify that you can select the checkbox to
- make the date input field show up
- Verify that if you do not input a date, it
- gives you an error message on save
- Verify that if you do input a date and save
- that you can still see that date on reload
- Verify that you can remove the date by unchecking
- the box
- Verify that you can't set the assignment to graded
- and set a todo date (set the date and then check
- the graded checkbox and see if it saves)
- Verify that you can't see the checkbox as a student
- Verify that you can't use the API to set the date
- on either a new or updated discussion as a student
- Verify that you can use the API to set the date
- Verify that you can't use the API to have a graded
- discussion with a todo date

Change-Id: I5ee7a41244444ac4cc7ca54f8de37cdfbf39f722
Reviewed-on: https://gerrit.instructure.com/111172
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Product-Review: Christi Wruck
2017-05-17 19:24:42 +00:00
James Williams 2eaba932d7 use current assignment name in rubric reminder notifications
was using the rubric association title which is set by default
on creation to the assignment title but not updated if the
assignment title is changed

test plan:
* have a course with students
* create an assignment with peer reviews and a rubric
* edit the assignment title
* assign a peer review to one of the students
* the reviewer student should receive a message (/messages)
 with the current assignment title

closes #CNVS-36754

Change-Id: Ia7a49cde0ed208f2cfa6d73af9fbbae5b4451403
Reviewed-on: https://gerrit.instructure.com/111192
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: David Tan <dtan@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2017-05-17 12:35:21 +00:00
James Williams c7917630ac resolve placeholder in attachment url in discussion new entries
closes #CNVS-36876

Change-Id: I66a942ad4cc8190940143928ef43be3448da8b51
Reviewed-on: https://gerrit.instructure.com/111756
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: David Tan <dtan@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2017-05-17 12:24:28 +00:00
Cody Cutrer 265be41077 sanitize unusual error report URLs when displaying them
fixes CNVS-36827

test plan:
 * normal http/https URLS should still show up and be linkable
 * create an error report with of dubious nature (javascript link,
   ftp, or just flat out bogus, for example)
 * the error report page should still show it, but not as a link

Change-Id: Ica55f5cbcb33695d16b68ee98c1b6528bd9b63e5
Reviewed-on: https://gerrit.instructure.com/111574
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2017-05-17 03:40:38 +00:00
Cody Cutrer 470022912b use SAML2 gem for SAML logout flows
fixes CNVS-36681

requests and responses in both directions

test plan:
 * configure Canvas to do SLO with an IdP that supports SLO
 * log in to Canvas, and log out of Canvas. It should not give
   any errors (you may want to run through this step without
   this patchset to familiarize yourself with the flow)
 * log in to canvas, and log out at your IdP; observe that
   your Canvas session was also terminated (again, verify
   beforehand that this is working with your IdP with the
   old code)

Change-Id: I5b593fc4338b8ea8ad94e1b53fc91d72e712a317
Reviewed-on: https://gerrit.instructure.com/108544
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2017-05-17 01:00:24 +00:00
Ryan Shaw bcdeaa30f1 [webpack] load scripts ASAP, but still execute after dom parsed
closes: CNVS-34912

by starting to download scripts as soon as possible
in the head, but marking them as ‘defer’, the browser
will start downloading them sooner than if it only
knew about them once it got to the bottom of parsing
the html for the body. but it will still wait to execute
them after the body html is parsed, having the
same effect as if they were right before the </body>

test plan:
* this affects the load order of scripts on the page
  but does not actually make any script changes, nor
  change which scripts get loaded. so it theoretically
  shouldn't change anything but maybe go visit some
  of less frequently trafficked parts of the app and
  make sure there it works
* upload a custom js file in your theme editor that uses the
  jQuery "$" variable. make sure that works and that jquery
  is available by the time your script loads
* if your themeeditor custom javascript file doesn’t
  require(…) anything, you should not see the console
  message about require-ing internal canvas modules

Test to make sure jQuery is available to custom JS
on the mobile login screen
* do something like this in your custom js file:
  alert('there are ' + $('script').length + ' scripts on this page')
* go to http://c.dev/login/canvas?mobile=1
* you should see it say there are at least 2 scripts on the page

Change-Id: Ia7d9f6372b7372ad0de7a4c91c4c6bdc11be67cc
Reviewed-on: https://gerrit.instructure.com/101871
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2017-05-16 23:42:38 +00:00
Jennifer Stern 29ce91643a Upgrade React, instructure-ui and instructure-icons
fixes CNVS-36648, closes INSTUI-421

Test plan:

The following areas of Canvas are affected by this upgrade:
- High contrast mode and theme editor branding
- blueprint courses
- conditional release stats
- student context cards
- new user tutorial
- course home dialog

Change-Id: I5d7128e4ebf88a34342ffcb99d4ccf7dd839b2f7
Reviewed-on: https://gerrit.instructure.com/111443
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
QA-Review: Dan Sasaki <dsasaki@instructure.com>
Tested-by: Jenkins
2017-05-16 21:15:44 +00:00
Ryan Shaw 6aa2f807e4 Fix a couple places that require’ed jqueryui/mouse
…but didn’t use it

Test plan:
These pages should still work as before

Change-Id: Ic4b94fac25d4861d8f26acf640affcc738f963c6
Reviewed-on: https://gerrit.instructure.com/111711
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2017-05-16 19:55:03 +00:00
Gerrit Code Review b34b47e4be Merge "Merge branch 'dev/platform/content-item' into HEAD" 2017-05-16 17:30:36 +00:00
Jack Hughes 12e12bfe59 Fix for the OAuth2 provider's remember authorization checkbox label
This commit fixes the display of the OAuth 2 provider

The checkbox label for remembering an authorization displayed a hash
containing the en value and CSS class, and should instead be displaying
just the text contained in the en value.

 Test Plan:
   - Login to an external service, using Canvas as an OAuth2 provider,
and using a non-empty scope
   - The text next to the checkbox should now display “Remember my
authorization for this service”, and not the hash “{:en=>"Remember my
authorization for this service", :class=>"checkbox”}”
2017-05-16 12:40:51 +01:00
Jon Willesen cd596fbba4 conversation msg modals focus close button on open
For a11y, the compose and reply modals for conversations correctly focus
the close button when the dialog opens instead of the first control.

There are no unit test changes because I'm removing code for the old
explicit behavior, which wasn't tested. Now it has the default behavior
for modals, which is functionality that should be tested with the modal
modal implementation we use, and not with this particular use of it.

fixes CNVS-36820

test plan:
* open the conversations compose modal
* see the focus is set to the close button of the modal
* ditto with the reply modal

Change-Id: I25d3ae85a597e93ca2a2b00e240dee250adfbe40
Reviewed-on: https://gerrit.instructure.com/111573
Tested-by: Jenkins
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: David Tan <dtan@instructure.com>
Product-Review: Jon Willesen <jonw+gerrit@instructure.com>
2017-05-15 22:33:28 +00:00
Brent Burgoyne 50a979217a fix classes not added when updating links with rcs
closes CNVS-36878

test plan:
- make sure rcs is enabled
- edit a wiki page
- insert a link to a file that can be previewed (pdf works)
- put curson on link
- click the insert/update link button in the menu bar
- try checking each of the check boxes individually
- edit the link again, make sure it persisted the options
- save the page and make sure options are persisted after saving

Change-Id: I5513d53fc9f063fdff120765218ece53eb404062
Reviewed-on: https://gerrit.instructure.com/111784
Reviewed-by: brian kirkby <bkirkby@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: brian kirkby <bkirkby@instructure.com>
2017-05-15 22:28:35 +00:00
Ed Schiebel 5518cf62f9 Replace coffeescript model with js
can't do es6 import/export in coffeescript yet

fixes MC-209

Change-Id: I2d1e94343444e8b0753332eb4939cf5762b28dea
Reviewed-on: https://gerrit.instructure.com/111851
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2017-05-15 21:51:31 +00:00
Brad Humphrey 1339a8d126 Merge branch 'dev/platform/content-item' into HEAD
test plan:
This commit adds privacy level contro to content item selection requests
for the following fields:
  lis_person_contact_email_primary, lis_person_name_given,
  lis_person_name_full, lis_person_name_family, lis_person_sourcedid,
  lis_course_offering_sourcedid, and context_label

These fields should appear for the same privacy levels as they do for a
basic lti launch.  If the same tool is used in both a basic lti launch request
and a content item selection request, the above fields should either be
present on both launches or absent on both launches (depending on the
privacy level currently selected for the tool).

This commit also refactors how content item selection launches are
constructed, so it would be good to run a basic regression test on
content item selection launches in general.

fixes PLAT-2447

Change-Id: If55e9c84b3ddd91bdf700a8bbbb02d8f9a7e6e1f
2017-05-15 13:30:25 -06:00
Brad Humphrey ffce5e4459 support host and scheme for generating the return url
test plan:
  content item selection request return urls
  should have the correct scheme and port

fixes PLAT-2447

Change-Id: I663406e96d11d8c8b8fcb90fca15db4dcad392b3
Reviewed-on: https://gerrit.instructure.com/111781
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Humphrey <brad@instructure.com>
2017-05-15 19:28:48 +00:00
Dan Minkevitch 1f4132e1ba Planner API
Closes FALCOR-183
Closes FALCOR-184
Closes FALCOR-255
Closes FALCOR-186
Closes FALCOR-187
Closes FALCOR-188
Closes FALCOR-189
Closes FALCOR-147
Closes FALCOR-148

Test Plan:
* As a student in an account with the Student Planner
  feature flag enabled
* In a course with multiple upcoming due assignments
  in the current and following weeks
* Test that the following API endpoints provide you
  with the data described:

  get '/api/v1/planner/items'
    * Should return a list matching that of the todo
      list endpoint, while adding an additional key
      named `visible_in_planner`
  get '/api/v1/planner/overrides'
    * Should return a list of previously created
      PlannerOverrides
  get '/api/v1/planner/overrides/:override_id'
    * Should return the specific override for the
      passed in id
  put '/api/v1/planner/overrides/:override_id'
    * Should update an existing override's `visible`
      value to match what was passed in the request. No
      other values should be updated
  post '/api/v1/planner/overrides'
    * Should create a new PlannerOverride with the specified
      `plannable_type`, `plannable_id`, and `visible` values.
      `user_id` should match that of the user making the request
  delete '/api/v1/planner/overrides/:override_id'
    * Should set the PlannerOverride's `deleted_at` to when
      the request was made, as well as updating the `workflow_state`
      to `deleted`

Change-Id: I03890a525f8201a8df1d2f1290cdcd549ba548d7
Reviewed-on: https://gerrit.instructure.com/107495
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
2017-05-15 19:18:47 +00:00
Ed Schiebel e2ebcf2c4e Replce "synch" with "sync" in blueprint courses
fixes MC-202

test plan:
  - create a master course with some content
  - associate a minion course
  - change a couple things in the maser course
  - open the sidebar
  > expect "Unsynced Changes"
  - click on Unsyncd Changes button
  > expect modal to open titled Unsynced Changes

Change-Id: Ia02646a661887f3f9beafe21f7c2cfe1c9452094
Reviewed-on: https://gerrit.instructure.com/111498
Tested-by: Jenkins
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: David Mirabile <dmirabile-c@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
2017-05-15 18:59:33 +00:00
Ed Schiebel a7ac0edf12 Lazy load master course modals
wait until the user clicks on one of the links before loading the
resulting modal's code

closes MC-180

test plan:
This made no functional chnages, just how the code is loaded. If the
selenium specs pass, then it's working as expected. If you want to see
for yourself:
  - create a master/minion course pair
  - go to master course's page
  - make a change or 2 so there are unsynced changes
  - open the side bar
  - click on each link
  > expect the corresponding modal to open

Change-Id: I9b7f3027ddd2fd4ed93c096066880bd6afd7fa1c
Reviewed-on: https://gerrit.instructure.com/111480
Tested-by: Jenkins
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2017-05-15 18:50:45 +00:00
Ed Schiebel ec55f81ad0 Add missing migration types to propTypes
fixes MC-203

test plan:
  - create master/minion course pair with an assignemnt
  - put the assignment in a module
  - sync
  - open the sidebar and click on sync history
  > expect "Module" to be listed as the changed object

Change-Id: Ib9540af53e9b01d48c99c20cbecbbf3e0d617a34
Reviewed-on: https://gerrit.instructure.com/111483
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
Tested-by: Jenkins
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
2017-05-15 18:50:20 +00:00