add scheduling support to conferences

refs PS-894

test-plan:
requires g/27337 to test functionality
* conferences should behave the same without g/27337

Change-Id: I546e806897fa35bc93b983da2d149e312f502d2d
Reviewed-on: https://gerrit.instructure.com/27338
Reviewed-by: Braden Anderson <banderson@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
add 'links' container to jsonapi-style API objects

fixes: CNVS-9757

Change the authentication log api to return relationships (foreign keys) based
on jsonapi with a links element.  This also changes the page_view object to
also move the relationship (foreign keys) to the links element in the json.

Requires underscore.js 1.5.2.  See g/27313

Test Case:
  Authentication Logs:
    - Create some authentication logs if you don't have any by logging in and out.
    - Test the authentication logs api to make sure its returning in the correct
      format and data.
    - Open the admin tools
    - Search for authentication logs in the logging tab.
    - Search by date.
    - Ensure the page is not broken.

  Page Views:
    - Create page view data.
    - Test the page view api to make sure its returning in the correct
      format and data.
    - Test the analytics page views.
    - Test the user profile page views.
    - Account stats for page views.
    - Generating the CSV's/page views for page views.

  Make sure the API documentation reflects the changes.

Change-Id: Ic8aa9e5da4df58e2816fb348accac62b17ec20d5
Reviewed-on: https://gerrit.instructure.com/26907
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
spec: parallel simple_cov

Change-Id: I774ce9a451cb01a6ff49df9e4b2bf4f7d753def3
Reviewed-on: https://gerrit.instructure.com/27608
Product-Review: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Shawn Meredith <shawn@instructure.com>
Updated fr translation
Updated fr translation
fix application layout for rails 3

in action pack 3.2, yield will return an empty
SafeBuffer instead of nil when there is no content

Change-Id: Ie607392332d08b1e63ccb2fc4ea3057c35e6107e
Reviewed-on: https://gerrit.instructure.com/27600
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
makes scoring details and rubric accessible

fixes CNVS-5262
fixes CNVS-1940

test plan
- create an assignment with points possible
- create a rubric
- attach the rubric to the assignment
- publish the assignment if you're in draft state
- create some student submissions for the assignment
- grade a student's submission, assign the student points in the
  rubric table, and leave some comments
- go to the student's grade summary page (/course/:id/grades/:user_id)
- navigate to the assignment you just graded

* For each icon under "Details" ("X Comments", "See Scoring Details",
  "See rubric results"), do the following:
- click icon, verify that row expands and the correct table appear
- verify that you can keyboard navigate into the table and read
  all contents properly
- click icon again to close, verify that row collapses

- repeat above steps once more *without* toggling each table closed
- verify that you still keyboard navigate into the correct table for
  each corresponding icon with multiple options expanded

Change-Id: I8227d84cddc0f64c7ec15e025be428ecacd82340
Reviewed-on: https://gerrit.instructure.com/27218
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Liz Abinante <labinante@instructure.com>
integrate with switchman in preparation for rails 3

Change-Id: Ib2147e2a5c388ba56c1e558b414da9b7ec4c9cd2
Reviewed-on: https://gerrit.instructure.com/27614
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
Hide group menu options when no unassigned members

Fixes CNVS-9974

Test plan:
  - visit a group set with unassigned members
  - click the set's cog; verify there are options to message and
    randomly assign unassigned members
  - assign all unassigned members to groups
  - click the set's cog; verify there are NOT options to message and
    randomly assign unassigned members

Change-Id: Ic4ab179057bcecd474c968d0ff8bb42968c0cf14
Reviewed-on: https://gerrit.instructure.com/27476
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
catch invalid user ids in rubric assessments controller

also fixes an issue where the submission detail page broke after assessing
a rubric for the first time (never been assessed before)

fixes CNVS-9953

test plan:
- create a new assignment with a rubric for grading
- go to the submission detail page for a student who has never been graded
  with this rubric before (in other words, this will create a rubric
  assessment for the first time)
- grade them with the rubric
- you should be able to re-open the rubric and grade them again without having
  to refresh the page

Change-Id: I7245650b9527e11ec20b66e852a744ce67fb381d
Reviewed-on: https://gerrit.instructure.com/27541
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
put the switch to test environment back in

