Commit Graph

5995 Commits

Author SHA1 Message Date
Brian Palmer d118c9ede1 don't log an ErrorReport for 450 Recipient address rejected
This isn't an actionable error. Though at some point it'd be nice to
display a message to the user if their emails are consistently failing.

Change-Id: Ia760214c355976592373404b03a41d9ff64034e7
Reviewed-on: https://gerrit.instructure.com/16566
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-02-12 17:45:10 -07:00
Shawn Meredith d1a6006a1c jenkins build and rerun summary
Change-Id: I6f24cf17204006290c5e1108510bbe011bdd3305
Reviewed-on: https://gerrit.instructure.com/17405
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jake Sorce <jake@instructure.com>
QA-Review: Jake Sorce <jake@instructure.com>
2013-02-12 16:02:54 -07:00
Jon Jensen 62ab539d01 add course and account level large_roster settings, fixes #CNVS-3773
there is no ui for this (yet)

test plan: N/A

Change-Id: Ifed7192dc23b7e92681bd03bc68ad16ace509205
Reviewed-on: https://gerrit.instructure.com/17614
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2013-02-12 15:54:41 -07:00
Dave Jungst c94997f5ed added better css selectors to links
Change-Id: Ib26fe17d3dba3823e740043e41e4857aa5ffdc3a
Reviewed-on: https://gerrit.instructure.com/17648
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jake Sorce <jake@instructure.com>
QA-Review: Jake Sorce <jake@instructure.com>
2013-02-12 15:47:52 -07:00
Ryan Florence a70a6d91fc CollectionView and SearchView updates
- fixed issue where items weren't being inserted
  because they couldn't find the sibling element
  in CollectionView
- typos in View.coffee
- abort old requests in SearchView
- doc formatting changes

Change-Id: I0851d994338c8b5050865354b4e4bf4c3ffb1a45
Reviewed-on: https://gerrit.instructure.com/17618
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
2013-02-12 13:34:06 -07:00
Stanley Stuart fe4cbf8ee9 add varied due date functionality to the assignments edit page
closes CNVS-747

