refs #8927
test plan:
* create an enrollment with the api, passing a value for the
enrollment[notify]. Verify that no notification is generated;
* create an enrollment without passing enrollment[notify] and
verify that notifications are still created as expected.
Change-Id: I40bd3787cd59936fa5ba38a28d7ecd49523d4242
Reviewed-on: https://gerrit.instructure.com/11383
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
the current code doesn't work because of the attr_accessible on
DeveloperKey
Change-Id: Id6cf7a3eab5808c05c22c43e6095ab6011ec0f76
Reviewed-on: https://gerrit.instructure.com/12275
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
other changes:
- makes it possible to add a student to multiple sections in the course
- pagination of the user lists
- converted user tab js to coffee and backbone
test plan:
- as a teacher go to /courses/*/settings#tab-users
- verify that multiple students can be linked/unlinked to an observer
- verify that users can be added to and removed from multiple sections
- verify that 'Resend Invitation' and 'Remove from course' work
Change-Id: I0f64f72f1937348817990b6f13b6310185b68a73
Reviewed-on: https://gerrit.instructure.com/10865
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
also refactored the file to use updated
conventions and moved a spec to a different
file
Change-Id: If800e426bc0d301b97ec3631695137a4bd7c8132
tested:
* add a file
* edit file
* remove a file
* lock a file
* add a folder
* edit a folder
* remove a folder
* lock a folder
Reviewed-on: https://gerrit.instructure.com/12125
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bryan Madsen <bryan@instructure.com>
fixes#9422
when a submission was graded via grade passback, it was being
assigned a grader_id of 4 because grade passback isn't sending
any grader information.
this fix replaces a potential call to nil.id with nil.try(:id),
which will properly return nil instead of 4.
Change-Id: I9d131043e716a2b4d04e7fba1104d04cd0b15ff3
Reviewed-on: https://gerrit.instructure.com/12266
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
our old jquery ui theme css was float:right'ing these
which means to have them show up in the right order
you would have to create them in the wrong order.
we fixed that with the new jquery-ui-theme but now
we need to fix places where they were in the wrong
order in code.
also the class name to make them blue has changed
so I fixed that too
Change-Id: If0cbebce4788b0c68cd71a08cd2880076e139bc0
Reviewed-on: https://gerrit.instructure.com/12214
Reviewed-by: Joe Tanner <joe@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
when creating a course from the new dashboard, have self enrollment on by
default (provided that the account allows self enrollment)
test plan:
1. enable the new dashboard
2. on your root account, allow self enrollment for manually created
courses
3. create a new course from the dashboard
4. it should have self enrollment turned on
5. on your root account, disallow self enrollment
6. create a new course from the dashboard
7. it should have self enrollment turned off
Change-Id: I79f22b720cf86872b479b3b0fec4bd2a97d08d4e
Reviewed-on: https://gerrit.instructure.com/12225
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Also adds showing a help dialog on two of the options where there are
already more users per time slot than allowed or a user signed up for
more than the allowed appointment limit.
test plan:
* option editing
- as a teacher create an appt group with some or all of the options
checked
- edit the appt group and change the options
- save
- edit the group again to verify that the changes remain
* per slot help dialog
- edit the appt group and uncheck 'Limit each time slot'
- save
- reserve one of the appointments with two students
- as a teacher edit the appt group and check 'Limit each time slot'
- verify that when the input value is '1' the help icon shows
- and verify that when the input is increased to '2' the help icon
disappears
* limit appointments help dialog
- edit the appt group and uncheck 'Limit participants to attend'
- save
- as a student reserve more than one appointment slot
- as a teacher edit the appt group and check 'Limit participants to attend'
- verify that when the input value is '1' the help icon shows
- and verify that when the input is increased to '2' the help icon
disappears
Change-Id: I34cd4e0604db30e7e752fd092fd70c6af2443dfe
Reviewed-on: https://gerrit.instructure.com/11863
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
closes: #9243
test plan: look at how breadcrumbs look
Change-Id: Ib55dfd8b0eb7c30bab08b38732b7eb108baa73f2
Reviewed-on: https://gerrit.instructure.com/12232
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
test plan:
go to a page that has a date picker,
make sure it looks good
Change-Id: I02d2846e5bc7064e261bfb26cf0b23d8bae7ec75
Reviewed-on: https://gerrit.instructure.com/12160
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
fixes#6227
test plan: Make a non-SIS course. Verify that teachers and designers can
still delete and reset the course, but TAs cannot.
They shouldn't see the buttons to do so, either.
Change-Id: I413a7646eaf7132b6b41d51bce4b05bb1b490b1c
Reviewed-on: https://gerrit.instructure.com/12151
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
our current version of require.js is unable to optimize loadDir correctly.
just explicitly include each template and create a map.
test plan:
1. on unoptimized canvas, go to the registration page
2. dialogs should appear when you click the buttons
3. on optimized canvas, go to the registration page
4. dialogs should appear when you click the buttons
Change-Id: Ifb55d739ac0bc485e64969bc4251c3a2d678d4c6
Reviewed-on: https://gerrit.instructure.com/12224
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
refs #3341
there is some backend support for anonymous peer reviews but it was never
finished and exposed in the UI, except for when posting a peer review via ajax.
this removes the visible traces of the feature until it can be completed.
test plan:
- leave a peer review comment on an assignment
- when the comment is inserted into the page, the author should be your name,
rather than 'Anonymous'
Change-Id: I8ecaf4ab8941b4c0f3f80605445d7361ed2b2747
Reviewed-on: https://gerrit.instructure.com/12171
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
API documentation and examples for Calendar Events and Appointment Groups.
Clean up some value_as_boolean usage, and fix a couple little issues in
the calendar APIs
test plan:
* build documentation
* it should generate and be correct
* run API specs
* they should pass
Change-Id: I4c57ac91a99e4eb04f5ba1741bb4f5968d0a0b14
Reviewed-on: https://gerrit.instructure.com/12209
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
a masquerading user should not be able to see a list of the masqueradee's
google docs file. additionally, a masquerader should not have the google docs
tab as an option for file upload submission.
test plan:
- in an account with google docs enabled
- in a course with a file upload assignment
- masquerade as a student who has google docs enabled
- go to the assignment tab and click submit
- google docs should not be an option
- stop masquerading, and log in as the student
- go to the assignment tab and click submit
- you should be able to successfully commit and file from google docs
Change-Id: I31ca6e7ca4b89331c9eabca7130eb7fc47417875
Reviewed-on: https://gerrit.instructure.com/12170
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
fixes: #9244
test plan: in all the browsers you can, look
at the wiki sidebar and make sure the tabs don't
wrap to a new line
Change-Id: Ifcd630c86f97fb42a9ca2cfa463ac1cf47a2b311
Reviewed-on: https://gerrit.instructure.com/12206
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
test plan:
* enable parallel SIS imports in plugin settings
* do an SIS import that will parallelize
* it should not hang because the jobs don't run
Change-Id: Ib3c32c2ee2378946b7a79c8df2f404dd94eb957c
Reviewed-on: https://gerrit.instructure.com/12242
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
... so that it will be set on both login and logout requests.
test plan:
* Open network inspector and login. Verify that on the login request,
X-Canvas-User-Id is set.
* Log out.
* Verify that on the logout request, X-Canvas-User-Id is still set.
Change-Id: Ib849185cc3e289ae288e1ed2fe0ebae48f26de97
Reviewed-on: https://gerrit.instructure.com/12221
Tested-by: Zach Wily <zach@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
fixes: #9247 refs: #9244
since ie8 can't do gradients we weren't setting a bg
color at all, this will use the middle of the top and bottom
colors
test plan:
look at the tabs of wiki-sidebar
or the date picker popup,
make sure they look good
Change-Id: I518aa5f40670f5184cb2c353454ca238ecfb569b
Reviewed-on: https://gerrit.instructure.com/12205
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Setting a header is the easiest way to plumb something up to apache for
logging in the apache log.
Change-Id: I83fac94de5b4d5a62c976bde9b90f8390f7eb8a1
Reviewed-on: https://gerrit.instructure.com/12219
Tested-by: Zach Wily <zach@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
test plan:
1. Start a new course
2. Observe the light gray colors for "hidden" tabs
screen shot: http://cl.ly/0h1e0c461e3K2n0P2h1r
Change-Id: Id94b4ea647e48590fe11b85788b8fa41077f85c3
Reviewed-on: https://gerrit.instructure.com/12199
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Ryan Florence <ryanf@instructure.com>
it always created them in the default account, so it didn't make sense
anyway
test plan:
* go to the profile page, and add an e-mail address
* on a default account, it should have a checkbox to create an
associated login
* on a non-default account, it shouldn't
Change-Id: I38d216df828c5bbf4fd9579e2ead06241692c8dd
Reviewed-on: https://gerrit.instructure.com/12198
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
fixes#8845
originally, this issue was that if a student was concluded from a course
they would still show up in the list of students to be added to both
collaborations and conferences. this commit fixes that and also prevents
the student view student from showing up in the list of students when
creating a new conference.
test plan
- be a teacher in a course with a few students and collaborations and
conferences enabled
- go to a collaboration and a conference and see the students listed
there (when starting a new collaboration/conference)
- conclude a student from the course
- click student student view, then leave student view
- back in the collaborations and conferences, the concluded student
should no longer be listed, and test student should not be listed
Change-Id: I08da39a79ef1508e53064adf54bfacac0c527457
Reviewed-on: https://gerrit.instructure.com/12100
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Sam Olds <sam@instructure.com>
There is some wording that should change as well, but I think we're
redoing the settings page soon so I'm going to leave that alone for now.
Test plan:
* Click on the page to edit your profile, the URL should be
/profile/settings instead of /profile/edit
Change-Id: Ida9ff2b24c1dc53b07cdf6c17a99152f8c5956af
Reviewed-on: https://gerrit.instructure.com/12134
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Cameron Matheson <cameron@instructure.com>
test plan:
1. clear your cache and/or force refresh
2. you should see the new favicon
Change-Id: Iba44bdb6629ac240b180a5be5be5219c2917a0c9
Reviewed-on: https://gerrit.instructure.com/12173
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
while refactoring, a css class got dropped from the fixed warning bar at the
bottom of the page.
test plan:
- this is currently only testable in the cloud beta environment
- make sure the bottom warning bar looks right, with the light red background
Change-Id: Id115c14d458e0f0c2ba737cd380f58f1e6dfc39a
Reviewed-on: https://gerrit.instructure.com/12180
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
This commit also:
- links assignment popup header to the assignment's url
- brings back the styles for the 'x' in the C2 event popup
test plan:
- create an assignment that is locked until a future date
- as a student click on the event in C2
- the popup should show "This assignment is locked until ..."
- and the popup header should link to the assignment
Change-Id: I3700db6820e39b9711e62ed0f80793f2b66fb81a
Reviewed-on: https://gerrit.instructure.com/11895
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
also cleaned up and refactored the file
Change-Id: I2aaaceac3be5eafc75f9beb1aafd5278a75365fc
tested:
* set delayed posting date and verify
student can't see the announcement
* add entry to announcement as a student
* replies are not visible until after
users post
* attach a file to an announcement
Reviewed-on: https://gerrit.instructure.com/12130
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bryan Madsen <bryan@instructure.com>
A complete api for folder and file management
Also updates the alphabetical sorting features to escape
a backslash caused errors when casting a string to a
bytea in postgres
Test Plan:
* CRUD yourself some files
* CRUD yourself some folder
closes#9163
Change-Id: I0b937f9273077b66ab9d6c37171bec1fcc5380dd
Reviewed-on: https://gerrit.instructure.com/12085
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
fixes issue #137 from the github tickets.
test plan
go to change password as user
should show error if original password is wrong
Change-Id: Ib7fe4472d16f9e95272f9a33190c10c5fd9fa212
Reviewed-on: https://gerrit.instructure.com/11821
Reviewed-by: Jake Sorce <jake@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
test plan:
make a wiki page.
go to the html view.
type:
<button class="element_toggler" aria-controls="thing">Show Dialog</button>
<form id="thing" data-turn-into-dialog style="display:none">
if you see this it worked
</form>
save the page.
click the 'Show Dialog' button.
if it shows the dialog it works.
Change-Id: I818546b7e7cf396b9e8993e5d0067d79240c21fa
Reviewed-on: https://gerrit.instructure.com/11645
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
fixes#9386
Test plan:
* Click on the 'Profile' link in the header, you should go to the
profile settings page
- There should not be a 'Profile' tab in the left nav
* Enable the 'enable_profiles' account setting for your user's
account. Clicking on 'Profile' should now take you to the new-style
profile page
Change-Id: Ie2bcd41ae98ec93d6a423e00936d79fac291be0c
Reviewed-on: https://gerrit.instructure.com/12132
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Users can validly be nil for wikis/discussions from content
imports. This makes the UI a little nicer for those cases
Test Plan:
* Import content from a .zip that has wiki pages in it
* The wiki page history should say Content Importer instead of having no name
* The individual revision page should say it was imported at a time
closes#8053
Change-Id: I5e382c3186d439b2e820c4b4c9103566792f4da3
Reviewed-on: https://gerrit.instructure.com/11897
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
overhaul the FavoritesController to implement an API,
and retarget the web UI on top of this API.
note: /favorites was capable of adding favorite _anythings_,
not just courses - however, in a publicly documented API,
we don't want to encourage users to start creating
favorite files or sections or discussions and then
expect these to have meaning.
it would not be much effort to generalize the API a bit
(parameterizing the object type, but limiting the
allowed types to ["Course"] for the time being) -
if we think this won't make the documentation too
awkward. (we can, of course, make this change once
we actually _need_ it, without breaking backward
compatibility.)
test plan:
- make sure the web UI for course favorites works;
it has been retargeted on the API
- view the API documentation for Favorites;
verify that it was generated properly
- exercise the new APIs:
* GET /api/v1/users/self/favorites/courses
* POST /api/v1/users/self/favorites/courses/:id
* DELETE /api/v1/users/self/favorites/courses/:id
* DELETE /api/v1/users/self/favorites/courses
Change-Id: Ib4b6590af0202896846a5eb75f59a8fabb95fe6c
Reviewed-on: https://gerrit.instructure.com/12032
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
some qti vendors generate file references to files that
might not be where they are specified. This tries to find
them anyway.
Test Plan:
* Import the test fixture for bb_vista qti specs
* The images in the questions should appear
closes#8051#8671
Change-Id: I0cbfd0e8dee8654fe54996a041c81038eb53dd34
Reviewed-on: https://gerrit.instructure.com/10947
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>