fixes ADMIN-1035
Test plan
- Set up a teacher with an assignment that needs grading or
moderation
- Give that teacher a student enrollment as well
- Ensure the teacher sees the old to do widget (and therefore
the item from above) on their to do list
Change-Id: I5cc64ed4596d27848b38d9cbe815982f255a6c63
Reviewed-on: https://gerrit.instructure.com/150998
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Mysti Sadler <mysti@instructure.com>
The Apps tab on the Course settings page uses `page` to manipulate its
contents. Unfortunatly this interferred with operation on the other
tabs.
fixes ADMIN-1000
test plan:
- follow the steps in the ticket.
> expect the UI to work as expected
> expect no js error in the devtools console
Change-Id: Ic046d926c6fa040d081e920efd0b2c0f4c557c9d
Reviewed-on: https://gerrit.instructure.com/151025
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Can now set whether a developer key require scopes or not.
Legacy behavior of scopes is to allow dev keys to have
access to all endpoints, this allows for the continuing
behavior.
Fixes: PLAT-3345
Test Plan:
- Go to a create/upate a key
- Notice the require scopes checkbox
- Click the require scopes checkbox so that it is
toggled off
- Scopes ui should be removed and saving the key
persists the state
- attempt to access an endpoint using the changed
endpoint that had scopes, it should be able to act
like a legacy key
- go back to the key management modal and flip the
require scopes back to on.
- attempt to access an endpoint that does not have a
scope for the dev key, should fail
- for a legacy key, the scopes ui should be off when
first editing.
Change-Id: I0a53ff8a44b80081b518d780a8288f4cc4c36027
Reviewed-on: https://gerrit.instructure.com/150216
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
Tested-by: Jenkins
fixes RECNVS-462
in a production-like environment, the redirect to inst-fs happens after
a redirect to the files domain. on the files domain, the user's session
is not preserved and @current_user and logged_in_user are not set. but
in their place a value indicating the user is placed in the session.
when that value is present and the current user is absent, inst-fs
should use the session value in generating JWTs.
note: currently the session value only indicates the @current_user and
any information about the logged_in_user, if different, is lost when
arriving at the files domain. this will be fixed in a separate commit;
until it is, inst-fs will not work with a files domain while
masquerading.
test-plan:
- have a canvas environment with a files domain and inst-fs enabled
- upload an image to a course
- open the network tab in the developer tools then preview the image
- there should be a `preview` request to the current domain, which
redirects to the files domain
- there should be the request to the files domain, which redirects to
inst-fs
- there should be the request to inst-fs that returns with a 200 and the
image (i.e. the preview works)
- the JWT in the inst-fs request should include the correct user_id
claim when decoded
Change-Id: Ic804b52e24739a06355df5584d3f189ae8340366
Reviewed-on: https://gerrit.instructure.com/151070
Tested-by: Jenkins
Reviewed-by: Michael Jasper <mjasper@instructure.com>
QA-Review: Collin Parrish <cparrish@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
closes RECNVS-457
Test plan:
* retrieve wiki page(s) using the graphql node or legacyNode field
Change-Id: I43310803cf74139a6527ba10f628d1bc7a8a21c1
Reviewed-on: https://gerrit.instructure.com/150759
Reviewed-by: Jonathan Featherstone <jfeatherstone@instructure.com>
QA-Review: Collin Parrish <cparrish@instructure.com>
Tested-by: Jenkins
Product-Review: Cameron Matheson <cameron@instructure.com>
closes RECNVS-456
Test plan:
Retrieve modules from the graphql api using the node (or legacyNode)
field
Change-Id: I891b7c0cf5160186db68da0230aed5ffd2a75f13
Reviewed-on: https://gerrit.instructure.com/150530
Reviewed-by: Jonathan Featherstone <jfeatherstone@instructure.com>
QA-Review: Collin Parrish <cparrish@instructure.com>
Tested-by: Jenkins
Product-Review: Cameron Matheson <cameron@instructure.com>
Right now, eslint will tell you your imports should look like:
import bar from ‘compiled/foo/bar’
import {map} from ‘loadsh’
import baz from ‘../baz’
Once we get rid of all the “jsx/*” and “compiled/*” stuff from our
import paths and just use relative paths it will tell you to do:
import {map} from ‘loadsh’
import bar from ‘../../foo/bar’
import baz from ‘../baz’
So it doesn’t make sense to complain about this now and tell people
To put those compiled/foo paths up with the stuff from NPM and not with
the rest of the local stuff.
Note: it _is_ still encouraged to put all your imports in this order:
“nodeJS builtin (eg: import {readFile} from ‘fs’)”
"external (from node_modules)”
“local/relative (eg: ‘compiled/foo’ or ‘../bar’)”
There’s just not an eslint rule that can enforce that for us right now.
Change-Id: I83b0009882d525e9b999b8f9f5991361ce7981fa
Reviewed-on: https://gerrit.instructure.com/151102
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Closes: CORE-1451
Test plan:
* look at https://instructure.design/#CHANGELOG to see if anything
Looks interesting.
(I couldn’t see anything that should affect us)
Change-Id: I1cee6c0db65c64fb5f827efbce8d32c03fe1b5a6
Reviewed-on: https://gerrit.instructure.com/151206
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
This helps us track and deal with custom file uploads a bit
better. In particular it provides the ability to remove previously
uploaded files.
closes CORE-1418
Test Plan:
- Upload a custom css/js file to the theme editor
- Preview/apply changes / save the theme
- Open the theme, select a new file to replace the one you
previously uploaded
- Click the reset button to the left of the input
- It should reset the value back to the previous value
- Click the reset button again (which is now actually a "X" to
clear the upload.
- Preview the changes, the custom css/js file should be gone
Change-Id: Id64fabc4ecc957af59a0b044a1fbe6393016bdb3
Reviewed-on: https://gerrit.instructure.com/150877
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
Fixes PLAT-3350
Test Plan:
- Create a Site Admin developer key
- Verify the site admin has an allow option, and
on and off
- Verify any sub accounts do not have an allow option,
but only on and off
- Verify that the default status for inheritted key
under root account is 'Off' (when site admin set it
as 'Allow')
- Verify Canvas allows retrieving an access token when
the UI shows a key is "on" in a root account (account
and inherited keys)
- Verify Canvas does not allow retrieving an access
token when the UI shows a key is "off" in a root
account (account and inherited keys).
Change-Id: I93da83384a4000790ca3251a381f6c706ef1a53b
Reviewed-on: https://gerrit.instructure.com/150580
Tested-by: Jenkins
Reviewed-by: Marc Alan Phillips <mphillips@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
fixes ADMIN-1055
note: skipping the selenium spec "student planner Create To Do Sidebar
edits a To Do" because it refuses to pass. I firmly believe it's due
to selenium running against stale planner code, so skipping to get
this change moving forward until we
figure out what's going on in the build
It seems that the newer version of Tray calls the onExited callback
later than it used to. It was in our handler for onExited that we
cleared out the updateTodoItem. Because that was happening too late, the
tray never closed. We get the previous order of execution by attaching
to the onExit event, which fires as soon as the Tray is toggled closed.
test plan:
- click on the + button to create a new item
- fill it in and click Save
> expect the tray to close and focus to be on the new item
- click on the new item
- click on the X close button in the tray
> expect focus to return to the item you clicked
- click on the new item
> expect the tray to open
- make a change and click Save
> expect the tray to close and the item to reflect your
change in the planner and focus to be on the item
- click on the item
> expect the tray to open
- click on Delete and confirm
> expect the tray to close and for the item to be gone and
focus to be on the prior item.
Change-Id: I4cc094898f879e2dc2c6f9572b87288a9a9e5ebc
Reviewed-on: https://gerrit.instructure.com/150557
Tested-by: Jenkins
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Luke Kingsley <lkingsley@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
closes RECNVS-388
refs RECNVS-387
test plan:
* smoke test that address book still works with canvas
Change-Id: I01fb1802f748494ac056eab26b196a7a4f7de10e
Reviewed-on: https://gerrit.instructure.com/150614
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
QA-Review: Collin Parrish <cparrish@instructure.com>
Product-Review: Xander Moffatt <xmoffatt@instructure.com>
Fixes PLAT-3386
Test Plan:
- Download the Editor Button from LTI Tool Provider
- Create a course under root account, then create a new
Page
- In the text box, click on the 'LTI' icon, verify that
the tool does not add an extra 20 px margin to the external
_tool_button_form
- Verify the iframe is not offset downward by 20px and
the horizontal scroll bars can be seen inside the modal
- Can also be checked when creating a new Announcement, new
Discussion or new Outcome
Change-Id: Icddc0582ef0454e7d0b8c0fe5d61423a7f525b1a
Reviewed-on: https://gerrit.instructure.com/151007
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
Fixes PLAT-3393
Test Plan:
- When creating a new developer key, the scope will
be displayed instead of the path in the All Endpoints
box
Change-Id: I8da73d8f2e647cc26836ae78674c7d90fccb3e29
Reviewed-on: https://gerrit.instructure.com/150781
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
This should make it so our post-merge build starts working again
and reporting new coverage information.
closes CORE-1435
Test Plan:
- Run `COVERAGE=true yarn run test:karma`
- It should not fail because of memory issues
Change-Id: I6e103352fa25e130d0ba8072a77c9d81ac11bb85
Reviewed-on: https://gerrit.instructure.com/150666
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
fixes PLAT-3311
test plan:
* run the rake task "doc:api"
* request the scopes from api/v1/accounts/:account_id/scopes
- you should get back a json object that includes the localized name
* request the scopes from api/v1/accounts/:account_id/scopes passing
the query param "group_by=resources_name"
- you should get back a json object with the scopes grouped by
localized resource_name
Change-Id: I2cab1822baef7cdda6471096153d60d4f7fe1e2b
Reviewed-on: https://gerrit.instructure.com/150233
Tested-by: Jenkins
Reviewed-by: Marc Alan Phillips <mphillips@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
Closes PLAT-3410
Test Plan:
- Create a site admin key in the UI.
- Verify you can add and remove scopes from the key via
the UI.
Change-Id: Iaacc11dba5a6988adb1ac18f52d8181c3ccc3a47
Reviewed-on: https://gerrit.instructure.com/151176
Tested-by: Jenkins
Reviewed-by: Stewie aka Nicholas Stewart <nstewart@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
This adds a verification for the contract test between Quiz
LTI and the Canvas LMS Live Event, "quizzes_next_quiz_duplicated".
closes QUIZ-4398
Test Plan:
- follow the test plan outlined in the associated quiz_lti
commit (see JIRA ticket)
Change-Id: I0a755b3a1c39edde70dab5ab36f0fb91c0fbd32e
Reviewed-on: https://gerrit.instructure.com/151157
Reviewed-by: Tyler Burraston <tburraston@instructure.com>
Reviewed-by: Sven Thirion <sthirion@instructure.com>
Tested-by: Jenkins
Product-Review: Michael Hargiss <mhargiss@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
When Anonymous Moderated Marking is enabled, students that are not
assigned to an assignment will now have their submission cells greyed
out in the New Gradebook for that assignment.
closes GRADE-1174
Test Plan:
1. Enable Anonymous Moderated Marking.
2. In a course with at least two students, create an assignment (not
moderated) and assign it to only one student.
3. Go to the New Gradebook and verify that the submission cells for
the not-assigned students for the assignment are greyed out.
Change-Id: Ic3964eb753cc93252038a546622bcd604c3d2c5e
Reviewed-on: https://gerrit.instructure.com/150872
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
Refs: PLAT-3021
Test Plan: For a dev key dk, delete its bindings, run the migration, and
verify dk has a binding with an "on" state.
Change-Id: Iae3628355817e69976ad255eebf7dfae673b9c14
Reviewed-on: https://gerrit.instructure.com/150221
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Stewie aka Nicholas Stewart <nstewart@instructure.com>
until we know whether to change the test or the planner logic.
closes ADMIN-1067
test plan: selenium passes
Change-Id: I001b1b9bf3c0b973fd14f06647ffcbcd1fad298c
Reviewed-on: https://gerrit.instructure.com/151170
Reviewed-by: Indira Pai <ipai@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Tested-by: Jenkins
Product-Review: Ed Schiebel <eschiebel@instructure.com>
test plan: the moodle backup zip file attached to the ticket
should import without failing
(note: this package references nonexistent objects; we are
simply skipping these instead of failing the import.)
fixes ADMIN-1027
Change-Id: I012c8b268af9a5e71267e1802ce363b83f6cf4ee
Reviewed-on: https://gerrit.instructure.com/149975
Reviewed-by: James Williams <jamesw@instructure.com>
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Tested-by: Jenkins
QA-Review: Mysti Sadler <mysti@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
test plan:
* add a student to an unpublished course
and then add them to a group
* the group should not show up for the student
on the calendar page on the list of contexts
on the side
closes #COMMS-1112
Change-Id: If55754d37cd8d459437ffc61717d436bd3964c69
Reviewed-on: https://gerrit.instructure.com/149889
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
Product-Review: Steven Burnett <sburnett@instructure.com>
test plan:
- create a graded quiz
- set a due date for it for a specific student
- change the quiz to ungraded
- the quiz should save successfully
- the override should still appear on the quiz page
and the quiz edit page
- you should be able to remove the override and later
assign the student to a different override
fixes ADMIN-1058
Change-Id: Ia8f0d3d581ab897046ba91b692d9cbcc1639d0ed
Reviewed-on: https://gerrit.instructure.com/150912
Tested-by: Jenkins
Reviewed-by: Mysti Sadler <mysti@instructure.com>
Product-Review: Mysti Sadler <mysti@instructure.com>
QA-Review: Mysti Sadler <mysti@instructure.com>
fixes ADMIN-940
If you created or edited a planner item so it was outside the currently
loaded date range, it would appear to be the only item on that date,
even though if you loaded more the rest of the items on that date would
appear. This is confusing, so instead of displaying that item, we put
a success alert indicating the item was successfully saved and we don't
show that item on a date that hasn't been loaded.
test plan:
- the number of test cases is large and complex and depends somewhat
on data that you can't see in the interface. See the
save-item-reducer.spec.js file to get an idea of what to test.
- Generally you'll want to have 9 or 10 items on today and shorten your
screen such that only today loads. Then add items for tomorrow and
yesterday, and then make sure they load along with the exisiting items
when you load the future or past. Also, with lots of items near the
present, add items in the far future and past, and make sure they load
as well when you scroll to their date.
Change-Id: I8183ec3cbcd90ab1fcf5c13bb17ba671a0f18d90
Reviewed-on: https://gerrit.instructure.com/150238
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Jon Willesen <jonw+gerrit@instructure.com>
QA-Review: Jon Willesen <jonw+gerrit@instructure.com>
closes OUT-2243
Test plan:
With non-scoring rubrics disabled
- verify you cannot create a criterion with
a blank description
- you cannot edit a criterion to have a blank
description
- you cannot create a rating with a blank
description
- you cannot edit a rating to have a blank
description
Change-Id: I06a88230434c22b35653023adebf0f950192a0cc
Reviewed-on: https://gerrit.instructure.com/150704
Reviewed-by: Matt Berns <mberns@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Jenkins
QA-Review: Andrew Porter <hporter-c@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes RECNVS-438
test plan:
- Submit a google doc to an assignment
- Download that submission and verify that it comes from instfs
not a canvas url
Change-Id: Ida1be6b88fb585a30f8909728f6cdd5bd0a79b34
Reviewed-on: https://gerrit.instructure.com/149721
Tested-by: Jenkins
Reviewed-by: Xander Moffatt <xmoffatt@instructure.com>
QA-Review: Collin Parrish <cparrish@instructure.com>
Product-Review: Michael Jasper <mjasper@instructure.com>