test plan:
  - go to the assignments edit page
  - you should be able to create new assignment overrides as a teacher
  - you should be able to update existing assignment overrides as a
    teacher
  - make sure you are able to delete assignment overrides
  - make sure that using the "add due date" button, you cannot add more
    overrides than the number of the sections of the course + 1 (the +1
    is for the due date representing everyone else.
  - make sure that you can not remove the last override when hitting the
    remove buttons to the right of overrides when you have more than one
    override.
  - make sure the remove button disappears when you only have one
    override, and reappears when you add an override.
  - ensure the dates you enter on this page propogate to the assignments
    show page and other areas of Canvas.

Change-Id: I974924797d9d4783c7f6ae93a25c356112fc0f54
Reviewed-on: https://gerrit.instructure.com/17342
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2013-02-12 13:23:22 -07:00
Simon Williams 5cc715b967 refactor assignment show/edit to use backbone
change and clean up the assignment show and edit pages to use new code
standards and to follow the style guide.  separates the logic for viewing and
editing an assignment and moves editing into a backbone model.o

closes CNVS-930

test plan:
- make sure you can still view and edit existing assignments.
- make sure all fields in the assignment form work (enable turnitin and
  assignment freezing for a comprehensive test)
- make sure submitting an assignment as a student still works
- make sure downloading and uploading submissions as a teacher still works
- make sure adding a new assignment group, group category, grading standard,
  and rubric still work
- make sure the show page renders correctly for both a student and a teacher.

Change-Id: I9ca6c5d56eb386d35a62f6b816a03ebebda662d4
Reviewed-on: https://gerrit.instructure.com/16823
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
2013-02-12 13:22:18 -07:00
Ethan Vizitei 317b0a53c7 gradebook history api
fixes #CNVS-2802

This provides a reimplementation of 
the functionality in 'lib/submission_list.rb'.
That lib file has been used to produce
a grade book history page, but it loads
the entire history of the course at once,
which is untenable.  This take all the same data,
and provides it through a paginated
API endpoint.  Using this API, a rich front
end will be possible to create in order to replace
the current large grade book history page, 
one that makes API calls to reveal data further d
own the tree as it is requested.  This is an 
unusual API endpoint in that it does not present 
data as it is in the database, there is a series 
of transformations that the submission data is
put through to arrive at a versioned history
where each node contains within itself some
contextual knowledge of the flow of the
submission progress (each version knows
what the grade of the version before it was, 
and what the grade is today, for example).

TEST PLAN:
This is a new API endpoint and does not
yet get used by any front end code yet.
It can be played with by performing some
valid API queries against the following paths:

/courses/:course_id/gradebook_history/days
/courses/:course_id/gradebook_history/:date 
^ date is like "2013-01-31" ^
/courses/:course_id/gradebook_history/:date/graders/:grader_id/assignments/:assignment_id/submissions
(yes, that last one is huge, but it does follow
the nested structure described by the original
grade book history page).

The user that is selected for testing needs to 
have the "manage_grades"
permission on the referenced course.  API
documentation is available on the controller class
app/controllers/gradebook_history_api_controller.rb

Change-Id: I18e0b4b967d6c20ad47b86e98adbc15b87276098
Reviewed-on: https://gerrit.instructure.com/17366
QA-Review: Clare Hetherington <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2013-02-12 08:32:24 -07:00
Zach Pendleton b823acd214 optionally lock all course announcements.
fixes CNVS-3116

add course setting to default all its announcements to
'locked.' this setting is managed from the course settings
page.

test plan:
  * edit a course from its settings page and check the
    'Disable comments on announcements' checkbox;
  * create a new announcement in the course and verify
    that it is automatically locked;
  * uncheck the 'Disable comments on announcements'
    checkbox, create an announcement, and verify that it is
    unlocked.

Change-Id: If535abbbb0849284c8a6dfc2e6a6d42861796777
Reviewed-on: https://gerrit.instructure.com/17436
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
Tested-by: Zach Pendleton <zachp@instructure.com>
2013-02-11 16:55:32 -07:00
Cameron Matheson 2a013b6b7c gb1: don't call assignment_json in slave block
fixes CNVS-3765

assignment_json may write to the db when module progression is
configured

Change-Id: If0f807dc390ab1ab6fd46c4de62a65195e133b18
Reviewed-on: https://gerrit.instructure.com/17624
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2013-02-11 16:45:04 -07:00
Cameron Matheson 906a59c8f5 make gradebook.csv less slow
fixes CNVS-3606

Test plan:
  * download some gradebook csv in a large class
  * experience euphoria and surprise as your gradebook csv is quickly
    delivered

Change-Id: I44e5fe14d73993d669eb6600072d6e2d125ad3cc
Reviewed-on: https://gerrit.instructure.com/17593
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
2013-02-11 16:44:16 -07:00
James Williams 8950486487 link to course users page on course statistics students tab
change the link for each student on the course statistics
students tab, to link to the course specific user page,
not the institutional user page

also change the permissions so that teachers
cannot visit that page by default

test plan:
* create a course with a teacher and student
* login as a student into the course (so you'll
 show up in the list of recently logged-in users)

* as a teacher:
 * go to course settings -> course statistics page
  -> students tab
 * the link on the users name should go to the
 course users page (e.g. "/courses/:course_id/users/:id")
 as opposed to the root users page ("/users/:id")
 * also, try, as a teacher to visit the root users page
 ("/users/:id") for the student, confirm that you cannot visit it
 with default teacher permissions

closes #CNVS-2964

Change-Id: I629448cc42de860ad3be4dfa7ff5fd32818f4fdd
Reviewed-on: https://gerrit.instructure.com/17438
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2013-02-11 16:39:44 -07:00
Zach Pendleton f1697672ec fix conversation scoping for masquerading site admins.
previously, :for_masquerading_user scope was restricting
site admins that didn't have become_user permissions on
the site admin account. this commit unrestricts all users
in the site admin account.

test plan:
  * create a user in the site admin account that does not
    have :become_user permission in that account;
  * as that user, masquerade as a user in another account
    and navigate to their inbox;
  * verify that their messages display.

Change-Id: Id6f9357af2f2885c6307156a49e98f66db230276
Reviewed-on: https://gerrit.instructure.com/17332
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-11 16:12:14 -07:00
Mark Ericksen a39609e240 Give calendar event API assignment results sane default ordering.
Fixes #CNVS-1989

NOTE: This is not a perfect solution as that would require
examining all overrides and sorting before paginating. This
solution gives a more sane default order rather than just
natural DB order.

Testing Notes:
============
* assignments should now be returned by the base assignment's
  due_at.

Change-Id: I9db720bf2e24d6e2d4cd0956689223a5e9b6c654
Reviewed-on: https://gerrit.instructure.com/17536
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-11 15:03:14 -07:00
Stanley Stuart 9e53529291 bump sinon.js to 1.5.2
test plan:
  - rake js:test should still work and all javascript tests should still
    pass.

Change-Id: I449efe29d94ea86cd2a2ee94a7e449cb19f1ff90
Reviewed-on: https://gerrit.instructure.com/17036
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
2013-02-11 13:42:53 -07:00
Stanley Stuart 28db5ee471 update qunit to 1.11.0
test plan:
  - rake js:test should run all 669 tests and they should still pass.

Change-Id: I358abf868ba87a3dd2e103b48ff412ce06133659
Reviewed-on: https://gerrit.instructure.com/17037
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
2013-02-11 13:42:40 -07:00
Simon Williams f7ec43909b spec: fix broken spec that created course on wrong shard
Change-Id: I547250f5ad740e2216513f950ef66e25f076cdfe
Reviewed-on: https://gerrit.instructure.com/17607
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
2013-02-11 13:06:45 -07:00
Brian Palmer 7602a0443e bump rails gem and json gem
to address: CVE-2013-0276 CVE-2013-0277 CVE-2013-0269

fixes CNVS-3779

Change-Id: I758b21251101170869c24d2f535318f6756c2d3c
Reviewed-on: https://gerrit.instructure.com/17611
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Reviewed-by: Paul Hinze <paulh@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
2013-02-11 12:47:58 -07:00
Eric Berry eeecead08c wiki page history link shows only if permitted
when a student views a wiki page that they have permission to edit
they should be able to view the history link, else it should be hidden

fixes CNVS-2979

test plan:
- as an instructor, create a page and allow students to edit it
- view the page as a student and ensure the history link exists
- as an instructor, create another page and do not allow students to
  edit it
- view the page as a student and ensure the link is not there

Change-Id: Ic16547a375b3e7546c3656c851f87ed6633a7751
Reviewed-on: https://gerrit.instructure.com/17403
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-11 12:19:35 -07:00
Eric Berry eb72ceefad updated host url to the proper website as used on the link
fixes CNVS-3542

test plan:
- fill out the form to enroll in a canvas.net class
- ensure registration email contains proper website url

Change-Id: I95bf478bdb66cf8c693ed6c4cea364ba4c4fdb73
Reviewed-on: https://gerrit.instructure.com/17480
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-11 09:06:06 -07:00
Kyle Rosenbaum d3d05c3072 spec: plugins_spec thread failures fix
Change-Id: Ifc6d7fc1c33b9fddd4eae57f6949eb0946c724e8
Reviewed-on: https://gerrit.instructure.com/17582
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jake Sorce <jake@instructure.com>
QA-Review: Jake Sorce <jake@instructure.com>
2013-02-08 17:17:50 -07:00
Jeremy Stanley 2929aa1e8e fix importing bb fimb questions with illegal chars
older versions of blackboard let you put crazy
characters like spaces and apostrophes in blank
IDs.  these break imports, so replace them with
dashes.

test plan:
 - import a blackboard course containing fill-in-
   multiple-blank questions with variable names/
   blank ids containing spaces or apostrophes
 - edit the quiz, and notice the variable names
   should use '-' in place of these
 - but the answer text should not be affected
   (e.g., they might have a blank named
   "[what's this]", expecting the text
   "what's this"; with this fix, the variable is
   now named "[what-s-this]", but the accepted
   text is still "what's this"
 - take the quiz, and make sure it's graded
   properly

fixes #CNVS-3430

Change-Id: I01abcf290b9233bba7897d9a23f3e3af5cd5896c
Reviewed-on: https://gerrit.instructure.com/17275
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2013-02-08 16:37:15 -07:00
Jeremy Stanley 0450fce3b5 fix issues with fill-in-multiple-blank imports
two problems:
 1. blanks identified with a number (e.g., "I'm just a poor [1]
    from a poor [2]") were not recognized
 2. multiple blanks accepting the same text were not recognized
    (only the last blank accepted the answer)

fixes #CNVS-3339

test plan:
 - import the course in #CNVS-3339
 - edit the first quiz "2005 Do Yo Remember-E"
 - make sure the "Show possible answers" dropdown box shows
   a possible answer for every blank

Change-Id: Ib2030eb0217be540efe0c87eb3baf13a08953eb2
Reviewed-on: https://gerrit.instructure.com/17218
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
2013-02-08 16:36:48 -07:00
Cody Cutrer db0bf46471 clean up course account associations
closes CNVS-3417

test plan:
 * after the migrations are run, ensure that every section has at
   least one entry in CourseAccountAssociations in the database
 * smoke test SIS imports

Change-Id: I261cad633788efbf4b0c64db34436ef695856fee
Reviewed-on: https://gerrit.instructure.com/17256
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
2013-02-08 16:33:25 -07:00
Jacob Fugal e9ee3dff3b invalidate observee's caches when newly observed
when creating a new observer enrollment, touch the observee's updated_at
as was as the observer's, to invalidate caches.

Change-Id: I699211115d7256c849086b23796acbdf2f5828c1
Reviewed-on: https://gerrit.instructure.com/17566
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
2013-02-08 16:31:03 -07:00
Joel Hough f15fd0bb2a make observers viewing discussions vdd lock date aware
fixes CNVS-518

also included:
- observers now get visible students' section overrides in their
  AssignmentOverride.visible_to scope
- fixed a bug where calling some DatesOverridable methods would
  use an overridden date where you wouldn't expect (see the specs)
- added a method to get the original object from an overridden one
- made DiscussionTopicPresenter handle due dates overridden to nil

test plan notes
- keep an eye out for regressions in displayed due dates
- discussion locking behavior should be as follows
-- viewing the discussion page before the earliest applicable
   unlock date should show a locked discussion page that lists
   the earliest unlock date
-- viewing the discussion after the earliest unlock date should
   show the discussion
-- the discussion page should show the due date when only one
   due date applies
-- the discussion page should show a "multiple due dates" ui when
   more than one due date applies
-- the "multiple due dates" ui should only display entries for
   sections that the observer's linked students are in
-- the "multiple due dates" ui should display lock dates from the
   associated section override or from the original assignment
   if the section override does not override lock dates

test plan
- check an observer not observing student
-- ensure that the discussion locking behavior behaves according
   to the observer's section's override
- check an observer observing one student
-- ensure that the discussion locking behaves according to the
   student's section's override
- check an observer observing multiple student's in more than one
  section
-- make overrides for each student's section that differ in due
   dates and lock dates
-- ensure that the discussion locking behaves according to the
   students' sections' combined lock dates
-- ensure that the discussion page shows a "multiple due dates"
   ui when the discussion is unlocked

Change-Id: I8f2970f0962cdc60cf9a423f01a876bf0ae909d4
Reviewed-on: https://gerrit.instructure.com/17452
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
2013-02-08 16:30:20 -07:00
Jon Jensen 7fe105b278 course setting to prevent students from editing/deleting own posts
fixes CNVS-3178

test plan:
1. as a student, create a discussion topic and a reply
2. as a teacher, uncheck "Let students edit or delete their own discussion
   posts" on the course settings page.
3. as the student, confirm you cannot edit or delete the topic or reply
   that you created
4. as a teacher, recheck the box and save
5. on the discussion index page, confirm the setting is checked in the menu
6. disable it via the menu
7. repeat step 3

Change-Id: Ib7d6ba3604370241de1145aac8e23d35f78591c4
Reviewed-on: https://gerrit.instructure.com/17535
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
2013-02-08 16:11:23 -07:00
Jon Jensen a1cef3e359 clean up Course#settings a bit, don't show hide_final_grades to students
refactor so that adding settings is less painful, and accessors are
automatic. change code to use accessors everywhere, and ensure settings
are handled by course import/export. also fix filter_attributes_for_user
call so that it correctly excludes hide_final_grades in api responses for
students

test plan:
1. toggle course settings (hide_final_grade / hide_distribution_graphs /
   allow_student_discussion_topics)
2. they should work as advertised

Change-Id: I152e2236099b1bc1a42730babef12ac9cc2f9733
Reviewed-on: https://gerrit.instructure.com/17534
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2013-02-08 16:11:00 -07:00
Sterling Cobb 3d0f54bfc4 Fix h tag ordering on a few pages
fixes #CNVS-3553

When you view a page in canvas, the h tags (ie: h1, h2, h3) can be out
of order. This is bad for accessibility reasons as well as html
symantics. This commit fixes most of these problems by remove h tags in
places we don't need them as well as helping to fix the order on some h
tags. Extra styling was also needed to get his to work.

Test Plan
1. Visit the follow pages and make sure there are no styling items
broken.
  * http://localhost:3000/about
  * http://localhost:3000/courses/123/collaborations
  * http://localhost:3000/courses/123/discussion_topics
  * http://localhost:3000/courses/123/discussion_topics/456
  * http://localhost:3000/courses/123/announcements

2. Headers should also be in order for these pages not skipping any
numbers. For instance, you can't have h1, h2, h4 it must be h1, h2, h3,
h4. You can test this by opening the console in the browser and running
this jquery command $('h1, h2, h3, h4, h5, h6')

Change-Id: I8017e335d52850a44ecef974b8e0722a3f768c37
Reviewed-on: https://gerrit.instructure.com/17489
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Bracken Mosbacker <bracken@instructure.com>
2013-02-08 15:52:05 -07:00
Jon Jensen d1434fffb3 don't let students message the whole class by default, fixes CNVS-3536
adds new "Send messages to the entire class" permission, which defaults
to off for students. controls whether or not the "Select All" checkbox
and the checkboxes next to Everybody/Teachers/Students/etc. are
available in the recipient finder.

test plan:

1. As a teacher, confirm that the Everybody/Teachers/Students/Select All
   checkboxes are available in any courses you teach
2. As a student, confirm that the Everybody/Teachers/Students/Select All
   checkboxes are not available in any courses where you are just a
   student
3. In course permissions, let students "Send messages to the entire class"
4. Confirm that students now see all those checkboxes

Change-Id: I5bca82414dc6e1e2f19abdd2e3257ca935d6f2c4
Reviewed-on: https://gerrit.instructure.com/17519
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
2013-02-08 15:47:26 -07:00
Jon Jensen b290e23d31 DRY up recipient finder stuff
this should have been done when ContextSearch was first added, since it
was a straight up copy

test plan:
1. the conversations recipient finder should work
2. the conversations filter finder should work
3. the change section dialog (for a course member) should work
4. the observer dialog should work

Change-Id: I405941fd560c2e92744cb04c9591a58c3a7b2fa4
Reviewed-on: https://gerrit.instructure.com/17499
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2013-02-08 15:47:11 -07:00
Mark Ericksen 999919b762 Focus the "reply" input on discussions after hitting "reply" area.
Fixes CNVS-2994

NOTE: This fix is not specific to Chrome. It appears it was a problem
in all browsers.

Testing Notes:
===========
* In a discussion, click the "Reply" area under the top-level discussion topic
   and verify that the focus is moved to allow immediate typing in the input.
* In a discussion, click the "Reply" area under another user's DiscussionEntry
   reply to the main topic. (at a different level than the root topic). Verify that
   the focus is moved to allow immediate typing in the input.

Change-Id: Ie45fc7786505fd1cf9642dd77112675385936330
Reviewed-on: https://gerrit.instructure.com/17498
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-08 15:03:10 -07:00
Jacob Fugal b27b4984fa spec: fix some spec helpers for sharding
* creating a new course(...) puts the Course on the shard for the
   target account (default: Account.default). if it creates a new
   teacher, that will also be on the course's shard

 * creating a new account_admin_user(...) puts the AccountUser on the
   target account's shard. if it creates a new user, that will also be
   on the account's shard

 * if a new course_with_user(...) creates a new user, put the user on
   the same shard as the course

Change-Id: I3b9675fa0a6d4fd3793bf2a38a7c7accdacd987f
Reviewed-on: https://gerrit.instructure.com/17568
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
2013-02-08 14:18:26 -07:00
Simon Williams 79b49b339e api: fix editing non-frozen attributes in the api
when all possible freezable attributes were set, you could not edit non-frozen
attributes through the api. this also fixes an issue where partially frozen
assignments show the "lock when copied" checkbox.

fixes CNVS-3716

test plan:
- enable the assignment freezer plugin
- check all the possible frozen attribute options
- try to update something not in the list
- it should work

Change-Id: I1ec860f693fc18ddd38684514cddf21749dc5ba1
Reviewed-on: https://gerrit.instructure.com/17547
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
2013-02-08 13:52:37 -07:00
Jeremy Stanley 274a9a3b18 add index and delete endpoints to admins api
test plan:
 - render the documentation; ensure the Admins API docs lists
   these endpoints:
   - Make an account admin (existing)
   - Remove account admin (new in this commit)
   - List account admins (new in this commit)
 - exercise these three endpoints by listing, creating, and
   destroying account admins, with and without custom
   roles

fixes #CNVS-3506

Change-Id: Ie4c3c90de2e8891248df352af68a4e5bc9d2fb2a
Reviewed-on: https://gerrit.instructure.com/17497
QA-Review: Adam Phillipps <adam@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
2013-02-08 13:37:51 -07:00
Mark Ericksen 73c27a24ab Allow the ruby-debug related gems to be conditionally excluded for IDE development.
Fixes #CNVS-3710

Testing Notes:
===========
* Using an editor like RubyMine, add an environment setting for development
   called DISABLE_RUBY_DEBUGGING with a value of something like "1". Specific
   value is unimportant.
* Start a 'debug' session and set breakpoints and verify they fire.
* Using console based debugging, verify that the execution pauses
   when a DEBUG statement is reached.

Change-Id: Iec59efeb291827ee600b7184bce3990145189b47
Reviewed-on: https://gerrit.instructure.com/17540
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-08 13:34:17 -07:00
Bracken Mosbacker 526cf977e2 fix finding media sources by type
It was changed to a string from a symbol in the html5
video commit

Test Plan:
 * doing a media_download?entryId=0_abcdefg&type=mp4 for a media object should work

Change-Id: I65e0cefa3163351b9737c247d1216699f9934182
Reviewed-on: https://gerrit.instructure.com/17549
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2013-02-08 13:32:33 -07:00
Eric Berry 04543fd454 notification url redirects to specific announcement
fixes CNVS-3224

test steps:
- create an announcement which is sent to students
- ensure that the links in the announcements directs to the
  announcement page and not the index page

Change-Id: Id0987d409ead5103679745e6129938e6985dfb22
Reviewed-on: https://gerrit.instructure.com/17374
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-08 13:11:52 -07:00
Duane Johnson 6f1ec3403b refactor google_docs_specs and remove remote dependence
In anticipation of adding a faster google docs listing, first
refactor the specs.

Test Plan:
  - google docs should behave as before

refs CNVS-3592

Change-Id: Ic62d0cd170f491b5f36f516c0a71fde367dab0b2
Reviewed-on: https://gerrit.instructure.com/17548
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-02-08 12:56:35 -07:00
Mark Ericksen ead5794075 Maintain Ruby 1.8 support in calendar_events_api_spec for now.
Fixes #CNVS-3709

Testing Notes:
===========
* Using Ruby 1.8.x, run the calendar_events_api_spec.rb tests
   and verify that they pass. Previously 3 tests would fail
   with Array#sort_by! not being defined.

Change-Id: I39c998c7f788c2fee0f9940824fba4ede3cda52b
Reviewed-on: https://gerrit.instructure.com/17538
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
2013-02-08 12:48:20 -07:00
Zach Pendleton b78ab1c5bc handle wimba conference date parsing in ruby18/ruby19.
fixes CNVS-3556

wimba passes dates as MM/DD/YYYY, but ruby 1.9 expects date
strings given to `parse` to be in DD/MM/YYYY format. this
commit specifies a date format to avoid this issue and
remain compatible with both 1.8 and 1.9 servers.

test plan:
  * create a wimba conference;
  * visit its archive;
  * verify that canvas redirects to wimba and does not
    throw a 500 error.

Change-Id: Ic822a01f950b2465a5328a0b80b8b11c3e63c99d
Reviewed-on: https://gerrit.instructure.com/17507
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-08 12:43:19 -07:00
Stanley Stuart 8ddee6d7ff make conversations specs less prone to failure
Fixes an issue in the conversations selenium specs where the driver was
looking up old element in the page due to the way we were checking for
their existence, and if they did not exist, looking them up.

Also make sure that the elements get refreshed after the message form
submit happens because that appears to modify the dom pretty heavily.

Change-Id: Ib65b9619346acc05d7a69777a6413da286440ee8
Reviewed-on: https://gerrit.instructure.com/17487
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jake Sorce <jake@instructure.com>
QA-Review: Jake Sorce <jake@instructure.com>
2013-02-08 12:42:09 -07:00
Ahmad Amireh 7bec314522 API doc update for a group assignment override
The documentation regarding creating an assignment override with
`group_id` is made more clear and the prerequisites are better stated.

The group assignments feature and the dependency between
`group_category_id` and `group_id` in the stages of assignment creation
and assignment override creation are explained by a diagram sitting in an
appendix entry at the bottom of the Assignments API documentation page,
Appendix: Group assignments.

The diagram image in the appendix is exported out of the raw .xmind file
in doc/diagrams. You can edit that diagram using the XMind program
(http://www.xmind.net/), it's free to use and cross-platform (JAVA).

---

Testing:

  1. generate the API docs: `bundle exec rake doc:api`
  2. navigate to the Assignments API page
     (link: public/doc/api/assignments.html)
  3. take a look at the "Create an assignment override"
     section
  4. also take a look at the bottom of the page

fixes #CNVS-1204

Change-Id: I07660a7e8a58aba2e307849a79557067a7ea77fb
Reviewed-on: https://gerrit.instructure.com/17454
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
2013-02-08 11:50:54 -07:00
Ahmad Amireh 76790e4cff integrate yard-appendix plugin with canvas YARD cfg
Useful things the commit brings:

  1. Source documentation can now include images and out-of-source examples
  2. Source documentation can now be supplemented by "appendixes" for
     documenting advanced or uncommon usage, auxiliary examples, or any
     supplementary content
  3. An implementation of the YARD @see tag that utilizes the canvas
     YARD linkify helper

Necessary changes for integration were:

  * Gemfile now includes 'yard-appendix'
  * Rake task for generating API docs (doc:api) made more readable and
    now supports asset migration (images and examples)
  * Canvas YARD 'api' template now handles :appendix sections provided
    by the plugin
	* Canvas YARD 'linkify' helper modified:
    * uses a shared linker to look up a topic and controller
    * overrides default handling of 'Appendix: ' links
    * defaults to using the @object title as the link body when no title
      was explicitly passed instead of the path.to.object
  * Canvas YARD 'fulldoc' handler respects a
    DOC_OPTIONS[:all_resource_appendixes] that when turned on would
    generate appendix entries in the All Resources section[1]

[1] I've already implemented this functionality because I misread the
requirement (as seen in PB 6) so I thought we could keep it around and
toggle it if need be. The options are inside lib/tasks/docs.rake

---

Testing:

To verify that the changes do not alter or affect the current API docs,
fire up a terminal and do the following (inline comments for directions):

```bash
	cd /path/to/canvas;
	# generate the original docs before pulling these changes
	bundle exec rake doc:api
	mv public/doc public/doc_original
	# checkout these changes into a branch... after that:
	bundle install
	bundle exec rake doc:api
	diff -r -y -q public/doc_original/api public/doc/api
```

The output of the last command should look like this:

Only in doc/api: examples
Only in doc/api: images

To test the actual @!appendix functionality:

  * see https://github.com/amireh/yard-appendix for directions on how to
    define Appendix entries
  * write an Appendix in any controller, optionally reference it in some
    method (using @see or {link})
  * Appendix entry should be shown at the bottom of the controller's doc
    page
  * reference to the appendix entry should take you to it

Alternatively, you can check-out the gerrit change 17454 at
https://gerrit.instructure.com/#/c/17454/ which utilizes this
functionality.

Change-Id: Id667b77ff8d36b0f503e0f6752045e3d05bc3649
Reviewed-on: https://gerrit.instructure.com/17453
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2013-02-08 11:50:37 -07:00
Ryan Florence 299f9ff69d added base SearchView closes CNVS-3600
also:
- added setParam to Collection.coffee
- fixed an issue in CollectionView where calling
  `add` on the collection double rendered the
   item if the collection was previously empty
- updated InputFilterView to send the value on
  `enter` event

test plan:
- see specs

Change-Id: I00f07a86d1d58b88fe157d30c25d39c12309387c
Reviewed-on: https://gerrit.instructure.com/17543
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
2013-02-08 11:01:52 -07:00
Jeremy Stanley 9194e78de4 don't escape the quotes around 'display:none;'
fixes #CNVS-3711

test plan:
 - go to a course settings page
 - you should not see the contents of the Reset Course Content
   dialog underneath the Reset Course Content button
   (see screenshot attached to ticket)

Change-Id: I98c3f0d833f3e2dc7d0be1c86ddb62ea44b291db
Reviewed-on: https://gerrit.instructure.com/17542
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2013-02-08 10:52:40 -07:00
Ryan Florence 2b954b7e68 updated View.coffee
- spec'd out the whole thing
- documented the whole thing
- fixed `optionProperty` to not extend the
  super class's option properties
- added `child` constructor method for saner
  child views, deprecating `views` option config
- added support for @model.present() and
  @collection.present()
- refactored a bit

Change-Id: I20ac13732893e3a7f07f4f3adfb2bb903d5a6157
Reviewed-on: https://gerrit.instructure.com/17521
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
2013-02-08 09:56:43 -07:00
Ethan Vizitei 3ba492fe81 add external tool tag to assignment api
FIXES #CNVS-3625

This attribute was already documented,
but was not actually being included in the
json that the assignment API spits out.

I added the external_tool_tag_attributes
json in cases when the assignment actually
had an external_tool_tag (and had
that as a submission_type).

TEST PLAN:

1) use the API to access an assignment
that has an external_tool_tag

2) you should get "external_tool_tag_attributes"
as an attribute in the assignment json. It should
have the url of the external tool and whether
or not it's a new tab.

Change-Id: Ieebae7df5c169e8c5ae3e31739544014f53c27d3
Reviewed-on: https://gerrit.instructure.com/17509
QA-Review: Clare Hetherington <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
2013-02-08 09:36:38 -07:00
Sterling Cobb 88b8dc7238 Remove un-needed comments.
Change-Id: I38c24473f34d04e054db3c2879c3a7337a6b578a
Reviewed-on: https://gerrit.instructure.com/17393
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2013-02-07 16:38:50 -07:00
Joel Hough 3f60e941a8 fix nil due date comparison bug in upcoming assignments
test plan
- create an assignment with no due date
- create a section override for the assignment with a due date
  less than one week in the future
- as a student not in the overridden section, ensure that pages
  that include the "Upcoming Assignment" list do not crash

Change-Id: I877fd8eabf31b68fb071903050ab3eb228050a70
Reviewed-on: https://gerrit.instructure.com/17520
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-02-07 10:27:52 -07:00