accidentally removed in 4c2250d

test-plan:
 - have RAILS_ENV=development in your shell
 - run specs
 - they run with RAILS_ENV=test

Change-Id: I6f2baa5ed523535f2c24f3eb26204455717b33fc
Reviewed-on: https://gerrit.instructure.com/27637
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
Tested-by: Bryan Madsen <bryan@instructure.com>
one handlebars to rule them all

closes CNVS-9983, CNVS-9984, CNVS-9997, CNVS-10009

- using bower for handlebars and ember
- using bower for old handlebars precompilation
- using bower for ember precompilation

other notes:

- we don't use `Template` anymore, removed tests
- handlebars never intended for us to be able to
  drop ENV as a global handlebars variable, so
  we just explicitly throw it into the locals for
  each template.
  (https://github.com/wycats/handlebars.js/issues/565)
  

Change-Id: I954d6a2d944dd426fc923fe422020b26174811dc
Reviewed-on: https://gerrit.instructure.com/27497
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
fix acts_as_list for rails 3

Change-Id: I8f95167fd157e11f1041fce6cfe45ecbaf6152f7
Reviewed-on: https://gerrit.instructure.com/27636
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
unauthorize Google Docs

fixes CNVS-1504

test plan:
 - as a student who has not registered gDocs
 - go to submission for an assignment that allows
   file upload
 - go to Google Docs tab
 - Authorize Google Docs access
 - after the process takes you back,
   you should see your Google Docs
 - go to user's profile and remove Google Docs
   from registered services
 - got to the submission of that assignment
 - go to Google Docs tab
 - it should ask you to authorize Google Docs again

Change-Id: I8e3b64eccfd01e57e1657c71b89c631e5925cd58
Reviewed-on: https://gerrit.instructure.com/27171
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
filters unpublished assignments out of student grades page

fixes CNVS-9948

calls for active_published_assignments thru assignment group
rather than just active_assignments

test plan:
add multiple unpublished assignments as a teacher
as a student go to the grades page
unpublished assignments should not be visible

Change-Id: I0d1d1d8f46b9a3447a134b8bd8f40627a0bfb370
Reviewed-on: https://gerrit.instructure.com/27339
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
fix cache invalidation of all site admin users

fixes CNVS-10007

it's only invalidated on the default shard, so only cache it on the default shard

test plan:
 * as a site admin, visit a second shard
 * go back to site admin, and add a new user
 * log in as that user
 * try to visit the second shard
 * it should work immediately

Change-Id: I5a0dc6fde72e9171ee5e49d8221961ec02d35ebb
Reviewed-on: https://gerrit.instructure.com/27602
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
BBB: warn participants in recorded conferences

fixes CNVS-8286

test plan:
  * enable the Big Blue Button plugin
  * create a BBB conference with recording enabled
  * enter the conference
  * verify that the chat log shows a recording warning

Change-Id: Idd0c98dcf1f3913e390b79579e4a3b42ddd01e86
Reviewed-on: https://gerrit.instructure.com/27605
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
BBB: request recordings only if conference was recorded

fixes CNVS-8290

test plan:
  * enable the Big Blue Button plugin
  * create some BBB conferences with short durations
  * wait for them to end
  * verify that they show up in concluded conferences
  * verify that they show "No Recordings" iff they were not recorded

Change-Id: I3bd791e21da45653ffa423d0920574769a8d9fea
Reviewed-on: https://gerrit.instructure.com/27620
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
conferences: reload after starting conference

fixes CNVS-8289

test plan:
  * create a conference
  * click the "Start" button
  * verify that a new window or tab opens
  * wait for the conference to load
  * return to the original window
  * verify that the conference now has a "Join" button
      and does not allow editing type or duration

Change-Id: Ib247693e540fa621e209e0ffa740d6324ccb4dc4
Reviewed-on: https://gerrit.instructure.com/27618
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
remove tinychat code

fixes CNVS-10058

canvas no longer integrates with tinychat; this commit
removes legacy references to it.

test plan:
  * run specs

Change-Id: I4887e901d57ff39f8554af3e4eacd52ec4edd6e5
Reviewed-on: https://gerrit.instructure.com/27621
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Braden Anderson <banderson@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>