Commit Graph

3259 Commits

Author SHA1 Message Date
Brad Horrocks c252a1d448 Shortcut help for tiny MCE!!
Announcements, Discussions, and Event creation now have keyboard
shortcut help

Fixes CNVS-15960

Test Plan:

create a new discussion, announcement, or calendar event (click more options)
there should be an info icon above the right corner of TinyMCE
click it to view the shortcuts
make sure the keyboard shorcut works.

Change-Id: Ied6590b034b9e45f49408be9cff21b75eb7ef82a
Reviewed-on: https://gerrit.instructure.com/44643
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2014-12-03 18:01:36 +00:00
Brayden Lopez 2735b2bf82 Fixed XSS in Conversations and Groups
fixes CNVS-16669
fixes CNVS-16671

test plan:
- For CNVS-16669: 
 * Follow along with https://www.youtube.com/watch?v=xJaHATmQeKA
 * Make sure that there is no prompt (or xss in general)
- For CNVS-16671: 
 * Follow along with http://youtu.be/6ZjWT63qMbI
 * Make sure that there is no prompt (or xss in general)
- In general:
 * Make sure all errorBoxes do not sanitize the html that is not supposed to be sanitized (I looked for ones that use html in the message, couldn’t find any). 
 * No parsed html (as a result of user input) in any error boxes.

Change-Id: If01cacdb860b9ef71df952d289e03b6f125a584f
Reviewed-on: https://gerrit.instructure.com/44878
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Alex Boyd <aboyd@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-12-03 16:55:34 +00:00
Derek DeVries b10ce172c6 allow readonly view of quiz with group that pulls from question bank
fixes CNVS-17126

test plan:
  - as a teacher
    - create a quiz with a single group that pulls questions from a bank
    - save the quiz

  - go to permissions at /accounts/self/permissions
    - change "Manage (add / edit / delete) assignments and quizzes"
    - set to "Disabled" for teacher

  - as a teacher visit the created quiz
    - you should see "See Full Quiz" link in the sidebar
    - visit this page
    - it should show you the quiz in readonly mode without giving an error

  - also check for regressions around quiz edit page with question banks

Change-Id: Ifa9ad9577407199b1c355e67faa37270f91adc0d
Reviewed-on: https://gerrit.instructure.com/45061
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-12-02 22:43:00 +00:00
Sterling Cobb b68c9064f5 allow file previews to have dynamic sizes
fixes CNVS-16871

Previously, if you went to new files and a file to preview, it was
stuck as always being 150px by 100px. Also there were some other css
issues associated with this. This commit fixes that by putting the
arrows on the side of the preview panel, streaching the preview frame
to expand and take up as much space as possible and fixing a few other
minor css things.

Test Plan
Given you have new files enabled
And you are on the new files page
And you have a few image and doc files uploaded
When you click on a file to view its preview
Then the preview should appear
And the next and back arrows should be on the far left/right side
And the center preview should expand to fill up the whole space between
the arrows

Change-Id: I0cbbea63b96f566daf5e2ee8d78d7fe5b36c4824
Reviewed-on: https://gerrit.instructure.com/44845
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-12-02 22:31:44 +00:00
Nathan Mills 3f6ac7e174 add variable substitutions and capabilities needed for lti2
fixes PLAT-765

test-plan:
specs pass

Change-Id: I8d365f16c954194a103ec7f3047a91c70500712b
Reviewed-on: https://gerrit.instructure.com/44376
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
QA-Review: Nathan Mills <nathanm@instructure.com>
2014-12-02 17:27:04 +00:00
Colleen Palmer b6abfe7208 Change "Make an Announcement"
This changes the wording on add Announcement button from
"Make an Announcement" to "+ Announcement"

fixes CNVS-17066

Test Plan:
- Go to Announcements
- If there are announcements, the button in the top left should now
say, + Announcements
- When there aren't announcements it should read, + Announcements on
the big blue button

Screenshots:

http://cl.ly/image/3D3t1A3j1O3b
http://cl.ly/image/2C2k0q2H290O

Change-Id: I43164db25480d5d21f8774cf0d0d66187245824b
Reviewed-on: https://gerrit.instructure.com/44774
Reviewed-by: Chris Hart <chart@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
2014-12-01 23:24:27 +00:00
Chris Hart cc4e80dcbd Component Reskin: Buttons
Fixes: CNVS-14538

Main changes:
- Removed gradient-based Bootstrap 2 mixin
  for buttons and replaced with a better mixin to
  generate flat button styles.
- Added new BEM button classes alongside the old
  Bootstrap classes. For now, either will work.
- Fixed issues with jQuery UI .ui- button classes
  not playing nice.
- As a result of the new-style buttons having more
  padding, I also had to change the height/padding
  of select boxes, text/email/etc. inputs, as well
  as a few headers in Canvas that had set heights.
- The user-filter input-button combo in Conversations
  was a real pain to get looking right, so you'll see
  a number of changes in the CSS there.

Test plan:
- This change is not behind a feature flag. However,
  please make sure $use_new_styles is turned off for
  testing, so you can see the in-use button colors,
  not the future ones.
- First, go to /styleguide, and check out the buttons
  in both regular and high-contrast UI. Spot check
  to make sure the contrast ratios are acceptable.
- Click around Canvas to see the new buttons in
  action. Let me know if there are any issues you see.

Change-Id: Ie357f5d43f9ba277d7b66e149f50b4dea54b1781
Reviewed-on: https://gerrit.instructure.com/42081
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Colleen Palmer <colleen@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Product-Review: Chris Hart <chart@instructure.com>
2014-12-01 16:42:07 +00:00
Chris Hart 7d75826b26 Color contrast - Course Home page
Fixes: CNVS-15623

Multiple small tweaks to increase foreground-
background contrast in the Courses home page area.

IMPORTANT: This ticket is only for the high-
contrast UI. To enable the high-contrast UI, go
to Settings then scroll down and make sure
"Use High Contrast Styles" is set to ON.

Test plan:
- Enable high contrast UI in Canvas (see above)
- Go through each issue Nathan entered into the
  JIRA and compare with the updated UI to make
  sure it's fixed.
- The webAIM color contrast tester can be found
  here: http://webaim.org/resources/contrastchecker/

Change-Id: Ib83385eab3300b934c23cd88b5bb773a24d4aa32
Reviewed-on: https://gerrit.instructure.com/42343
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
2014-12-01 16:22:39 +00:00
Duane Johnson 55bf74e926 add 'Post to SIS' checkbox to graded discussions
Adds a 'Post Grades to SIS' checkbox to graded discussion topics.

Test Plan:
- when "Post to SIS" feature is enabled, a "Post Grades to SIS"
  checkbox should show up in graded discussion topics.
- the checkbox should save and restore state like all good
  checkboxes do
- when checked, the discussion should be included in the list
  of assignments that are "posted" to the SIS gradebook using
  the "Post Grades" dialog in the Canvas gradebook

Fixes SIS-685

Change-Id: Ib8da85ecd3c07e23e17a2ffde72cf927ad243453
Reviewed-on: https://gerrit.instructure.com/44875
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Tyler Pickett <tpickett+gerrit@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Duane Johnson <duane@instructure.com>
2014-11-26 20:42:51 +00:00
Michael Nomitch 793de6a837 DA - disable due_date field on assig index
fixes CNVS-17014

test plan:
  - assignment index with DA on
    - make an assignment with multiple due dates
      - click "Edit" in the gear menu
      - the modal doesnt let you change the date
        and says "Multiple due dates" with a
        tooltip that has the dates
    - make an assignment with one sel_rel'd date
      - click "Edit" in the gear menu
      - the modal doesnt let you change the date
        and says "Differentiated due date" with a
        tooltip that has the date
    - make an assignment visible to all
      - the due date field works like normal
  - assignment index with DA off
    - these work like normal (multiple due dates dont
    allow you to edit)

Change-Id: I87889ef697e972b1c06a1785a2fb953e6bd8e17b
Reviewed-on: https://gerrit.instructure.com/44847
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-11-26 20:04:00 +00:00
Nick Houle 59daa4119d add post to SIS checkbox for Quizzes
fixes SIS-672

Test Plan:
- confirm the post to SIS checkbox appears while creating/editing a
  quiz with the feature enabled
- confirm posting grades still works

Change-Id: Icd337f4747bf52135e771c70234cd32061f6ed98
Reviewed-on: https://gerrit.instructure.com/44861
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Duane Johnson <duane@instructure.com>
Product-Review: Duane Johnson <duane@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
2014-11-26 19:34:47 +00:00
Jeremy Stanley 38ba224687 return lock explanation message from preview
test plan:
 - have a file that is conditionally unlocked (either by date,
   or by being part of a module that has unmet completion requirements)
 - try to preview the file as a student, using New Files
 - you should see a lock explanation instead of a canvasception 401
   "Unauthorized" error page

refs CNVS-16943

Change-Id: I22a081a1946aa9a82dee3c8b287f5454c226c00b
Reviewed-on: https://gerrit.instructure.com/44943
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2014-11-26 18:14:30 +00:00
Ryan Taylor 0bdfd21310 Prevents blank answers on Fill in Blank question types
Blank answers for a fill in the blank question type aren't very helpful,
and silently slid into a quiz.  If a student enters a blank, they
weren't necessarily penalized for being incorrect.  This prevents blank
answers from entering the DB for these question types.
Note:  This modifies the instructure rails notifications as they
interact with screenreaders.

Closes CNVS-15383

Test Plan:
  - Two question types:
      - Fill in the blank
      - Multiple fill in the blank
  - Confirm JS alert when attempting to save questions with no valid answers
  - Confirm extra blank answers aren't saved into the database
  - Test highlighted text messages rendered as notifications from this
    link:
    https://docs.google.com/a/instructure.com/spreadsheets/d/1KiNh9D30IzNGw6Q_H-DrL2CqYmNWE0qEq_NgVj3ists/edit?usp=sharing

Change-Id: Iba18ad3db8321538fa6c959df22b461399474174
Reviewed-on: https://gerrit.instructure.com/43554
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2014-11-26 16:07:05 +00:00
Tyson Brown 027b70484b adds Publish toggle to Calendar Assignment form
closes PFS-607

test plan:
-  visit the calendar page and create a new assignment
-  there should be a 'publish:' toggle button on the form
-  select 'yes' before submit
-  find and click the new assignment on calendar, click edit, then more
options
-  it should show that the assignment is already published
-  there should not be publish toggle when editing an existing
assignment

Change-Id: Ide67d6150806f3b4bf0bcdd1289b3a9dee322266
Reviewed-on: https://gerrit.instructure.com/44622
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Product-Review: Tyson Brown <tbrown@instructure.com>
2014-11-25 23:00:51 +00:00
Eric Berry d5a808b42b Fixed incorrect usages of accessibility
Fixes PLAT-773
Fixes PLAT-770

Change-Id: I69dadd305cb218f8e86ab6d73fc699bd9eec5903
Reviewed-on: https://gerrit.instructure.com/44831
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Eric Berry <ericb@instructure.com>
2014-11-25 17:34:52 +00:00
James Williams dbc0bf2cd5 fix masquerade page without manage_admin_users rights
we hide half of the name partial anyway in the css, so
may as well just not use it

test plan:
* confirm that the masquerade page renders correctly

Change-Id: Ie4d0bfb4db9edc5988d3f13459b4bde293c991bc
Reviewed-on: https://gerrit.instructure.com/44688
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2014-11-25 15:40:35 +00:00
Sterling Cobb 69ea170eb1 there was an xss script issue in preview iframes
fixes CNVS-17101

When you have a file with a <script> name, when no preview could be
shown for that file, it would run the xss. This fixes that.

Test Plan
Given you are on new files
And you create a file with the name <script>alert("Hi");</script>
When you preview that file
Then you should NOT see a pop up with the words Hi

Change-Id: Iaaeddd9e0121707b6122a3095fa9127b06815d2b
Reviewed-on: https://gerrit.instructure.com/44869
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Product-Review: Sterling Cobb <sterling@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2014-11-25 02:26:42 +00:00
James Williams 7cb416f839 inherit default group quotas from parent accounts
test plan:
* on the quotas tab of the account settings,
 set a group quota for an account
* create a subaccount
* should have the same default quota as the parent
 account

closes #CNVS-14971

Change-Id: Icdb8e4a9666e4b7f03d9819ae7eab42627fff5ef
Reviewed-on: https://gerrit.instructure.com/44678
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
2014-11-25 01:29:18 +00:00
Nathan Mills 6ffeddcc46 setup default lti2 placements
fixes PLAT-691

test-plan

install a test provider using this url template:
/accounts/{account_id}/lti/tool_proxy_registration?tool_consumer_url=https://lti-tool-provider-example.herokuapp.com/register

during install select no placements
it should show up in the assignment and module item selection

regression test module and assignment lti launches

Change-Id: Ie8a3bee8ddb9a8e9cb8671545448a4bb73caae73
Reviewed-on: https://gerrit.instructure.com/42623
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
Product-Review: Brad Humphrey <brad@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
2014-11-24 23:34:28 +00:00
Nick Cloward 5818ed9458 add external integration keys
refs: CNVS-16627

First part is to add the framework for tracking external keys.  This
commit handles the ability to add multiple types easily to the
external_integration_keys with custom rights per type of key.

Test Plan:
 - Make sure the section for External Integration Keys does not display
   when no types are set.
 - Add a few custom types to the external integration keys with all
   combinations of write and read rights.
 - Make sure you can edit the appropriate keys inside the account
   settings page and that they are persistent.
 - Remove a value from a key and it should delete the appropriate
   record.
 - If the user does not have access to any keys the section should not
   display.

Change-Id: I37d56c3ee1bf44876c220e9d5a1ae80a22ac1289
Reviewed-on: https://gerrit.instructure.com/44161
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
2014-11-21 01:19:24 +00:00
Matthew Berns 8647a770a3 fixed speedgrader bug that showed student names when "hide student names" was on
fixes CNVS-1432

test plan:
- create a graded discussion, graded group discussion, url submission, and quiz
- update discussion with entries from students, as well as entries from teacher
- submit quiz and url submission as student
- go to speedgrader
- with hide student names disabled, names should appear as normal on discussions
quiz, and url submission
- enable option to hide student names, references to student should change to
'this student' on the discussion, quiz, and url submission
- other students/teachers on the discussion should be labelled as "discussion participant"
- the grading teacher that participated in the discussion should still have their
name appear on their discussion entries
- avatars should be hidden
- above should be true for both discussion links that appear on speedgrader

Change-Id: I23e42b3c4aaccd0a3454bfbf1dca04d9e79caf38
Reviewed-on: https://gerrit.instructure.com/41860
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Stone <astone@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-11-20 22:19:50 +00:00
Duane Johnson 848a566f6b Implement PostGrades dialog in ReactJS
Replaces the PostGradesModel and PostGradesDialog with functional
ReactJS code.

- more visual feedback for users during correction step:
  - green check mark when whole row/assignment is good
  - uses an "ignore" (minus) icon instead of an X
  - rows stay on page, even after corrected (allowing
    users to correct any mistakes during data entry)
  - when name is not unique a visual hint is shown:
    "The assignment name must be unique"
  - "Ignore All" button is now "Ignore These" since it
    pertains to uncorrected rows, rather than all rows
  - "Ignore All" button becomes "Continue" button after
    all corrections have been made
  - calendar datepicker no longer freezes / has issues
  - when the user has fixed all assignments with errors,
    the title becomes: "No Assignments with Errors, click
    Continue"
  - if the user ignores a single assignment (with the
    minus "-" button) he/she can restore the assignment
    by editing the assignment name or due date

- corrected assignments (names, due dates) are now saved
  all at once when the user presses "Continue" (or "Ignore
  These" if he/she wants to ignore remaining issues)

- the gradebook "Post Grades" button that opens the dialog:
  - appears when selecting a section with an SIS ID, and
    disappears when the section has no SIS ID
  - is now styled like other buttons

- when closing the dialog and re-opening, the dialog
  returns to the "correction" step

- ungraded submissions message on the summary page if
  one or more students have submitted work but the teacher
  has not yet graded it
  - clicking the ungraded submissions message/link takes
    the user to a screen showing ungraded submissions
    that are clickable (takes the user to speedgrader)

Fixes SIS-646
Fixes SIS-654

Change-Id: I464fc85a3b96e5051bdad078e4483d979cfaf3e0
Reviewed-on: https://gerrit.instructure.com/44491
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ken Romney <kromney@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-11-19 23:55:56 +00:00
Brayden Lopez dc24e7b12d Gave labels unique ids so they can be tied to checkboxes.
Labels were tied to the first dialog that popped up, when they should be tied to their own form (or context).

Fixes CNVS-16217

test plan:
- Go to any group
- Edit group settings
- Try to check/uncheck any checkbox by clicking on label.
- Go to other group
- Repeat

Change-Id: I0a25c52773458aa2242af1f43ae908060bc76ed1
Reviewed-on: https://gerrit.instructure.com/44218
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Brayden Lopez <blopez@instructure.com>
2014-11-19 22:05:17 +00:00
Joel Hough f2f74b92f1 link subject to submission in submission comment inbox
fixes CNVS-16948

test plan
- view a submission comment in the submission comment inbox
- ensure that the subject in the message detail view (right side
 display) links to the submission comment

Change-Id: I2ea4bd8c44a52ff6a250b83638b4d9a2556617d0
Reviewed-on: https://gerrit.instructure.com/44541
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-11-19 21:15:47 +00:00
Rob Orton 2a4f455f5f allow excluding students from global surveys
also bump switchman to allow for .uniq across shards

fixes CNVS-14873

test plan
 - site admin survey should go to students by
   default
 - accounts/self/settings should have checkbox to
   include students in global surveys checked by
   default
 - accounts that have unchecked setting should
   exclude students from global surveys
 - regular announcements should still get to
   students
 - checkbox should only be visible to site admin

Change-Id: I5b268f3e19f8710cdaf0e40f37e9af87ff437649
Reviewed-on: https://gerrit.instructure.com/44457
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2014-11-19 20:45:23 +00:00
Brad Horrocks 7303de4036 Optimized endpints for pulling back lots O' results
You can now exclude pseudonym info on api requests.
users_json will now preload section information when you include[]=section

Fixes CNVS-14836
Fixes CNVS-13093
Fixes CNVS-12932
Fixes CNVS-16216
Fixes CNVS-16218

Test Plan:

- Create a course with 800 users
- Create a group set; add 150 groups to set.
- Load groups page it should load way faster than before
- Make sure search isn't slow

Change-Id: Icff28b00141fb3573b9ed9493e8dc38521a368e4
Reviewed-on: https://gerrit.instructure.com/43356
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2014-11-18 22:56:23 +00:00
Clay Diffrient 11c666da62 Adds stars to previous courses on the courses page
fixes CNVS-16717

Test Plan:
	- Go to a course and favorite it.
	- Make the course end date / term in the past.
	- You should now be able to unfavorite it, but not re-favorite it.

Change-Id: Ie289ba1c51f9d62984c4f1a87cb2021094ca29a8
Reviewed-on: https://gerrit.instructure.com/43978
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2014-11-17 21:15:22 +00:00
Jayce Higgins 45529858a0 Makes NVDA not read blank while maintaining spaces
Fixes: SIS-625

Removes BR with P because P isn't read by NVDA

Test-Plan
--With SIS Import enabled--
1.) Navigate to sis import page in accounts/self
--Using NVDA--
2.) Verify that blanks are not read out between
	"no file selected" and "Import Type"
3.) Verify that blanks are not read out between
	"Import Type" and "Full Batch Update"

Change-Id: Ia11f63d305b7aae9d791d4e1cbb6de3bc3fb123a
Reviewed-on: https://gerrit.instructure.com/43961
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Duane Johnson <duane@instructure.com>
Reviewed-by: Nick Houle <nhoule@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-11-14 22:07:25 +00:00
Jayce Higgins 5b6ddeef18 Makes sis import descriptions all visible to NVDA
fixes: SIS-624

Test-Plan
--With SIS Import enabled--
1.) Navigate to sis import page in accounts/self
--Using NVDA--
2.) Verify that both descriptions are read

Change-Id: I9cc4eca38f0e6eedb9e7a3e5f5ad200ce6f5921e
Reviewed-on: https://gerrit.instructure.com/43959
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Duane Johnson <duane@instructure.com>
Reviewed-by: Nick Houle <nhoule@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-11-14 22:07:20 +00:00
Clay Diffrient d9e22160f1 a11y: Gives reason for failure to create item
On the modules page this makes it so a reason is given
for why the failure occurs when it is from a blank assignment
title.

Modifies application.html.erb to have flash messages rendered
outside of #application so that they are read by screenreaders
when modals are open since everything in #application gets
aria-hidden when dialogs get opened.  Also changes
$.fn.errorBox from using '#aria_alerts' in favor of
$.fn.screenReaderFlashError. This necessitates a change in the
spec for login_logout as well.

fixes CNVS-14964

Test Plan:
  - Go to the modules page
  - Add an item
  - Choose assignment type and a new assignment
  - Finish the form without a title
  - A popup tooltip should appear saying that a blank title can't be used.

Change-Id: I7647721cf95d522d61b929ef5e948610ff67f9c8
Reviewed-on: https://gerrit.instructure.com/43799
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2014-11-14 21:32:09 +00:00
Matthew Berns 25363131b3 genericizing file/folder tree to refer to treeItems
fixes CNVS-9047

test plan:
- enable better file browsing feature flag
- go to files page and navigate folders, all expected behaviors should occur
- click 'move folder' and navigate the folder tree, all expected behaviors should occur,
including files moving properly
- go to edit addignment, edit outcome, or edit discusson and click 'embed image' on toolbar
- go to 'Canvas' tab on modal window and navigate tree, all expected behaviors should occur,
including images properly attaching

Change-Id: I703f0db5a096d49d648fab8377001b5fd610a620
Reviewed-on: https://gerrit.instructure.com/43883
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-11-14 20:08:16 +00:00
Ryan Shaw 8af0fe3391 fix link to user files when newfiles is turned on
fixes: CNVS-16393

/dashboard/files did the same thing as /files
in old files. we don't want to continue to support
the /dashboard prefixed url and prefer to just
use /files.

test plan:
* with newfiles turned off:
* click your name in very top (next to "inbox settings logout")
* click the "Files" tab on the left
* it should render the oldfiles browsing interface

* now, with: User.find(<your_user_id>).account.enable_feature!(:better_file_browsing)
* do the same thing, and it should render newfiles

* they both should go to /files. not /dashboard/files

Change-Id: Ic18e6d93031b9ebc6798849cadc441c2a664e1f0
Reviewed-on: https://gerrit.instructure.com/44337
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-11-14 16:28:46 +00:00
Benjamin Porter 90862fcb5f Add TinyMCE Keyboard shortcuts dialog for assessments pages
This adds a little 'i' icon that shows the TinyMCE keyboard shortcuts.
It's a critical change to benchmark leading-edge accessibility initiatives

Fixes CNVS-15962

Test Plan:

    Make sure the 'i' icon works on these three pages.  When clicked it
    should display a dialog that shows the keyboard shortcuts for the
    TinyMCE editor:

        1. Submit assignment
        2. Create/Edit assignment
        3. Outcomes

Change-Id: If20bb1a2ffca89417666968f7d6beff0ebe3cbd2
Reviewed-on: https://gerrit.instructure.com/44024
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
QA-Review: Adam Stone <astone@instructure.com>
Product-Review: Benjamin Porter <bporter@instructure.com>
2014-11-13 20:29:11 +00:00
Cody Cutrer ad93871703 use scopes instead of associations with joins
associations with joins were never really supported by rails

test plan:
 * canvas works

Change-Id: I62dd9b38c7340fce96351f1e3ba91acd6440aa66
Reviewed-on: https://gerrit.instructure.com/42856
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2014-11-13 16:54:22 +00:00
Nick Houle 2ef228be06 UI for adding SIS token to canvas
fixes SIS-641

Test plan:
- generate a token in SIS App
- copy and paste the token in the 'SIS Token Authentication' field
-- you must enable the Post Grades to SIS feature to see this setting
- update the settings and confirm the sis token was saved

Change-Id: I13f2e0136809c42d7b7c7b30c330efb11f6dc29f
Reviewed-on: https://gerrit.instructure.com/44358
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Tyler Pickett <tpickett+gerrit@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Nick Houle <nhoule@instructure.com>
2014-11-13 02:06:47 +00:00
Steven Burnett c3aa4210be Changed discussion section to read Assignment Comments
Changed the disscussion section inside the speedgrader to read
Assignment Comments instead of Discussion.

fixes CNVS-16756

test plan:
- As teacher create an assignment
- have student finish the assignment.
- Post a comment on the assignment under get details.
- have teacher click speedgrader.  Notice the
Assignment Comments section changed from Discussion

Change-Id: Iafd860cf8fba67aae8df1cabe4c2db4e6bbcfa64
Reviewed-on: https://gerrit.instructure.com/44297
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Benjamin Porter <bporter@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-11-12 23:05:43 +00:00
Dan Minkevitch 9e223ccf14 Rename "Recent Activity Dashboard"
On the "Choose Home Page" modal, the
option "Recent Activity Dashboard" has
been renamed to "Course Activity Stream".

closes CNVS-16582

Test Plan:
* As a teacher or admin, go to any course's homepage
* Click the "Choose Home Page" button on the right sidebar
* The first option should say "Course Activity Stream"

Change-Id: Iea2dda10c209c546ccaf84de9b187f6b8caf55c1
Reviewed-on: https://gerrit.instructure.com/44304
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2014-11-12 19:01:41 +00:00
James Williams e57c1fb978 fix account settings page with account notification roles
test plan:
* on the accounts settings page, add a global announcement
* should not return an error after refreshing

fixes #CNVS-16850

Change-Id: I33c80c7abb95590fc43555006ddd3cf2c502907b
Reviewed-on: https://gerrit.instructure.com/44326
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-11-12 18:12:41 +00:00
Sterling Cobb 01a1bffcb1 make editing profile page accessible
fixes CNVS-13993

Things were not being labeled correctly. They are now.

Test Plan

Given you've enabled profiles for your account
And you're using a screen reader
When you go to the profile page
And you edit the profile page
And you edit the "Bio" text
Then the bio text area should be labeled
And when you add or edit a link
Then the links title label should be read
And the links url should be read

Change-Id: I417948c62ec9fe34c805b350f0cdd39cde9c3109
Reviewed-on: https://gerrit.instructure.com/44272
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Sterling Cobb <sterling@instructure.com>
2014-11-12 17:27:51 +00:00
Sterling Cobb 8b528e45eb make external tool list accessible
fixes CNVS-14932

Items should have been displayed in a link and list. They are now
displayed that way so should work in screen readers.

Test Plan

Given you have an external tool configured for a course
When you go to the modules page
And you add a new module item
When you select the "External Tool" dropdown option
Then you should see the external tool listed
And you should be able to click on it whith a mouse
And you should be able to select it with the screenreader and keyboard

Change-Id: I3ace34739c0eda3e45dc53df2d13f48cdf69077b
Reviewed-on: https://gerrit.instructure.com/44229
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Sterling Cobb <sterling@instructure.com>
2014-11-12 17:27:45 +00:00
Sterling Cobb 981f397033 add a file not found error message
fixes CNVS-16157

Currently if you try to go to a file link that doesn't exist, it will
just show you a page not found error. This leads people to contact
support. Now, you see an error message that tells students to contact
their instructure.

Test Case
As a teacher
Given you have exported a course, but only export a courses wiki pages into a canvas
package
And that course you exported has a link to a file in the wiki page
And you create a new blank courses
And import your export the exported course into the new blank course
Then when you navigate to the new courses wiki page
And click on a link in the wiki page
Then an unauthorized access page should appear
And that page should instruct students to contact their instructor

Change-Id: Ic926bb06c931fd61bc56bd42fe6d8b7edefeefae
Reviewed-on: https://gerrit.instructure.com/42475
Reviewed-by: Sterling Cobb <sterling@instructure.com>
Product-Review: Sterling Cobb <sterling@instructure.com>
QA-Review: Sterling Cobb <sterling@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
2014-11-12 17:26:36 +00:00
Dan Minkevitch 7c130e409d Adds email/phone validation to "Add Email/Contact"
Adds client-side validation to the modals in the user
settings for adding "Ways to Contact".

fixes CNVS-16681

Test Plan:
* Log in as a Student
* Go to Settings (/profile/settings)
* Click "Add Email Address" under "Ways to Contact"
  on the right sidebar
* In the "Email Address" field, add an invalid email
  address/<script> tag/link/etc.
* Click "Register Email"
* It should display an error saying the email address
  is invalid

Change-Id: I5c31901f304f117d14b52ebf262dea0dbed2ddd7
Reviewed-on: https://gerrit.instructure.com/44273
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
2014-11-12 17:18:50 +00:00
Aaron Cannon 675ddfe4e3 A11y: Assignment due dates are now read by screen readers
Fixes CNVS-16169

Test plan:
- Create assignments with and without due, start, and end dates.
- Using a screen reader, on the show assignment page, verify that such dates
  are visible to screen reader users, and all of the  information contained
  in the tooltip that shows up on hover is also read.
- Verify that appropriate text is read when no date is set.
- Verify that the visual appearance remains unaffected.

Change-Id: I0daaf64945673f5187602454a122ddf79290ad6c
Reviewed-on: https://gerrit.instructure.com/44030
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
2014-11-12 17:12:10 +00:00
James Williams 193b95ed29 UI and API update for role overrides to allow editing name
also a bit of refactoring

test plan:
* test the role_overrides update API endpoint and confirm
 that a custom role's name is able to be updated
 (using the "label"  parameter)
* test the permissions UI, confirming that you can edit
 the name of a custom role and all things behave as before

closes #CNVS-14159

Change-Id: Ib6d5b08b96293d7b660a047bce4e2342f6d52e65
Reviewed-on: https://gerrit.instructure.com/43936
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-11-12 15:29:36 +00:00
Benjamin Porter 20a1406c9a Create Outcomes: Make "New Outcome" go away when clicked
When creating a new outcome, the default title is "New Outcome".  In
almost every case, the user wants to change the title.  When they click
the text box, we will now erase the default title for them.  We only do
this the first time it is created, so if the outcome is saved with the
default title of "New Outcome" we won't wipe out the title the next time
it is edited

Fixes CNVS-16763

Test Plan:

    - Create an outcome
    - Click in the title text box
    - Observe that the title is a placeholder that disappears when you
      start typing

Change-Id: If39c3aaef375254f57d6759fbde801711ddab142
Reviewed-on: https://gerrit.instructure.com/44066
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Adam Stone <astone@instructure.com>
2014-11-11 17:42:59 +00:00
Benjamin Porter f78fd9a755 Rubrics - Change "Find Outcome Criterion" to "Find Outcome"
Fixes CNVS-16760

Test Plan:

    - If necessary, add an outcome
    - Create/edit an assignment and click "Add Rubric"
    - Observe that the text next to the magnifying glass says "Find
      Outcome" instead of "Find Outcome Criterion"

Change-Id: I1026224351b1f4b6466de64bc26b230618431d51
Reviewed-on: https://gerrit.instructure.com/44060
Product-Review: Hilary Scharton <hilary@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
2014-11-11 03:20:54 +00:00
Derek DeVries 14591b07ad remove non-draft-state features from quizzes
fixes CNVS-16048

test plan:
  - do regression testing around publishing / unpublishing quizzes
    - all publishing / unpublishing scenarios should work correctly
    - make sure to check publishing on:
      - quizzes#index
      - quizzes#show
      - from modules
      - from module items
    - make sure that warnings about unpublished quizzes work
    - make sure that warnings about not being able to unpublish quizzes with
      submissions work
    - make sure that the module sequence footer still works on the quizzes page
    - make sure we can still review published quizzes in speedgrader

Change-Id: I1112e3b28ed6388077bfc165056bb1ab0d84b3fd
Reviewed-on: https://gerrit.instructure.com/42258
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2014-11-10 19:15:24 +00:00
Sterling Cobb cd0e4ee27d add tinymce help menu when creating or editing wiki pages
fixes CNVS-16720

The help icon should now appear next to the toggle the tinymce
editor/html button.

Test Plan
- Test this on both the new wiki page and edit wiki page
As a user that can creating or editing a wiki page
When I'm on the new wiki page, or edit wiki page
I should see a help icon next to "HTML Editor" text (blue circle with
"i" in it)
Clicking the help icon should open the shortcut help dialog

Change-Id: Ic988af3bda092d053e683edc0c0b1ef53cac2fd4
Reviewed-on: https://gerrit.instructure.com/43963
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2014-11-10 18:19:12 +00:00
Spencer Olson cdfb81312c fix CSV uploading GPA scores issue
CSV uploads for GPA Assignments now work correctly,
and update the assignment score and grade.

test plan:

1. Create a GPA Scale Assignment, and assign it a custom grading scheme
   for GPA Grading, such as 4.0 => 100% - 90%, 3.5 => <90% - 80%, etc.
2. Publish the assignment and take it with a few students
3. Score each submission in speedgrader, giving them valid scores (either
    give the assignments valid 'GPA' scores, such as 3.5 or 4.0, or
    give a percentage, such as 70% or 100%)
4. Download the CSV. Notice that the scores are in points
5. Do not touch anything and re-upload the CSV. Notice you get a message saying
   no changes were made, and nothing will be updated (as is expected)
6. Now change the scores on the CSV for the GPA Scale Assignment, entering
   valid scores (If the assignment is out of 5 points, maybe enter 2.0 and 1.0
    as new scores)
7. Upload the CSV. Note that the GPAs reflected in the gradebook are accurate. For instance,
   let's say you created an Assignment that was worth 5 points, and the grading scheme
   stated 4.0 => 100% - 80%. If you entered a 4.5/5 for a student on the CSV and then
   uploaded the CSV, you should now see the student's grade reflected as 4.0 in the
   Gradebook (since 4.5/5.0 points is 90%, which corresponds to a GPA of 4.0).

closes CNVS-12841

Change-Id: Ic8634516a87fe231d1f0990f49063b06fc78641a
Reviewed-on: https://gerrit.instructure.com/43866
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Christi Wruck
2014-11-07 23:30:33 +00:00
Aaron Cannon 9a31d1c960 A11y: Labeled Remove Attachment button on Edit Discussion screen
Fixes CNVS-16550

Test plan:
- Create a discussion with an attachment.
- Edit that discussion.
- Using a screen reader, verify that the remove attachment button is labeled
  and usable.
- Using a screen reader, further verify that the button to add another
  attachment is accessible.
- Using the keyboard only (no screen reader) reverify the above.

Change-Id: Ic6a3b3b7fd9178892a0885e807a68bf6afcebfa4
Reviewed-on: https://gerrit.instructure.com/44019
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-11-07 21:29:09 +00:00
Braden Anderson 2f9171080d course catalog
test plan:
  * open a course's settings page
  * enable listing the course in the public index but not
      making the course content public
  * open the course home page as an unregistered user
  * verify that only the course's title and description are accessible

  * open root account feature flags page
  * enable Course Catalog

  * open your "My Courses" page
  * verify that the right pane includes a "Browse more courses" link
  * click the link
  * verify that you can browse courses allowed in the public index

  * log out
  * verify that the homepage includes a "Browse courses" link

Change-Id: I44f96396859283d76bfe527672612ff71ca4ae67
Reviewed-on: https://gerrit.instructure.com/24682
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Braden Anderson <braden@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
2014-11-07 17:15:10 +00:00
Benjamin Porter 80df426310 Centralize the accessbility keyboard shortcuts code
Move the quiz team code that adds keyboard shortcuts to TinyMCE to
a more central location that accessible by all components

Refs CNVS-15962

Change-Id: Ief6758eaa1609596cb3e0c2efd4fa5a0c3497db7
Reviewed-on: https://gerrit.instructure.com/44023
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Benjamin Porter <bporter@instructure.com>
2014-11-06 22:30:26 +00:00
Cody Tanner fcaedde451 adds checkbox to quiz/show_answers to show correct answers on last attempt
closes PFS-201, PFS-202, PFS-203

Test Plan Happy Path: 
	1) Setup Canvas and run migrations
	2) Create a quiz and set the number of attempts to 2
	3) Check "Let students see their responses"
	4) Check "Let Students see their correct answers"
	5) Check "Only after last attempt"
	6) As a student, take the quiz. On the first attempt verify that you do not see the correct answers.
	7) As a student, take the quiz for the final attempt and verify that you see the answers to the questions.

Change-Id: I6c108174c817959be23770b3dfa9065831907460
Reviewed-on: https://gerrit.instructure.com/43179
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Reviewed-by: Cody Tanner <ctanner@instructure.com>
Product-Review: Cody Tanner <ctanner@instructure.com>
QA-Review: Cody Tanner <ctanner@instructure.com>
Tested-by: Cody Tanner <ctanner@instructure.com>
2014-11-06 21:29:29 +00:00
Dan Minkevitch ef64da28a1 Fixed truncation for course list table
This fixes the truncation that was supposed
to be happening on the /courses list table
(the course name, specifically).

fixes CNVS-15521

Test Plan:
* Create a course with a significantly long name
* Go to /courses
* That course's name should be truncated and the rest
  of the table should be accessible

Change-Id: I53716cbdecdaf35937db34c1494706186424dfd9
Reviewed-on: https://gerrit.instructure.com/43893
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2014-11-06 20:00:45 +00:00
Jeremy Stanley 08761ca51f fix html escaping on content migrations page
fixes CNVS-16673

test plan:
 0. create a course whose name and course code contain
    html code; for example
    <img src=x onerror=prompt(0);>
 1. create another course, go to settings, and select
    "import content into this course"
 2. select "copy a canvas course", and choose the course that
    was created in step 0
 3. the name in the source course column should appear exactly
    as typed; HTML should not be rendered (and scripts
    should not be executed)
 4. if you hover over the course name, the tooltip should also
    show (and not render/execute) HTML code

Change-Id: I127cf2cd2b05967ddc4cf18973b9c86d98b16d77
Reviewed-on: https://gerrit.instructure.com/43889
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-11-06 19:46:13 +00:00
Aaron Cannon e47f79bb77 A11y: Added labels to fields within the Modules Add Dialog
Fixes CNVS-15556

Test Plan:
- Visit the modules page.
- Create a module.
- Click the button to add content.
- Using a screen reader, verify that all form fields are labeled.
- Change the content type and verify all new fields that appear are also
  labeled.

Change-Id: Ia057a9203daa0a6146957da5d7e1b72adc79cb9e
Reviewed-on: https://gerrit.instructure.com/43507
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
2014-11-05 21:57:32 +00:00
Jacob Fugal 9d49603aa1 add :read and :read_sis permissions on pseudonym
fixes CNVS-16482

test-plan:
 * given
   - Sally who's an admin with the :manage_user_logins permission on one
     account (Account1) and a student on another account (Account2)
   - Bob who's a student on both accounts
   - Bob's pseudonym in Account1 has a SIS ID set

 * as Sally:
   - GET /api/v1/users/x/logins
   - returned json should include sis_user_id field

 * as Bob:
   - GET /api/v1/users/x/logins
   - returned json should not include sis_user_id field

 * also, Sally should:
   - see Bob's Account1 pseudonym at /users/:bob
   - not see Bob's Account2 pseudonym at /users/:bob

Change-Id: Ie9fb65bd58a1fcd8aebc5e8f6c86c614e97ee9ca
Reviewed-on: https://gerrit.instructure.com/42908
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Nick Cloward <ncloward@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2014-11-05 21:01:09 +00:00
Jacob Fugal 54649a4d62 clean up user "deletion"
fixes CNVS-1552

any time the UI/API tries to "delete" a user, it should only be trying
to remove it from some root account (the @domain_root_account if not
otherwise specified). if that root account was the last root account the
user was associated with, then the remnants of the user are fully
deleted, but only then. leave User#destroy as a short-cut to delete the
user from all their accounts at once, but should not be invoked directly
from any UI/API actions.

test-plan:

 PERMISSIONS

   being able to remove a user from an account entails being able to:

   - DELETE http://accounts-domain/users/:user
   - DELETE /accounts/:account/users/:user

   both should fail or succeed together

   * given
     - Sally who's an admin with the :manage_user_logins
       permission on one account (Account1) and a student on another
       account (Account2)
     - Bob who's a student on both accounts
     - Alice who's an admin on Account1 with greater permissions than
       Sally

   * Sally should:
     - see "Delete My Account" on her Account1 profile
     - not see "Delete My Account" on her Account2 profile
     - not see "Delete My Account" on Bob's Account1 profile
     - not see "Delete My Account" on Alice's Account1 profile
     - see "Delete from Account1" at /users/:sally
     - see "Delete from Account1" at /users/:bob
     - not see "Delete from Account2" at /users/:sally
     - not see "Delete from Account2" at /users/:bob
     - not see "Delete from Account1" at /users/:alice
     - be able to remove herself from Account1
     - be able to remove Bob from Account1
     - not be able to remove herself from Account2
     - not be able to remove Bob from Account2
     - not be able to remove Alice from Account1

   * given Sally's Account1 pseudonym has a SIS ID but her Account2
     pseudonym doesn't, Sally should:
     - no longer see "Delete My Account" on her Account1 profile
     - no longer see "Delete from Account1" at /users/:sally
     - still see "Delete from Account1" at /users/:bob
     - no longer be able to remove herself from Account1
     - still be able to remove Bob from Account1

 EFFECTS

 * as Sally, remove Bob from Account1 via
   DELETE http://account1-domain/users/:bob
   - Bob's pseudonyms, enrollments, etc. in Account1 should be removed
   - Bob's pseudonyms, enrollments, etc. in Account2 should be untouched

 * repeat using DELETE /accounts/:account1/users/:bob, with the same
   expectations

Change-Id: Ib7612f95d1c7e4cca36d8486950565ec096b4ab1
Reviewed-on: https://gerrit.instructure.com/41591
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2014-11-05 21:00:35 +00:00
Clay Diffrient 9bc33342d5 a11y: Removes duplicate header from wiki pages
Removes the SR-only header and replaces the h2 page title
with an h1 page title (maintaining the same style) which
keeps a duplicate header from being read by SR.

fixes CNVS-16686

Test Plan:
  - Go to a wiki page
  - Screenreader should only have the page title header
    detected once, as a H1.

Change-Id: Ie4f4bb1bd45b50ae62aeb91e4df50392c0e73cec
Reviewed-on: https://gerrit.instructure.com/43854
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
2014-11-05 20:32:13 +00:00
Michael Nomitch c434405934 fix roster user partial rendering
test plan:
  - make a discussion topic
  - as a student make a comment on it
  - go to users/:id_of_student_who_commented
  - under Recent Messages the comment in the
    discussion topic properly renders

Change-Id: Ib8dbf96690846987e6183b75580d7c90c54a1191
Reviewed-on: https://gerrit.instructure.com/43596
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2014-11-05 17:40:43 +00:00
Cameron Matheson 1f8c0c4aa5 show warning when crocodoc is still processing
closes CNVS-15940

Test plan:
  * make a file upload assignment
  * submit a crocodocable submission
  * turn off delayed jobs
  * submit another crocodocable submission
  * in speedgrader, the second submission should not display in
    crocodoc.  you will be notified that the submission is still being
    processed

Change-Id: Ifcdda634dd97a81f17d0d753cade0b80f3e0ebce
Reviewed-on: https://gerrit.instructure.com/42387
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
2014-11-04 20:30:55 +00:00
Andrew Butterfield 280d58645f Announcement/Discussion search field has label
fixes CNVS-14356

Added a label tag with the requisite text for NVDA
Fixed white space
Fixed aria-label

Test Plan
* Navigate to the search box in a discussion (/courses/#/discussion_topics/#)
* Verify that NVDA reads "Search entries or author"

Change-Id: I1827faeb21e31f8ab63024edea4c55bcc70eef4a
Reviewed-on: https://gerrit.instructure.com/43398
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-11-04 20:03:16 +00:00
Clay Diffrient e162126e70 a11y: Modifies DOM order to influence tab order on user page.
fixes CNVS-14406

Test Plan:
  - Go to the account level user page
    (/accounts/##/users/##)
  - In the enrollments section, tabbing through should go to the
    course name before the unenroll link.
  - A screenreader should read the course name prior to the
    unenroll link.

Change-Id: I4436915218d89663a5d4563541e8e251af910038
Reviewed-on: https://gerrit.instructure.com/43767
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2014-11-04 00:09:02 +00:00
Jacob Fugal 8efa352366 add and use :delete permission on pseudonym
fixes CNVS-16481

A user must have permission to update a pseudonym in order to delete it.
In addition, a user cannot delete a system-created pseudonym unless they
can also change its SIS ID.

test-plan:

 being able to delete a pseudonym entails being able to DELETE
 /users/:user/pseudonyms/:id

 * given
   - Sally who's an admin with the :manage_user_logins
     permission on one account (Account1) and a student on another
     account (Account2)
   - Bob who's a student on both accounts
   - Alice who's an admin on Account1 with greater permissions than
     Sally

 * Sally should:
   - be able to delete her Account1 pseudonym
   - be able to delete Bob's Account1 pseudonym
   - not be able to delete her Account2 pseudonym
   - not be able to delete Bob's Account2 pseudonym
   - not be able to delete Alice's Account1 pseudonym

 * given pseudonyms have SIS ids are set and Sally doesn't have the
   :manage_sis permission on Account1, Sally should:
   - no longer be able to delete her Account1 pseudonym
   - no longer be able to delete Bob's Account1 pseudonym

Change-Id: Iad54c6ceb5efcbd32ca1ba3fd011ebe0aa699c94
Reviewed-on: https://gerrit.instructure.com/42776
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2014-11-03 23:04:06 +00:00
Jacob Fugal b423a231d4 add and use :merge permission on user
fixes CNVS-16480

A user has permission to merge any user for which he can manage at least
one pseudonym (doesn't need permission to manage all pseudonyms). To
merge two users, the acting user must have permission to merge each of
them.

test-plan:

 being able to merge two users entails being able to:

 - GET /users/:user1/admin_merge?pending_user_id=:user2
 - GET /users/:user1/admin_merge?new_user_id=:user2
 - POST /users/:user1/merge?new_user_id=:user2
 - PUT /api/v1/users/:user1/merge_into/:user2

 they should either all succeed or all fail

 * given
   - Sally who's an admin with the :manage_user_logins
     permission on one account (Account1) and a student on another
     account (Account2)
   - Sally2 who's a student in Account1, admin in Account2
   - Bob who's a student on both accounts
   - Bob2 who's a student in Account1, admin in Account2
   - Alice who's an admin on Account1 with greater permissions than
     Sally

 * Sally should:
   - not see "Merge with Another User" link at /users/:alice
   - see "Merge with Another User" link at /users/:sally
   - see "Merge with Another User" link at /users/:sally2
   - see "Merge with Another User" link at /users/:bob
   - see "Merge with Another User" link at /users/:bob2
   - not be able to merge herself with Alice
   - be able to merge herself with Sally2
   - be able to merge Bob with Bob2

 * Bob should:
   - not see "Merge with Another User" link at /users/:bob
   - not be able to merge himself with Bob2

Change-Id: I840077e80fbdb35ea5b9ef6c80d6af8e41e90ce9
Reviewed-on: https://gerrit.instructure.com/42775
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2014-11-03 23:03:47 +00:00
Jacob Fugal 1129bc0ab9 add and use :reset_mfa permission on user
fixes CNVS-16478

A user can only reset their own MFA if the setting is not required of
them. They can only reset another user's MFA if they have the :update
permission on all of the other user's pseudonyms (even if it's required
for that other user, since it's just a reset, not full out disabling).

test-plan:

 being able to reset MFA on a user entails being able to DELETE
 /users/:target_user/mfa

 * given
   - Sally who's an admin with the :manage_user_logins
     permission on one account (Account1) and a student on another
     account (Account2)
   - Bob who's a student on both accounts
   - Charlie who's a student in Account1 only
   - Alice who's an admin on Account1 with greater permissions than
     Sally

 * Sally should:
   - see the "Reset Multi-Factor Authentication" link at /users/:sally
   - see the "Reset Multi-Factor Authentication" link at /users/:charlie
   - not see the "Reset Multi-Factor Authentication" link at /users/:bob
   - not see the "Reset Multi-Factor Authentication" link at
     /users/:alice
   - be able to reset her own MFA
   - be able to reset Charlie's MFA
   - not be able to reset Bob's MFA
   - not be able to reset Alice's MFA

 * given MFA is required on Account1, Sally should:
   - no longer see the "Reset Multi-Factor Authentication" link at
     /users/:sally
   - still see the "Reset Multi-Factor Authentication" link at
     /users/:charlie
   - no longer be able to reset her own MFA
   - still be able to reset Charlie's MFA

Change-Id: I38afc269c0baa8a72be77714254f088569b22116
Reviewed-on: https://gerrit.instructure.com/42773
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
2014-11-03 23:03:32 +00:00
Jacob Fugal e08cbe8ca3 add and use more pseudonym permissions
fixes CNVS-16477

The :update permission allows a user to update the pseudonym. Specific
portions of the pseudonym may be controlled by more specific permissions
(see below). To update a user's pseudonym requires :manage_user_logins
permissions on the pseudonym's account. A non-admin can only update
their password (see below) on their own pseudonym, which is separate
from this permission.

The :change_password permission allows a user to update a pseudonym's
password. An admin updating another user's pseudonym can only update the
non-managed password if the account allows admins to change passwords
(:admins_can_change_passwords setting). A user (admin or not) can always
update their own non-managed password. Managed passwords can never be
updated through Canvas.

The :manage_sis permission allows a user to update a pseudonym's SIS id
(sis_user_id attribute). It is simply inherited from the pseudonym's
account.

test-plan:

 * given
   - Sally who's an admin with the :manage_user_logins
     permission on one account (Account1) and a student on another
     account (Account2)
   - Bob who's a student on both accounts
   - Alice who's an admin on Account1 with greater permissions than
     Sally

 UNIQUE IDS:

   being able to update a unique ID entails being able to PUT to
   /users/:target_user/pseudonyms/:target_pseudonym?
     pseudonym[unique_id]=new_unique_id

   * Sally should:
     - be able to update her Account1 unique ID
     - be able to update Bob's Account1 unique ID
     - not be able to update her Account2 unique ID
     - not be able to update Bob's Account2 unique ID
     - not be able to update Alice's Account1 unique ID

 PASSWORDS:

   being able to update a password entails being able to PUT to
   /users/:target_user/pseudonyms/:target_pseudonym?
     pseudonym[password]=new_password&
     pseudonym[password_confirmation]=new_password

   * given both accounts allow admins changing passwords, Sally should:
     - be able to update her Account1 password
     - be able to update her Account2 password
     - be able to update Bob's Account1 password
     - not be able to update Bob's Account2 password
     - not be able to update Alice's Account1 password

   * given both accounts have managed passwords (pseudonyms have SIS ids
     set and accounts have non-password authentication), and still allow
     admins changing passwords, Sally should:
     - no longer be able to update her Account1 password
     - no longer be able to update her Account2 password
     - no longer be able to update Bob's Account1 password

   * given Account1 disallows admins changing passwords, Sally should:
     - still be able to update her Account1 password
     - no longer be able to update Bob's Account1 password

 SIS IDS:

   being able to update an SIS ID entails being able to PUT to
   /users/:target_user/pseudonyms/:target_pseudonym?
     pseudonym[sis_user_id]=new_sis_user_id

   * given Sally doesn't have the :manage_sis permission on Account1,
     Sally should:
     - not be able to update her Account1 SIS ID
     - not be able to update her Account2 SIS ID
     - not be able to update Bob's Account1 SIS ID
     - not be able to update Bob's Account2 SIS ID
     - not be able to update Alice's Account1 SIS ID

   * given Sally has the :manage_sis permission on Account1, Sally
     should:
     - be able to update her Account1 SIS ID
     - be able to update Bob's Account1 SIS ID
     - still not be able to update her Account2 SIS ID
     - still not be able to update Bob's Account2 SIS ID
     - still not be able to update Alice's Account1 SIS ID

Change-Id: I9b08ed67db8e2c664c057bb9259a8b18999b0863
Reviewed-on: https://gerrit.instructure.com/42772
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2014-11-03 23:03:09 +00:00
Rob Orton 1d76c0c8af make account reports a gem
fixes CNVS-14266

test plan
 - all account reports should still work

Change-Id: Ibc378d76571569760e733bd1b8ad87e299a7bff8
Reviewed-on: https://gerrit.instructure.com/41419
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Tested-by: Rob Orton <rob@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
2014-11-03 22:57:35 +00:00
Joel Hough 82d0751897 yo integration
Fixes CNVS-16494

test plan
- configure yo plugin with an api token
- configure a user's yo service with their yo username
 (you'll need to install the yo app and register a user)
- set yo notification preferences to asap
- cause a notification to be sent
- ensure canvas yo's you
- ensure the yo link links back to canvas

Change-Id: I36ed467ed19842c2e92285ae20a3553272698f22
Reviewed-on: https://gerrit.instructure.com/42896
Product-Review: Joel Hough <joel@instructure.com>
QA-Review: Joel Hough <joel@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
2014-11-03 22:53:39 +00:00
Clay Diffrient 1a8a8ad49f a11y: Restricts unauthorized users from hearing move message
This commit deals specifically with the Modules page.

fixes CNVS-16527

Test Plan:
	- Using a screenreader, go to the modules page.
	- As a student you shouldn't hear anything about moving modules
	- As a teacher you should get messages about using the move to dialog.

Change-Id: Ifcd90c27d1d2d8fd9856cf755c52e391828a24cd
Reviewed-on: https://gerrit.instructure.com/43743
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2014-11-03 22:40:55 +00:00
James Williams 81d4adc319 new roles
refactor everything that used to use strings for roles
to use actual role_ids

the apis should be backwards compatible so we don't need
to update (most of) the UI's right away in this commit

test plan:
* regression tests for permissions, role overrides,
 alerts (for account roles), enrolling users,
 adding account admins, etc.

refs #CNVS-15481

Change-Id: Id57fd3104c5c518b6fbf180609950dcddcdd474d
Reviewed-on: https://gerrit.instructure.com/41208
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2014-10-31 19:44:14 +00:00
Jacob Fugal 10fbf837f4 add and use :create permission on pseudonym
fixes CNVS-16476

instead of using the buggy :manage_logins permission on user, make it
more appropriate to the specific account and obvious what's being
checked.

Sally can create a pseudonym for Bob on account XYZ only if Sally has
admin rights on XYZ (:manage_user_logins in particular), Sally's
permissions on XYZ are a superset of Bob's existing permissions on XYZ
(if any), and Sally can already see Bob on some account.

test-plan:

 being able to create a pseudonym on an account entails being able to
 POST to /users/:user/pseudonyms?pseudonym[account_id]=:account

 * given
   - Sally who's an admin with the :manage_user_logins
     permission on one account (Account1) and a student on another
     account (Account2)
   - Bob who's a student on both accounts
   - Charlie who's a student on Account2 only
   - Alice who's an admin on Account1 with greater permissions than
     Sally

 * Sally should:
   - see the "Add Login" link for Account1 at /users/:sally
   - not see the "Add Login" link for Account2 at /users/:sally
   - see the "Add Login" link for Account1 at /users/:bob
   - not see an entry for Account2 at /users/:bob
   - not see the "Add Login" link for Alice at /users/:alice
   - be able create a pseudonym for herself on Account1
   - not be able create a pseudonym for herself on Account2
   - be able create a pseudonym for Bob on Account1
   - not be able create a pseudonym for Bob on Account2
   - not be able create a pseudonym for Charlie on Account1
   - not be able create a pseudonym for Alice on Account1

Change-Id: I5e1e02b6a55a82d8ed1916abccbf545e2f24c2f7
Reviewed-on: https://gerrit.instructure.com/42771
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2014-10-31 04:26:30 +00:00
Jacob Fugal 071723d9dc fix permission check in users/_name partial
fixes CNVS-16479

the can_manage_admin_users variable -- meant to help control whether the
acting user can edit/become/merge/delete the shown user and also whether
the acting user can edit the shown user's time zone -- was always
truthy, since even an empty array is truthy

test-plan:
 * given Bob is a teacher and Sally a TA in the same course, with Sally
   logged in
   - visit /courses/:that_course/users/:bob
   - Sally should not see the "Edit" link

 * given Bob is a student and Sally a TA in the same course, with Sally
   logged in
   - visit /courses/:that_course/users/:bob
   - Sally should see the "Edit" link
   - after clicking the "Edit" link, Sally should not be able to change
     Bob's time zone.

Change-Id: I429a0752a034cc5ff10962dcbacee747cd6ec650
Reviewed-on: https://gerrit.instructure.com/42774
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
2014-10-30 19:05:46 +00:00
Derek DeVries d2c8e0b26a fix issue resaving a quiz after updating a question without saving
caused by a regression from updating routes for rails 4

fixes CNVS-16474

test plan:
  - as a teacher
    - create a quiz with a question
    - publish the quiz
    - update a question on the quiz, but don't save the quiz itself
    - refresh the page
    - you should get a notice that 'you have made changes to questions...'
    - click the 'save it now' button
    - it should save successfully

Change-Id: Id1a8ea918d5d968c63e883c8ee145222ab55a0b9
Reviewed-on: https://gerrit.instructure.com/43560
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-10-30 16:51:09 +00:00
Jon Jensen 6d8bac05b4 i18nliner-handlebars (part I)
extraction and runtime for vanilla handlebars. ember will be part II
because its strings currently don't even get extracted on master
¯\_(ツ)_/¯

differences in generated yml:
1. `%h{...}` placeholders from hbs are just `%{...}`, since html-safety is
   inferred at runtime without needing a placeholder hint (6 occcurrences)
2. inline `{{t ...}}` calls are now extracted (6 occurrences)
3. some trivial whitespace difference around some wrappers (2 occurrences)
4. html-entities are correctly converted into unicode equivalents, e.g.
   `Move To&hellip;` -> `Move To…` (1 occurrence)

test plan:
1. verify string extraction:
   1. `rake js:generate i18n:generate` before and after this commit
   2. confirm `config/locales/generated/en.yml` is identical, except the
      differences listed above
2. verify js translation file generation:
   1. `rake i18n:generate_js` before and after this commit
   2. confirm the files in public/javascripts/translations are identical
3. verify hbs translation keys/scope behavior at runtime:
   1. run canvas w/ RAILS_LOAD_ALL_LOCALES=true and optimized js
   2. use canvas in spanish
   3. confirm that todo está bien
4. confirm you can now use i18nliner-y features:
   1. block helper with no key `{{#t}}hello world{{/t}}`
   2. inline helper with no key `{{t "hello world"}}`

Change-Id: Ic2a2c5cf102ca482919cbb91ac1c154467029685
Reviewed-on: https://gerrit.instructure.com/42942
Reviewed-by: Jennifer Stern <jstern@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2014-10-30 06:25:47 +00:00
Jon Jensen 5a040333cd i18nliner(.rb)
this swaps out (most of) our ruby haax with i18nliner

test plan:
1. verify string extraction:
   1. `rake i18n:generate` before and after this commit
   2. confirm `config/locales/generated/en.yml` is identical
2. verify english defaults:
   1. use canvas in english
   2. confirm everything looks correct
3. verify translation keys/scopes:
   1. run canvas w/ RAILS_LOAD_ALL_LOCALES=true and optimized js
   2. use canvas in spanish
   3. confirm that todo está bien
4. confirm you can now use i18nliner-y features:
   1. call `t` without a key
   2. use the fancy erb block syntax

Change-Id: I979479c0889fe7e31ee0c962a4bd1998ab54d711
Reviewed-on: https://gerrit.instructure.com/42785
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jennifer Stern <jstern@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-10-29 21:59:39 +00:00
Spencer Olson 7c9bfc3292 show correct grading scheme when editing an assignment
closes CNVS-15193

test plan:
-Create a custom grading scheme
-Create an assignment
-Set "Display Grade as" to Letter Grade
-Click "View Grading Scheme"
-Click "Select another scheme" and select your custom scheme
-Save the assignment
-Edit the assignment again and click View Grading Scheme
-Note that it shows the new, custom grading scheme (this was
  incorrectly always showing the default scheme before)

Change-Id: If9b2064964b57a6939d24904b8cacf8178a8dfbe
Reviewed-on: https://gerrit.instructure.com/43368
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
2014-10-28 21:34:56 +00:00
Mysti Sadler d663303c38 Fix Diigo API Calls
fixes CNVS-2467

test plan
 - verify you can set up the diigo plugin with the information in gollum https://gollum.instructure.com/OtherServiceTestAccounts
 - on the user settings page, verify you can use your diigo username and password to register the service

Change-Id: I8d33a8c1c29a013c681488fcc38bbfe7b83cd398
Reviewed-on: https://gerrit.instructure.com/39942
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2014-10-28 17:00:50 +00:00
Andrew Butterfield e5fb3acb34 Add Groups button no longer visible to students
fixes CNVS-15199

Added STUDENT_CAN_ORGANIZE_GROUPS_FOR_COURSE to ENV for check to see if students
are allowed to create groups.

Test Plan
- Allow "New Student Groups Page" in Feature Options tab of Account Settings
- Disable "Let students organize their own groups" in a course
- As a student, visit Groups page and notice that the "+ Group" button
  is hidden

Change-Id: I1379834ad44c0cedb13a41ec636547d4c3ffa1bb
Reviewed-on: https://gerrit.instructure.com/43259
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Matthew Wheeler <mwheeler@instructure.com>
2014-10-27 22:26:17 +00:00
Clay Diffrient 1cb2434884 Adds alt text to the CC image on public syllabus pages
fixes CNVS-14604

Test Plan:
  - Make a course publicly available.
  - Set it to have a Creative Commons license
  - Go to the Syllabus page
  - The Alt Text of the CC image at the bottom should be
    more descriptive of the license something like
    "CC Attribution" rather than "CC_by"

Change-Id: I09cfa277283f301c63775e05de577632657aeb31
Reviewed-on: https://gerrit.instructure.com/43269
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-10-27 20:26:28 +00:00
James Williams 579606c249 spec: refactor context modules selenium specs for draft state
refs #CNVS-15563

Change-Id: Ic68e0374f820b4e37814f2e585d1d046993489ef
Reviewed-on: https://gerrit.instructure.com/43329
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2014-10-27 18:40:03 +00:00
Michael Nomitch 1ab134b35d DA - eportfolio discussion link
fixes CNVS-16170

when a user cant see a DA'ed assignment there
is no longer a link to access it

test plan:
  - make a DA'ed discussion
  - make some comments on as a student
  - take away visibility to this student
  - add it to your eportfolio as the student
  - there should not be a link to go to the discussion
    when viewing as the student
  - as the teacher or a student with visibility, there
    should be a link to go to the discussion

Change-Id: Id72c39985f74b2f52b27edf70923bcb9d75f7ab2
Reviewed-on: https://gerrit.instructure.com/42973
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-10-27 17:08:56 +00:00
Zach Wily 5e65151ea1 pandapub: add plugin settings, a simple client, and add to INST
Adds a PandaPub client and settings UI. This commit doesn't add any new
functionality or feature that use PandaPub - just the plumbing.

running and configuring PandaPub:
 * Start up a local PandaPub instance. Easiest way is with Docker:
     docker run --rm -ti -p 49000:3000  -e ADMIN_USERNAME=admin \
                -e ADMIN_PASSWORD=password zwily/pandapub:latest
 * Log into PandaPub at:
     http://$(boot2docker ip 2>/dev/null):49000/admin
   with admin/password.
 * Create a new application named "canvas"
 * Create a new key with an expiration date in the future. Record
   the key_id and secret.
 * Log into Canvas and go to PandaPub plugin settings:
     base_url: http://{DOCKER IP}:49000/
     application_id: <id from created application>
     key_id: <id from created key>
     key_secret: <secret from created key>
 * In your PandaPub admin section, open the "Console" tab for your
   created application. In the "Subscribe" section, enter "**" in the
   input box, and hit "Subscribe". This will show you the first 50
   events that arrive for the canvas application you just created.

test plan for settings:
 * Verify that the /plugins/pandapub settings page works, saving,
   disabling, etc.

test plan for client via console:
 * Set up and configure PandaPub in Canvas
 * Open a Rails console
 * Run this command to post a pandapub message:
     CanvasPandaPub.post_update("/public/foo", {"a" => 1})
 * Verify that the message showed up in your PandaPub console.

Change-Id: Ifddcbd335293c2a29f532b1e5fd44c23c8b910c4
Reviewed-on: https://gerrit.instructure.com/40311
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Zach Wily <zach@instructure.com>
2014-10-25 04:26:30 +00:00
Nick Houle eee3b09cbd publish_grades refactor
fixes SIS-600
partially reverses g/32659

test plan:
- for a course with and integration id and post grades feature enabled
  post grades button in gradebook should open dialog
- remove due dates for assignments in course
- confirm you're able to add dates in post grades dialog

Notes:
- regression test

Change-Id: I7c7b2109ef083750289290fbb161e47b47bfc4b9
Reviewed-on: https://gerrit.instructure.com/43293
Reviewed-by: Ken Romney <kromney@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Duane Johnson <duane@instructure.com>
2014-10-24 22:41:43 +00:00
Brian Palmer f6900880bf extract delayed_job plugin into separate gem
closes CNVS-15881

This mostly involved adding hooks to the gem for things that we were
directly modifying in Canvas, then hooking into those points in the
canvas config/initializers/delayed_job.rb file.

Periodic jobs scheduling changed a bit as well -- there's no longer
support in the extracted gem for reading a special file under config/,
so I moved our periodic_jobs.rb file to a normal initializer.

test plan: delayed jobs should still work as before, including queuing
jobs, running the worker pool, and in tests.

Change-Id: I9ce57091d18f21f4355011fcb75230193d53facb
Reviewed-on: https://gerrit.instructure.com/42027
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
2014-10-24 20:46:00 +00:00
James Williams ff129a694d make course settings form more accessible
change the course settings form so it's
always a form (similar to the account settings form)
so that way the labels always have referenced elements

test plan:
* using a screenreader, the labels should always reference
the proper input items (rather than labelling nothing
until the "edit" button is clicked)

closes #CNVS-16234

Change-Id: I66d64c5000c6e43291c34536452518ba1dee0945
Reviewed-on: https://gerrit.instructure.com/43091
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-10-24 19:51:47 +00:00
Nathan Mills 639ca7075f lti2 launches from module items and assignments
fixes: PLAT-635 PLAT-652 PLAT-654 PLAT-655

test-plan:
*setup:
register an lti tool using the following url template
/courses/#{course_id}/lti/tool_proxy_registration?
tool_consumer_url=http://lti-tool-provider-example.herokuapp.com/tool_proxy

ignore the canvaception during the registration

testing:
*add some lti tools to module items, including 'default tool'
*make sure all launches, and selecting tools still works
*test the same things for assignments external tools

Change-Id: I0642c10c9b416057764b327d925cb6158fbf5cc9
Reviewed-on: https://gerrit.instructure.com/41726
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
2014-10-24 16:30:59 +00:00
Ahmad Amireh e026c7ad4d CQS: Feature Flag & Ember quizzes purging
- The "New Quiz Statistics" feature flag now converts the regular
  statistics page into the new one that uses the React/CQS client app
- All Ember quizzes code gone
- canvas_ember_urls gem gone
- quiz_moderate feature flag gone
- quiz_stats feature flag is now allowed in prod
- statistics_cqs explicit/hidden route gone, but the statistics_cqs ERB
  and coffee bundle are still there to help ease the transition later

Closes CNVS-16330

TEST PLAN
---- ----

  - go to /courses/:course_id/quizzes/:quiz_id/statistics
    + verify you get the old/regular stats page
  - enable the "New Quiz Statistics" feature flag
    + refresh that page, verify you see the new app

Now turn the flag on and off and play around the quizzes pages, verify
everything looks OK.

Change-Id: I01fc5da80fd206df08338823ffb446a1e3a06ed0
Reviewed-on: https://gerrit.instructure.com/42965
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-10-24 08:47:55 +00:00
Joel Hough 6aa1ccfc2a submission comments in the inbox
fixes CNVS-15693
fixes CNVS-15694

test plan
- regression test conversations
- test submission comments in the inbox

Change-Id: I0da5cea276f6d03ac08aab51143fe13d40503ee7
Reviewed-on: https://gerrit.instructure.com/42063
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
2014-10-24 00:51:36 +00:00
Joel Hough 6de539100b make notification preference buttons always screenreader accessible
fixes CNVS-14758

test plan
- ensure that buttons for all frequencies on the notification
 preference settings page are screenreader accessible

Change-Id: I4ae1651d8d9b7b702fce2b9226b5cb1f49e06403
Reviewed-on: https://gerrit.instructure.com/43186
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
2014-10-23 21:43:40 +00:00
Ryan Taylor 2af63ddd94 Hides Quiz icons in gradebook/grade summary until DB is ready
The quiz icons are hidden away until the appropriate features are out to
allow for monitoring of gradebook/speedgrader edits to quiz scores which
are pending review because of their question types.

Closes CNVS-16399

Change-Id: I689f1dcc94a647a32fe619b215f6b641a8376f84
Reviewed-on: https://gerrit.instructure.com/43180
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2014-10-23 17:55:50 +00:00
Ahmad Amireh 6df57b0a11 Respect course soft conclusion date for quiz subs
Submissions will no longer be creatable if the course has been deemed
concluded (softly; in the sense that its `end_at` overrides the term's
`end_at`, or its term has ended).

In this scenario, we now display a message to students (and teachers):

  "This quiz is no longer available as the course had been concluded."

Closes CNVS-15934

TEST PLAN
---- ----

  - create a course and open its settings page
  - set an end date to sometime in the past
    + do NOT check the option "Users can only participate in the course
      between these dates" yet
  - create a quiz in that course, with like a single question and
    unlimited attempts, and then publish it
  - in another tab as a student, go to the quiz take page, and take it
    once, hand it in, then stay on that page where you can see "Take
    this Quiz Again"
  - now in the teacher tab, edit the course settings and turn that
    option on, save
  - go back to the student tab, do not refrehs, just click that button
    for taking the quiz... and:
    + verify you are redirected back to the same page (e.g, not taken to
      the take quiz page)
    + verify no new attempts have been registered
    + verify you now see the alert message in a red box
  - turn that option back off, refresh the page:
    + you should be able to re-take the quiz
  - try on and off, see if you can get anything funny going on

Change-Id: I83a373258cc7e615c98e416ef7d630fa9ccb7331
Reviewed-on: https://gerrit.instructure.com/43204
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-10-23 17:32:33 +00:00
James Williams 2e5b71df2b restrict admin enrollments on explicit term setting
test plan:
* create a course with a teacher/ta/designer enrollment
* using the "Terms" link on the account navigation sidebar,
 set a term start date in the future, but leave the term dates for
 teachers/ta's/designers blank

* the UI should correctly state that teachers/ta's/designers
 can access before the term start
* a teacher/ta/designer should be able to access the course

* override the default term limits for the teacher/ta/designer
 to explicitly restrict their access until a future date
* they should not be able to access the course now

closes #CNVS-9681

Change-Id: Icec6bc24b2a199bf7aae541573590c1dd71fbd49
Reviewed-on: https://gerrit.instructure.com/42413
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-10-23 15:46:21 +00:00
Ethan Vizitei d29221c1f6 fix missing translation error in due dates
fixes CNVS-5622

updated format on public syllabus to be short
and on the hour

TEST PLAN:
1. Create a course with the public syllabus 
   setting allowed
2. Create multiple sections for the course
3. |Calendar|
4. Click on a day and then change the calendar to 
    the course you just set up for this test
5. |More Options|
6. |"Use a different date for each section"|
7. Set up two dates that are over a month apart
8. |Update Event|
9. Log out and go to the syllabus for that 
    course by using the URL
10 you should see a nicely formatted date

Change-Id: I5de5e1e22152d5f556f50cdc1d067cb44a3e7d09
Reviewed-on: https://gerrit.instructure.com/42226
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Product-Review: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-10-22 13:11:30 +00:00
Matthew Berns 459c8a2415 added student name and grade status to live region
student name is announced after clicking next/prev buttons, or grading assigment

fixes CNVS-15546

test plan:
- go to speedgrader with voiceover enabled
- click on next button and previous buttons
- name and grade status of student should be announced
- add a grade to current assignment
- name and grade should be announced
- repeat for removing grade
- repeat process with student names hidden to ensure names remain anonymous

Change-Id: I8c4c7d4acad1009e74b2df3d05c9fcc84e86e7ab
Reviewed-on: https://gerrit.instructure.com/42191
QA-Review: Sean Lewis <slewis@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
2014-10-20 19:00:09 +00:00
James Williams 127ce61d87 prevent closing upcoming assignment discussions
test plan:
* create a course with a graded discussion with an
 upcoming due date
* confirm that the gear menu on the index no longer
 has an option to "Close for comments" (that didn't work)
* confirm that dragging the discussion into the
 "Closed for Comments" group does not let you
 drop it in

closes #CNVS-16029

Change-Id: I50c21fc528409c4d5e90344149d751ff25f86389
Reviewed-on: https://gerrit.instructure.com/42720
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
2014-10-15 20:46:56 +00:00
Braden Anderson 8ff922ff5f calendar: mark completed assignments
fixes CNVS-16237

test plan:
  * open calendar as a student
  * verify that assignments you have submitted are marked
  * open calendar as a grader
  * verify that past due assignments with no ungraded submissions are marked

Change-Id: Ie84c436c49feab94d5c896ab0c79306013c75185
Reviewed-on: https://gerrit.instructure.com/42759
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
2014-10-15 19:27:47 +00:00
Jeremy Stanley f52276a1b0 file preview endpoint
test plan:
 0. upload the following types of files into a course, and
    note their IDs:
     a) document of some type (such as Word, PDF)
     b) image (such as JPEG, PNG, GIF)
     c) media (such as MP3, MP4, MOV)
 1. enable canvadocs and google docs previews in account
    settings.
 2. test the document preview by hitting the following
    in a new browser tab:

    /courses/X/files/Y/file_preview

    (where X is the course ID and Y is the file ID
     of the document file)
    - You should see a Canvadocs preview of the document.
    - There should be no Canvas chrome in the window, just
      the document preview.
 3. disable canvadocs but leave google doc previews
    enabled.
 4. hit the URL from step 2.
    - you should see a Google preview of the document
 5. disable Google docs previews.
 6. hit the URL from step 2.
    - you should see a message indicating that no preview is
      available, with a link to download the file.
 7. hit the URL from step 2, but substitute the file ID
    with the ID of an image instead of a document.
    - you should see the image (and nothing else).
 8. hit the URL from step 2, but substitute the file ID
    with the ID of a media file.
    - You should see a functioning media player (or a message
      indicating the media has not been converted yet)
 9. add a document to a module, and set a "must view"
    completion requirement
10. use this endpoint to preview the document, and confirm
    that the module completion requirement is fulfilled

fixes CNVS-15827

Change-Id: Id0ecaa7f003248cb3d8f163e48c3b16631ee59cf
Reviewed-on: https://gerrit.instructure.com/42438
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-10-13 22:44:09 +00:00
Ethan Vizitei 18af39bcd0 allow group leadership edits on group categories
fixes CNVS-14666

altered styles and markup to include form elements
in group category edit view.

abstracted some element handling for autoloader
controls into edit view to be shared by create view.

updated group category API to include auto_leader
in JSON serialization (so the edit form
can set the state correctly)

Changed edit view to set form state based on 
auto_leader value in GroupCategory model from API.

add tests for GroupCategoryEditView in coffee script

update GroupCategories::Params to favor form
submission value over raw api value for auto leader
if both are specified and the form version is
enabled.

add ability to nil out auto_leader status by
unchecking checkbox on form

TEST PLAN:
 - login as a teacher
 - create a group set
 - edit the group set
 - you should be able to change the
    group leadership settings
 - you should be able to nil out autoloader settings
    by unchecking the checkbox on the edit form
 - ensure that as students are added to the groups
    the leadership settings are effective (that is
    a leader still gets assigned at random
    or by first joining student depending on 
    leadership strategy selected)

Change-Id: Iecbb4829f5efccda1bd97bca1d99c3bd4c15bffe
Reviewed-on: https://gerrit.instructure.com/41965
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2014-10-10 20:42:06 +00:00
Jeremy Stanley 8370be1da0 fix Module Progress link
test plan:
 1. go to the Modules / Student Progress page
    /courses/1/modules/progressions
 2. click a name on the right under "Student Progresses"
 3. "Module Progress for X" on the top of the page should contain
    a working link and not visible HTML code

fixes CNVS-16134

Change-Id: I4eb37c3b375f9c14fe851b14da058eb8d9a40bb2
Reviewed-on: https://gerrit.instructure.com/42560
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
2014-10-10 20:10:14 +00:00
Ryan Taylor 237fc34cd3 Front end access points on Quiz Moderate for Outstanding QS
Previous workaround for student submissions which were outstanding was
to visit each individual quiz show page from the moderate page.  This
cleans up the moderate page with the ember styling, and adds the
functionality of outstanding quiz checking and submitting through the
API endpoint.

Closes CNVS-15502, CNVS-16197

Test Plan:
  - Basically, a QA regression of the quiz moderate page
    - ensure all quiz extensions still function
    - ensure icons for manually unlocked, in progress time alterations,
      and quiz extension notices are present
  - Check for outstanding quiz extensions button functionality
    - Shows an alert on page refresh if outstanding quiz submissions
      exist
    - Submits the selected submissions
    - Hides alert if all the outstanding submissions were submitted,
      otherwise shows the success flash message, but retains the alert
    - Overflows with large lists

Change-Id: Idba6a4849a3dc32fe9c077236a7fa13a6db6ce00
Reviewed-on: https://gerrit.instructure.com/41441
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2014-10-10 19:12:19 +00:00
Brad Horrocks ce5995691b [NVDA] Manage Announcement is no longer Manage discussion
Change screenreader text to say Manage Announcement

Fixes CNVS-13974

Test Plan:

- NVDA in FF
- Go to the Announcements page
- Select an Announcement
- Navigate to the Manage Announcements link (Gear icon that comes after the edit button)
- Verify it say manage announcement

Change-Id: I059cd0a6d339569729df90df25246282860ecf1e
Reviewed-on: https://gerrit.instructure.com/42398
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2014-10-09 17:07:12 +00:00
Cody Cutrer ef4de34d5b ensure locals are defined before using them in partials
refs CNVS-15835

Change-Id: I00fe45309eec3cc81a8c3aadab839c3b412f355e
Reviewed-on: https://gerrit.instructure.com/41811
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Nick Cloward <ncloward@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2014-10-09 15:06:25 +00:00
Ryan Taylor e6d72b4ff9 Accessibility updates for quiz show page
Corrected any noticed accessibility issues for quiz show control
buttons.

Closes: CNVS-6764

Test-Plan:
  - Test that quiz show buttons are buttons
  - Test that screenreaders read the buttons properly

Change-Id: I860b911e123500401d7925195a652918e56a33a1
Reviewed-on: https://gerrit.instructure.com/42106
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2014-10-08 03:55:26 +00:00
Spencer Olson 87beaacc82 fix 'let students take this quiz now' so that it correctly unlocks the quiz
when unlocking a quiz (with no time limit or for a specified period), the
quiz will now unlock correctly, and the students will be able to take it.

fixes CNVS-11727

test plan:
  - Create a quiz. Set a due date, but no "from" or "until" date.
  - Save and publish the quiz.
  - Lock the quiz; note that the date/time at which you lock it now appears in the "until" field.
  - Unlock the quiz with "No time limit". Note that the current date/time appears in the
      "Available from" cell, and the "Until" date has been cleared out.
  - Verify that you are able to take the quiz as a student, and note that there is no
      specified end date for the quiz.
  - Lock the quiz again, then unlock the quiz with a time limit (choose any date). Note that
      the current date appears in the "Available from" cell, and the specified end date
      appears in the "Until" cell.
  - Verify that you are able to take the quiz as a student, and note that there is a specified
      end date for the quiz.

Change-Id: I94ed3e26b7c91e84728c27e58c0e130444ef95a2
Reviewed-on: https://gerrit.instructure.com/42016
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
2014-10-06 21:27:23 +00:00
Jeremy Stanley 11f9f39fc6 fix grading standard can-edit logic
remove worse-than-useless policy block (the controllers are not
using it, checking :manage_grades on the context instead), and
let the view check whether the grading standard has assessed an
assignment, consistent with learning outcomes.

(Also, consistent with learning outcomes, the API can still edit
them. we just make it hard to mess with them accidentally in the
UI. I don't actually like this much, but apparently people
depend on this behavior.)

test plan:
 1. link an assignment to a grading scheme
 2. verify the grading scheme can still be edited
    on the grading schemes page
 3. as a student, submit the assignment
 4. verify the grading scheme can still be edited
 5. as a teacher, grade the student's submission
 6. verify the grading scheme cannot be edited on
    the grading standards page (no pencil icon appears)

fixes CNVS-15933

Change-Id: I21b67a25083169312c8b1c929d8e8ef305adc36c
Reviewed-on: https://gerrit.instructure.com/42234
Product-Review: Hilary Scharton <hilary@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2014-10-06 20:22:58 +00:00
Clay Diffrient 720fcb0d1a a11y: Makes the To autocomplete accessible.
Adds a status and selection field that have an aria-live attribute.  Allowing
the fields to announce changes to it.  Each time a result is
calculated for the autocomplete, the fields are updated and
the screen reader announces the changes.

fixes CNVS-12803

Test Plan:
  - Activate a screenreader
  - Go to /conversations
  - Create a message.
  - When you navigate to the To field and start typing the
    autocomplete should popup.  The screenreader should also
    announce the number of items showing up in the list.

Change-Id: I80c38c412e0ce8eb3022ac26ce1bb733ef4b4b65
Reviewed-on: https://gerrit.instructure.com/41758
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-10-03 21:21:39 +00:00
James Williams 33a9624a74 fix module unlock date with i18n
test plan:
* enable localization and choose a language for the course
 with a different date format (e.g. Japanese)
* create a module and set an unlock date
* reload the page
* try to edit the module
* confirm that it did not localize the date inside the input box,
 thus breaking the form

closes #CNVS-14984

Change-Id: Ice4b4d83c9bffa06d3292b123c2e10c632801718
Reviewed-on: https://gerrit.instructure.com/42177
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-10-03 20:37:06 +00:00
Michael Nomitch 8e19f7e439 DA - change warning dialog
fixes CNVS-15853

test plan:
  - with DA on
    - make a differentiated assignment and dont assign it to every section
    - when saving there should be a new warning message
      "Not all sections will be assigned this item"...
  - with DA off
    - do the same (make sure "everybody else" is not checked)
    - dialog should give the old warning
  - in both scenarios the Go Back button should be on the left now

Change-Id: I0f8728cda8e56e295b40c01e1b8d8b2956694092
Reviewed-on: https://gerrit.instructure.com/41857
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-10-03 20:08:02 +00:00
Cody Cutrer e14f975e7a Merge pull request #509 from sfu/fix-group-context-take2
Add course and term names under group listings

Change-Id: Ibb90c7a511771a27f55c5f77649191d4ef1a41c9
2014-10-03 12:48:25 -06:00
Jayce Higgins 31cebb98f4 Makes conversation course filter accessible
fixes: CNVS-14514
CNVS-12805

test-plan:
1.) Make sure your user is in a group
2.) Navigate to conversations
3.) With screenreader on, navigate to course filter
4.) Verify that the drop down is navigable
5.) Navigate to compose message and verify that the
    course filter there is also navigable

Change-Id: I10d8f2131645adb59fab4a9b200591c1fd341010
Reviewed-on: https://gerrit.instructure.com/41915
Product-Review: Aaron Cannon <acannon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-10-03 17:35:52 +00:00
Cody Cutrer dacf060160 no more dynamic finders
fixes CNVS-15126

Change-Id: I48b99ff69942463df6d6c355fe6f8a2fc679e69a
Reviewed-on: https://gerrit.instructure.com/41969
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2014-10-03 16:22:49 +00:00
James Williams 2cfd50d759 fix message attachments in IE 10
test plan:
* using IE 10, should be able to add attachments when
 composing a message in conversations and send the
 message successfully
* should also work in other browsers as before

closes #CNVS-13369

Change-Id: I28459ffbbd9a58751c26d69ce9c6718d3a05c304
Reviewed-on: https://gerrit.instructure.com/42093
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2014-10-02 20:24:03 +00:00
Clay Diffrient 51ca74bb0d Adds a title and heading to new Files
fixes CNVS-15592

Test Plan:
  - Enable better files browsing
  - Go to files
  - An H1 tag should be there for screen readers only
  - The title in the header/tab should be present as well

Change-Id: I045b9516148b4adc5e351f17dd6d551c211631d1
Reviewed-on: https://gerrit.instructure.com/41945
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2014-10-02 14:34:00 +00:00
Michael Nomitch 0a5e71d28e DA - quizzes
fixes CNVS-14094

test plan:
  - course with DA as students and teacher
    - api show & index
    - quizzes index page shows only assigned quizzes
    - quizzes show page url redirects to index if
      quiz isnt visible to user
    - grade calculation
    - gradebook/grades page
    - calendar events events
    - modules filter out quizzes correctly
    - observers see same things as their students
    - if a student takes a quiz and it is not graded and then
      loses visibility, make sure that the GB greys out the cell
      rather than showing a submission icon
  - same course with DA off works normally

Change-Id: I10b936f1516d6d24f11d74c0bb572051f0b1d1c4
Reviewed-on: https://gerrit.instructure.com/39897
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Mike Nomitch <mnomitch@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Mike Nomitch <mnomitch@instructure.com>
2014-10-01 20:58:54 +00:00
Chris Hart c4f2b2f067 Color contrast - Student Grades view
Fixes: CNVS-15567

Multiple small UI tweaks to increase foreground-
background contrast in the STUDENT view of the
Grades section in high-contrast mode.

IMPORTANT: This ticket is only for the high-
contrast UI. To enable the high-contrast UI, go
to Settings then scroll down and make sure
"Use High Contrast Styles" is set to ON.

Test plan:
- Enable high contrast UI in Canvas (see above)
- Go through each issue Nathan entered into the
  JIRA and compare with the updated UI to make
  sure it's fixed.
- The webAIM color contrast tester can be found
  here: http://webaim.org/resources/contrastchecker/

Change-Id: I7eea468504fb0f8be151bfb3417ad27fe0a0e4e6
Reviewed-on: https://gerrit.instructure.com/41828
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Colleen Palmer <colleen@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Chris Hart <chart@instructure.com>
2014-10-01 20:57:39 +00:00
Brad Horrocks a1ea52d133 Accessibility - Add Conversation menu items to individual message cog menus
added Reply Button, and a cog containing Reply All, Forward, Star, Archive, Delete
to the top of the message details

Fixes CNVS-14513

Test Plan:

- Got to an inbox with a message
- Click the message
- There should be a reply and cog at the top of the thread
- The cog should contain Reply All, Forward, Star, Archive, Delete
	- All items should function correctly

Change-Id: I47d4844c794d2033ffda036c43e2486ea4675f4e
Reviewed-on: https://gerrit.instructure.com/41288
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
2014-10-01 20:54:41 +00:00
James Williams aedb75a7ec add course format setting
test plan:
* should be able to use the ui or the api to
 specify a "course_format" (i.e. whether a course
 is online or on-campus)

closes #CNVS-15470

Change-Id: I5772cfa416c066e94b24d45bd6ce7c1aa24d8c5f
Reviewed-on: https://gerrit.instructure.com/41994
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-10-01 15:06:59 +00:00
James Williams 0054e3940d show the true published state for module items
test plan:
* reproduce a state where a module item's content has
 a different workflow state than the module item (either
 manually or through a reproduction step for one of the
 associated tickets)
* should show the true workflow state of the item on the
 modules page

close #CNVS-15400

Change-Id: I72e3caf335fee112266da526c4efd2272820e0f2
Reviewed-on: https://gerrit.instructure.com/42002
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2014-10-01 11:29:47 +00:00
Cody Cutrer 1f8028f163 don't use preload_associations
it's a shim of the rails 2 variety, and breaks in rails 4 in the
common case because the options became a scope

Change-Id: I712a8fed35ee0a9747a13c1495f7d51b8dac6823
Reviewed-on: https://gerrit.instructure.com/41716
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Nick Cloward <ncloward@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2014-09-30 18:04:00 +00:00
Matthew Berns 6dfa8242ce fixed speech to text and true/false check for Chrome
Chrome's x-webkit-speech was deprecated, replaced it with javascript API
added functionality:
now actively tracks interim results and displays them to the user
added variety of error messages and prompts

fixes CNVS-13432

test plan:
- use Chrome (Version 35 or 36)
- navigate to an assignment, then to speedgrader
- click the microphone/pencil icon under the comment box
- dialog should pop up. Click record (then 'allow' if prompted)
- begin speaking
- interim results should appear in blue while talking
- final results should turn black
- when you hit stop, spoken text should appear in comment box
- should generate error for mic not allowed or no text spoken
- should bring up error if recording times out after long silence
- cancel button should discard spoken text w/out adding comment
- ensure mic does not appear in FF, Safari, or IE

Change-Id: I46eae92892dd37e0a3906023150653aaaf2e2ece
Reviewed-on: https://gerrit.instructure.com/38833
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-09-29 18:14:03 +00:00
Spencer Olson 1989ca6664 corrected the preview message for a quiz with all changes published
when previewing a quiz, the preview message now correctly displays
whether the quiz is a draft or published.

fixes CNVS-13984

test plan:
- Create a quiz in a course with at least one question in it.
- Publish the quiz.
- Click on the gear icon in the top right corner of the quiz description page and click "Preview".
- Notice the message correctly displays "This is a preview of the published version of the quiz".
- Unpublish the quiz.
- Click on the "Preview" button in the top right corner of the quiz description page.
- Notice the message correctly displays "This is a preview of the draft version of the quiz".

Change-Id: Ia3db9b602f927a2d04098987bdd7174a71114bf1
Reviewed-on: https://gerrit.instructure.com/41838
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
2014-09-29 14:00:59 +00:00
Mark Severson 834aba7d2e allow external tool to resize iframe
refs CNVS-15735

test plan:
 * load a page with an lti tool embedded
 * using the browser's console, post a message to the window, e.g.:
   window.postMessage('{"subject":"lti.frameResize", "height":250}', '*')
 - the lti window should resize to the given height

test plan (alternative):
 * load a page with an lti tool embedded that knows how to issue resize
   messages to canvas
 - the lti window should be resized as the lti tool wishes

Change-Id: Ief192a0552ed96ca829ea1048bdb1a202b377676
Reviewed-on: https://gerrit.instructure.com/6578
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Brad Humphrey <brad@instructure.com>
2014-09-26 22:17:46 +00:00
Matthew Berns ce3d9a1634 updated module locked page when module is time locked
updated discussions page to match module locked page used on assignments and
quizzed. updated module locked page to show module's unlock time if module is
timelocked

fixes CNVS-6314

test plan:
- create a discussion topic, assignment, and quiz
- add them to a module that is timelocked
- attempt to view all three as a student
- error pages on all 3 should match, stating the unlock time of the module

Change-Id: I099b645387321b5514d442d477a47ebffdfb88c4
Reviewed-on: https://gerrit.instructure.com/40711
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
2014-09-26 15:57:38 +00:00
James Williams 2f78d4c747 don't reuse question banks on import unless specified
test plan:
* import a qti quiz package into a course
* re-import it, making sure to *not* check the
 "Overwrite assessment content with matching IDs" checkbox

* should not put all of the questions into the same question bank

* repeating the previous while checking the box should behave as
 it currently does

closes #CNVS-14669

Change-Id: Ibfed20a191986fa29e52d7a08313b879c917d5a6
Reviewed-on: https://gerrit.instructure.com/41735
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2014-09-26 14:08:50 +00:00
Andrew Leung 7276280335 Use term styling for groups in courses#index
Test Plan:
  * Go to the courses page (/courses)
  * Look under My Groups
  * Course name/term for groups should be displayed like terms
    for courses
  * Course term (if any) should be in parentheses
2014-09-25 13:28:45 -07:00
Andrew Leung 293fa28ebd Fix group name tooltip in courses#index
Test Plan:
  * Create a course group with multiple words
  * Add a student to that group
  * As the student, go to /courses
  * Hover over the group name
  * Make sure that all the words show up in the tooltip
2014-09-25 13:28:45 -07:00
Andrew Leung 6a196ab4d1 Add course and term names under group listings
Multiple groups with the same name are now better identified with their
context names (and term names if they are courses).

Test Plan:
  * Create two courses, with one of them in the Default Term
  * Create course groups in those courses
  * Add a student to both course groups
  * As the student, go to /courses
  * Make sure the course name appears under the group name
  * Make sure the term name appears (unless it's in the Default Term)
  * Do the same for /groups
2014-09-25 13:28:45 -07:00
Derek DeVries d8ec171376 make quiz question drag and drop to be useable by keyboard only users
This changes the quiz drag and drop handle to be the same icon we use for
drag and drop reordering on the index pages. Now when the icon is dragged it
gives normal drag and drop reordering, but when it is clicked it will bring
up the move modal dialog.

This also adds a warning message when the item is focused on that tells that it
is an accessible alternative.

This also fixes a bug with accessible reordering of quiz questions when there
are greater than 25 questions in a quiz.

fixes CNVS-15778

test plan:
  - as a teacher
  - create a quiz
    - the drag handle should now always show when creating questions and groups
    - you can drag the handle to reorder with drag-n-drop
    - you can click the handle to bring up the move to dialog box

  - create a quiz with no question groups
  - use screenreader
    - you should be able to use the dialog to reorder the questions
    - it should read the warning message on focus

  - create a quiz with > 25 questions
  - use screenreader
    - you should be able to use the dialog to reorder the questions
    - it should read the warning message on focus

  - create a quiz with question groups
  - use the screenreader
    - you should be able to reorder both questions/groups
    - try moving items in any way you can think - outside/inside groups, etc
    - it should read the warning message on focus

  - for all these situations, the normal drag-n-drop should continue to work
  - no drag and drop handles should show up in question banks
    - check banks with both < 50 questions and > 50 questions

Change-Id: If23ce2a68f1f8d60cc8f3ca76d4fea36f89b7a9b
Reviewed-on: https://gerrit.instructure.com/41703
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Reviewed-by: Brian Finney <bfinney@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-09-24 22:10:01 +00:00
Ahmad Amireh b225698b7e Take quiz: accessible timer!
So cool! Press ALT+SHIFT+T (or ALT+CTRL+T) at any time while you're
taking the quiz, and screen-reader will read the time remaining right
away without stealing focus away.

Closes CNVS-14086

TEST PLAN
---- ----

  - make a quiz with a time limit
  - take it and turn on VoiceOver or something
  - right after the quiz instructions, you should now hear a new note
    explaining the new shortcut
  - now press ALT+SHIFT+T
    + verify you hear the remaining time
    + verify your cursor is still where it is; you can resume doing
      whatever you wanted to do after hearing the remaining time

Change-Id: I18ccce6bf2f85c1f60206a61a46b8ef683a79dea
Reviewed-on: https://gerrit.instructure.com/41680
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-09-24 21:18:44 +00:00
Derek DeVries b113eb575c make quiz answer titles render correctly for screenreader
fixes CNVS-14737

test plan:
  - after submitting a quiz, use screenreaders to navigate through the answers
  - note that each answer that has a colored flag next to it reads the flag
  - attempt to navigate to the answers given on matching, multiple answer, and
    other types of questions

Change-Id: I6cfe570a5b934a3bda4c592083b397dff9006af3
Reviewed-on: https://gerrit.instructure.com/41658
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-09-24 20:18:56 +00:00
Derek DeVries df100e1a69 accessibility for sorting quiz questions
fixes CNVS-9048

test plan:
  - as a teacher
  - create a quiz with no question groups
  - use screenreader
    - you should find a 'move to' button near where the drag handle is
    - clicking this brings up a dialog
    - you should be able to use the dialog to reorder the questions

  - create a quiz with question groups
  - use the screenreader
    - you should find a 'move to' button for both groups/questions
    - clicking this brings up a dialog
    - you should be able to reorder both questions/groups
    - try moving items in any way you can think - outside/inside groups, etc

Change-Id: I065cac8a60f3652a75ce8154614133da4b6af5e9
Reviewed-on: https://gerrit.instructure.com/41381
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-09-23 22:50:37 +00:00
James Williams e45ff7189a use double-cookie csrf protection
test plan:
* in one tab, start to fill out an ajax form
 (e.g. editing a quiz)
* in another tab, log out of canvas
* return to the original tab and try to
 submit the form (e.g. save your changes)
* should get an error message with a link to
 login in a new tab
* login in the new tab
* return to the original, and try to resubmit
* should save successfully

closes #CNVS-3957 #CNVS-13673

Change-Id: I7758514de8ce09361fef469034645d8a29e2a5e5
Reviewed-on: https://gerrit.instructure.com/40396
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-23 15:29:03 +00:00
James Williams bbd453c164 fix progression module collection translation
closes #CNVS-14238

Change-Id: Ie2d24a9adf6b205ab14e10ce6315484ff781a0c2
Reviewed-on: https://gerrit.instructure.com/41602
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Dan Minkevitch <dminkevitch@instructure.com>
Tested-by: Dan Minkevitch <dminkevitch@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2014-09-23 15:04:03 +00:00
Ryan Shaw ebfcc8ce0c a bunch of newfiles a11y things acannon suggested in audit
I actually squashed 3 commits into this one
because I figured it would be easer to qa
it all together

first commit:

fixes: CNVS-15604 CNVS-15599 CNVS-15598

see this doc for what to look for and what this fixes:
https://docs.google.com/a/instructure.com/document/d/1XxZXnIeWVJGR6Iko1EuaW6LyiqzEQ-HAucFNq0LQHqs/edit

second commit:

mark newfiles grid up with aria-grid roles

closes: CNVS-15597

test plan:
open new files using a screenreader
the main pane with the grid of files should
function like a table to the screenreader

third commit:

adds screenreader-only feedback and info to
let you know that if you click a col
header it will sort by that col and tells you
if it is sorted ascending or descending

adds a screenreader-only "select all" checkbox
in the header.

Change-Id: I7cfd7133d90079e50cef9c978c2a199fa0530903
Reviewed-on: https://gerrit.instructure.com/41327
Tested-by: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2014-09-22 21:55:06 +00:00
Michael Nomitch 506e786db4 DA - modules
fixes CNVS-14095
fixes CNVS-15157

test plan:
  - with DA on and off
    - go to modules page
      - only the right assignments show
      - completion requirements ignore
        assignments that cant be seen by a user
    - modules page works with changing sections
      - complete/incomplete updates properly
      - as does locked/unlocked
    - modules page shows correct content when
      a students grade is deleted and this makes
      them lose assignment visibility
    - modules api doesnt return any content that
      a student cannot see

Change-Id: Ia1acfd919214823cdfc3b45e974876b4529bb14d
Reviewed-on: https://gerrit.instructure.com/38970
Product-Review: Hilary Scharton <hilary@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Mike Nomitch <mnomitch@instructure.com>
2014-09-22 21:23:44 +00:00
Jeremy Stanley c5d2fc5d76 don't render content notices on full-width pages
test plan:
 0. configure a course navigation LTI tool with full-width launch
 1. start a content import via the API, specifying the parameter
    migration_settings[import_in_progress_notice]=1 **
 2. you should see the import notice on the course front page
 3. you should not see the notice when viewing the full-width
    LTI app

** alternatively, you can just turn on the import-in-progress
   notice in the Rails console, which will give you more time
   to test:

     course.add_content_notice :import_in_progress

   then remove it when you want it to go away:

     course.remove_content_notice :import_in_progress

fixes CNVS-15679

Change-Id: I3171812e0d631eab96ae7d0061280e57abbdcc46
Reviewed-on: https://gerrit.instructure.com/41456
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-22 14:27:00 +00:00
Colleen Palmer 42ec3aa43d Contrast Ratio Fixed in Gradebook
fixes CNVS-12669

This fixes the contrast ratio issues we were having on normal and
high contrast UI.

Testing Process:

- Make sure you have letter grading enabled for assignments
- Make sure you have some students that have had assignments
graded
- As a teacher or admin, go to Grades
- The letter grade that shows in the "Total" column should be passing
contrast in Webaim for Regular and High Contrast now
Example: http://cl.ly/image/350X350X0623
- Click on a student
- The letter grade that shows up in the "Score" column should also
be passing Webaim for contrast in both regular and High contrast
settings
Example: http://cl.ly/image/3F2e352v3x1O

Change-Id: Ibb92571df760add588e998e82bd0455eca322a77
Reviewed-on: https://gerrit.instructure.com/41066
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Chris Hart <chart@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
QA-Review: Colleen Palmer <colleen@instructure.com>
2014-09-19 19:36:46 +00:00
Jeremy Stanley 3bfb9aee31 cache the module views separately per timezone
test plan:
 0. have a course with a module that will be unlocked at a
    future time
 1. enroll two teachers, and set different time zones for
    each in their user preferences
 2. each teacher should see the unlock time in her own
    time zone (not the time zone of whoever saw the page
    first)

fixes CNVS-12088

Change-Id: Ifcde9af7c7abaf2298ba59180fd0737a73945a3d
Reviewed-on: https://gerrit.instructure.com/41351
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2014-09-19 15:34:11 +00:00
Aaron Cannon dbadd7f147 a11y: Fixed screen reader issues with Kyle menus.
Screen readers no longer enter, exit, or report applications mode/region when
passing over menu trigger controls. Menu triggers can also be navigated
to with screen reader "jump to next/previous button" navigation shortcuts.

Fixes CNVS-15275

Test plan:
- Visit each kyle menu in Canvas.
- Verify with a screen reader:
  - That the trigger is reachable via normal arrow key navigation
  - That the trigger is reachable when navigating by buttons
  - That the menu opens when enter is pressed on the menu trigger
  - That forms mode is activated when the menu is opened (N/A in Voice Over).
  - That the up and down arrow keys allow one to navigate through the menu
  - That pressing enter on a menu option activates that action
- Verify that menu triggers are reachable by the keyboard (sans screen reader).
- Verify that all the other functionality relating to menus as discussed above
  is accessible to keyboard only users.

Change-Id: I81d7678251b7c43e67504d5569e59ccd2f846949
Reviewed-on: https://gerrit.instructure.com/40951
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
2014-09-18 21:33:17 +00:00
Mark Severson 80e06448bf fix calendar event creation creating undated events
test plan:
 - preconfiguration variants:
   - with & without user set to a different timezone
   - with & without different locales (e.g. Japanese)
 * navigate to the calendar
 * click on a day to begin creating an event
 * fill in the date and start/end times
   - with & without valid start/end times
 * click 'More Options'
   - ensure the edit page includes start/end times as typed
   - correct invalid start/end times, if necessary
 * click 'Update Event'
   - ensure the event appears on the calendar with the correct date/time
 * click on a day to begin creating another event
 * fill in the date and start/end times
 * click 'Submit'
   - ensure the event appears on the calendar with the correct date/time

fixes CNVS-11067

Change-Id: I31f6b1d7550b166a90c45d3f02132379c6dd7459
Reviewed-on: https://gerrit.instructure.com/40374
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
2014-09-18 19:28:33 +00:00
Colleen Palmer 5a48c520be Courses index right sidebar breaking layout
fixes CNVS-15246

There was a random </div> close tag in here that was causing
the right sidebar to be pushed wayyyy right. This fixes it.

Test plan:

- Go to /accounts/
- Choose an account you know has courses
- On that index page the right sidebar should no longer be pushed
all the way to the right

Should look like this now: http://cl.ly/image/1N253D1b2F0u

Change-Id: Ibc813ddbf8051f0514673e3bba9e1da86d285123
Reviewed-on: https://gerrit.instructure.com/41182
Reviewed-by: Chris Hart <chart@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
2014-09-18 16:11:03 +00:00
Cameron Sutter 248bdbe140 DA - gb csv modal
fixes CNVS-15487

test plan:
 - open the gb csv upload modal
 - click the link to learn more
 > it should open a new tab and take you to the guide pages

Change-Id: Ief4cffbdac0a59de8896ae8c17c2cde28d0d6311
Reviewed-on: https://gerrit.instructure.com/41175
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
2014-09-18 15:49:19 +00:00
Matthew Berns 0491ae3211 updating h1 tags for accessibility
fixes CNVS-15104

test plan:
- visit edited pages from spreadsheet below
- test page headings with screenreader in safari
- pages should have level 1 headers for screenreader that proceed in order logically
- compare top level headers on assignments, modules, syllabus, and wiki pages
bewteen their actual pages, and their pages when called from home page selection
- headers for the above pages should be h1 on their respective pages, and h2
when called from home page, and stll proceed logically

Changes need to be tested on the following pages
default home page (/)
home page set to course modules
home page set to front page
home page set to assignments list
/courses/1
/courses/1/assignments
/courses/1/assignments/new
/courses/1/assignments/1/edit
/courses/1/discussion_topics/new
/courses/1/discussion_topics/1
/courses/1/discussion_topics/1/edit
/courses/1/gradebook#tab-assignment
/courses/1/gradebook/speed_grader(just pick any assignment w/ speedgrader)
/courses/1/groups
/courses/1/user_services
/courses/1/pages/(whatever page for course)
/courses/1/quizzes/1/edit
/courses/1/quizzes/1/take?preview=1
/courses/1/question_banks/2
/courses/1/quizzes/1/take
/courses/1/conferences
/courses/1/modules/progressions
/calendar2
/about/1
/profile/settings
/dashboard/eportfolios
/conversations?#filter=type=inbox
/accounts/1
/accounts/1/users
/accounts/1/sub_accounts
/accounts/1/account_authorization_configs
/accounts/1/groups
/accounts/1/users/2
/accounts/1/permissions
/accounts/1/avatars
/users/2/user_notes
/accounts/1/rubrics
/accounts/1/grading_standards
/accounts/1/user_notes
/accounts/1/admin_tools
/users/1/admin_merge
/users/1/teacher_activity/student/1
/users/1/masquerade

Change-Id: Ifdad341a22631c0d6773977743be741e74fecd88
Reviewed-on: https://gerrit.instructure.com/40370
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Sean Lewis <slewis@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
2014-09-17 20:59:38 +00:00
Chris Hart aeb652980f New Canvas header for K-12
Fixes: CNVS-14508

Adds new markup and styles for K-12 Canvas header.
Big change to application.html.erb - the #header
is split into 2 sets of markup: the new K-12
markup and the existing Canvas header.

To enable the K-12 feature flag:

- In Rails Console, enable the k12 feature flag
  as follows: Account.find(1).enable_feature!(:k12)

Note: Due to Canvas caching, the Courses link in
the primary nav will only update once every 15 mins.
To update the link, either wait out the cache or
temporarily remove the cache code around the list
item element.

Test plan:
- Make sure the K-12 feature flag is disabled.
  To disable: Account.find(1).disable_feature!(:k12)
- Click around the existing Canvas header. Make sure
  it is working as expected in both regular and
  high-contrast modes.
- Enable the K-12 feature:
  Account.find(1).enable_feature!(:k12)
- Click around the new header. It should look like
  this in regular mode...
  http://cl.ly/image/2b1V3e2g0C3z/k12-regular.png
  ...and this in high-contrast mode:
  http://cl.ly/image/3E0x3O2L3P2B/k12-high-contrast.png
- The new header is responsive down to tablet-size.
  When you reduce the screen width enough, the icons
  should stack on top of the link text in the primary
  navigation.
- The new header also features an Inbox link in the
  primary navigation (the existing header does not
  have this). Confirm this is working and that the
  user nav in the top-right no longer has an Inbox
  link.

Change-Id: I38cd0d215fe67000fba01204f208801f550df089
Reviewed-on: https://gerrit.instructure.com/38925
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
2014-09-17 17:04:12 +00:00
Ryan Shaw 87b1dac236 A bunch of style/polish for newfiles
fixes: CNVS-15244 CNVS-15261 CNVS-15374

changes:
handles overflow by scrolling
matches blake's mockup

test plan:
try the folder tree in both new files and by pressing
the "add image" icon in the tinyMCE toolbar and going
to the "From Canvas" tab.

TODO: 'active' style

it should look good and work well.

Change-Id: I6219da771758fd00d6ed3005ed459097a83fcd7e
Reviewed-on: https://gerrit.instructure.com/40922
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2014-09-17 15:55:35 +00:00
James Williams 73d4020f34 link to discussion topic and quiz menu tools on assignment index
test plan:
* enable the lor feature flag
* create an external tool with quiz_menu and
discussion_topic_menu configured
* should show external tool links specific to each type
on the assignments index page for graded discussion topics
and quiz assignments

closes #CNVS-15520

Change-Id: I020ab9cbc583d7940b0051056d27acb557ab152c
Reviewed-on: https://gerrit.instructure.com/41172
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2014-09-16 22:36:21 +00:00
Jayce Higgins 6e72ae6216 Add accessibility warning to discussions
fixes: CNVS-14748

Adds an accessibility warning to the discussion
field headers so that SR and Keyboard users know
to navigate to the manage menu to emulate "drag n
drop" behavior.

Test-Plan:
1.) Navigate to discussions
2.) Make sure there are 2 or more pinned discussions
3.) Tab until you're just past the header
4.) Verify that a warning message has appeared
5.) Remove a pinned discussion so you have 1 or less
6.) Repeat steps 2-3
7.) Verify that no message appears, and that it takes
	a single tab to move from the header to the content

Change-Id: I71503a511b627dc6fadb696ca25b5fb6637c898d
Reviewed-on: https://gerrit.instructure.com/40429
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Dana Danger <dana@instructure.com>
2014-09-16 21:45:25 +00:00
Clay Diffrient 1bc27171f4 Modifies the translation keys for course statistics
fixes CNVS-15576

Test Plan:
  - Transifex should not fail on importing.

Change-Id: I70a9b453b1209389888e347e552ac9843c9acb40
Reviewed-on: https://gerrit.instructure.com/41200
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2014-09-16 20:42:23 +00:00
Ryan Taylor 1c76ff61a9 Quizzes only autosubmit when they hit the lock date
When a quiz is in progress, it should be marked late if the student is
still taking the quiz when the due date is reached.  If the lock date
comes up, the quiz should autosubmit at that point.  If there is a quiz
timer and a lock date, the lock date overrules the quiz timer.

Closes CNVS-13689

Test Plan:
  - Create 4 types of quiz scenarios:
    - Lock date only
      - submits at lock date
      - never marked late
    - Lock date and due date
      - autosubmits at lock date
      - late if submitted after due date
    - No due date
      - Never late
      - Autosubmits at course completion
    - Lock date and timer which runs beyond lock date
      - Gives the student time until lock, not normal timer
      - autosubmits at lock date
  - Monitor all these for sane prompts and alerts
    - deadline approaching flash messages for LATENESS (occur at T-30
      minutes, T-5 minutes, and T-1 minute)
    - autosubmission flash prompts (and popup @ T-10 seconds)

Change-Id: I5af9eb360a5f13527b32e7f84c205149bea1935b
Reviewed-on: https://gerrit.instructure.com/40609
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2014-09-16 19:50:40 +00:00
Clay Diffrient d3bd5d0671 Gives the edit/add module form a better focus target
Because of the way the events are done/handled by the form
a submit occurs on the form whenever a form element has focus.
When the form dialog opens the first focusable item is given
focus.  This provides a empty non-interactive element to receive
focus when the form dialog opens preventing an automatic
submit from triggering.  While not ideal, it works.

fixes CNVS-14966

Test Plan:
  - Go to the modules page (/courses/##/modules)
  - Use the keyboard to navigate to the edit option in the cog
    menu.
  - Press "Enter" on the "Edit" option.
  - The form should not close automatically.
  - Do the same with module items.

Change-Id: Icf22c23b502b66a7678111224bf0907876bc72f8
Reviewed-on: https://gerrit.instructure.com/41031
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-16 19:39:26 +00:00
Ryan Taylor ec397e3f75 Partially graded quizzes don't show score in gradebook or grade summary
Quizzes which are only partially graded are no longer shown as if they
were fully graded.  Now, the behavior is to show a quiz grading in
progress icon in the gradebook.

Closes CNVS-15073

Test Plan:
  - Create a quiz which contains both autograded and manually graded
    question types (M/C and essay)
  - Take quiz as student
  - Confirm that quiz grades as follows:
    - Student views:
      - Student grade summary view shows quiz icon
    - Teacher view:
      - Teacher gradebook view shows quiz icon

Change-Id: I8261a11f0ffddfb34947ad5f9089aa503b274cb1
Reviewed-on: https://gerrit.instructure.com/40501
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-09-15 21:53:34 +00:00
Clay Diffrient 775a08987a Corrects term styling on the courses page
fixes CNVS-15492

Test Plan:
  - Go to the courses page (/courses)
  - Any terms should be displayed in a italicized light gray
    color next to the course title.

Change-Id: Ie1bb9040a8d03c551f02ce0e8171178532136ee0
Reviewed-on: https://gerrit.instructure.com/41043
Product-Review: Hilary Scharton <hilary@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-15 15:46:39 +00:00
Nick Cloward d109585a3b account statistics accessibility
fixes: CNVS-15344

Added a scope to the row headers in the table.

Test Plan:

- Using a screen reader, visit the first table on the page.
- Use the screen reader navigation keys to navigate through the table,
  and verify that as you move up and down in the second and third
  column, the screen reader reads the row heading from the left column.

Change-Id: I3bbe277c1bc19145df6b8922ccb6d67f89f9389a
Reviewed-on: https://gerrit.instructure.com/40845
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Aaron Cannon <acannon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
2014-09-12 18:50:50 +00:00
Liz Abinante 6a2a240a10 accessibility for rubric creating and editing
fixes CNVS-13130
fixes CNVS-13110

test plan
- as a teacher, go to /courses/:id/rubrics
- using screenreader, click 'Add Rubric'
- a ~magical~ rubric table should appear
- complete the tests for Criterion and Ratings below

- as a teacher, go to an assignment with a rubric
- verify that you can edit the rubric
- verify that you can delete it from the assignment
(no need to do a complete test run as below, just make sure the icons in the table header are accessible and that nothing fell down and died)

Criterion:
- the 'Edit' icon for the criterion description should be accessible
- click 'Edit' for the criterion description
  * click 'OK'; it should focus on the 'Edit' pencil
  * click 'Cancel'; it should focus on the 'Edit' pencil
- the 'Delete' icon for the criterion should be accessible

Ratings:
- the 'Edit', 'Delete', and 'Add' icons should be accessible
- verify that they read the correct messages ('Edit rating', 'Delete rating', 'Add new rating category after current rating')
- click 'Edit' for a rating
  * click 'OK'; it should focus back on the 'Edit' pencil
  * click 'Cancel'; it should focus back on the 'Edit' pencil
- click 'Add' for a new rating column; verify it focuses on that table cell
- click 'Delete' for your newly added rating; verify that focuses on the chunk of the table with ratings in it

- verify that adding and editing rubrics works just fine for keyboard only users
- celebrate, for rubrics are now ACCESSIBLE!!!!! \o/

🎉

Change-Id: Ifbd3043f217c09cc7cb24e411b0a572fdce6ef52
Reviewed-on: https://gerrit.instructure.com/40639
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Aaron Cannon <acannon@instructure.com>
2014-09-12 16:23:39 +00:00
Clay Diffrient 65cbb725d6 Updates the drag & drop accessibility warning
fixes CNVS-15277

Test Plan:
  - Go to the modules page (/courses/##/modules)
  - When using keyboard navigation, when you get to a drag &
    drop handle, a warning should appear with the text:
    "Warning: For improved accessibility in reordering Modules
    (or Module items), please use the Move To Dialog option
    found in the menu."
  - Go to the course settings page (/courses/##/settings)
  - Using keyboard navigation, when you tab into the
    navigation tab, a warning should appear with the text:
    "Warning: For improved accessibility in reordering Course
     Navigation elements, please use the Move To Dialog option
     found in the menu."

Change-Id: I3e2b6a295f1e63099e5a90fef3ce96b63980b937
Reviewed-on: https://gerrit.instructure.com/40629
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-12 14:48:48 +00:00
Jon Willesen 9fb07df165 Don't add unnecessary information on other users' profile pages
fixes CNVS-15446

test plan:
 - Turn on user profiles and avatars for an account.
 - Enroll a teacher and student in a course in that account.
 - As the student, go to the course's people page and find the
   teacher.
 - Click on the teacher to go to the teacher's profile page.
 - Check the page source as described by the jira issue.
 - Go to the student's own profile page.
 - The student should still be able to edit their own avatar.
 - The gravatar pane of the avatar edit dialog should be
   properly initialized with the student's default email
   address.

Change-Id: Iae4fa9d74161192eedda14316029ae8631570cfc
Reviewed-on: https://gerrit.instructure.com/40988
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2014-09-12 14:48:17 +00:00
Brian Palmer 742acf18a7 GET /logout confirmation screen
refs CNVS-15295

Normally users will logout through the link in the upper right, which
does a DELETE request and bypasses this screen. If somebody DOES do a
GET to /logout for any reason though, we'll now display a logout
confirmation screen, rather than an error.

Also fix protect_from_forgery for saml_logout and destroy. Rather than
error when the token is bad, though, redirect to the confirmation
screen. The goal here is to try really hard to let people log out, so
they're never stuck in a situation where they got an error and now can't
see how to log out (that's a security risk).

test plan:
* The logout link in the upper right should still log you out,
without a confirmation screen.
* SAML logout should still work correctly, with both GET and POST
  requests.
* If you manually visit /logout in your browser, you'll:
  * See a confirmation screen, if logged in.
    * Confirming should log you out as expected.
  * Get redirected to /login, if not logged in.
* Login in one tab. Open a second tab, log out and back in. Back on the
  first tab, hit logout in the top right.
  * With this change, you'll see the logout confirmation screen.
  * Without this change, you would get an error.

Change-Id: I13740f35cc27caeea22470e1cedf838ad4ce771d
Reviewed-on: https://gerrit.instructure.com/40834
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
QA-Review: August Thornton <august@instructure.com>
2014-09-12 14:44:45 +00:00
Brian Palmer 4db4f9587b return to an onclick handler for logout
fixes CNVS-15295

In rails2, the `:method => :delete` parameter added an onclick handler
that built up and submitted a form. In rails3, this transparently
changed to using UJS and even hooks, which has been causing problems
with people clicking the link (a) when a js error prevents UJS from
getting setup or (b) before the UJS has a chance to get set up via AMD.

It's important that logout works even in the face of these errors, so
I'm bringing back the onclick handler, but with a form always present
for simplicity.

test plan: The logout link in the top right should still function as
usual. Especially test in IE10 and IE11, where problems with it have
been most prevelant.

(note that there are existing selenium tests for the logout link)

Change-Id: I612884ef261628dace4a24407fce7b84bbd6dd4e
Reviewed-on: https://gerrit.instructure.com/40833
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
2014-09-12 14:43:43 +00:00
Cameron Matheson a1f400e754 remove scribd
closes CNVS-13380
closes CNVS-8057
closes CNVS-5156

Test plan:
  * scribd should no longer exist
  * document previews should work in canvadocs

Change-Id: I5ac60c3e986f030c3aea88e32d2992ec7b1c7a08
Reviewed-on: https://gerrit.instructure.com/37895
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-09-11 18:42:15 +00:00
Ryan Shaw defa635954 s/Login/Log In on mobile login page
fixes: CNVS-15370

When a user is logging in to Canvas, 
the Login button used to say Login. However, on 
the next screen when Canvas is requesting access 
to their account, the button says Log In. 

The second button is accurate in the context of 
how we are using the term Log In.

Change-Id: I3ad2d6cc86822f438e39b0d6e6089f2557224ec4
Reviewed-on: https://gerrit.instructure.com/40794
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2014-09-11 14:24:51 +00:00
Jeremy Stanley 13811e6375 don't hide the form submit buttons along with "Delete My Account"
test plan:
 - an admin user should see the "Delete My Account" link
   in /profile/settings, after clicking Edit
 - a non-admin user with a SIS ID should not see that link,
   but should still see the "Cancel" and "Update Settings"
   buttons

fixes CNVS-15429

Change-Id: I338e3027c9caefa6978738c73dd2c6aa2b75775e
Reviewed-on: https://gerrit.instructure.com/40921
Product-Review: Cosme Salazar <cosme@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-11 13:50:33 +00:00
Michael Nomitch 48c04a6aa1 DA - group assignment alert
fixes CNVS-14929

test plan:
  - with DA on
    - make a group assignment
    - you should get a warning in the group assignment box
    - publish the assignment and turn in homework from a student
    - go back to the edit page
    - you should see a different warning in addition to the
      original warning
    - repeat steps for a graded group discussion
  - with DA off
    - there should not be an error related to DA

Change-Id: Id2ca3c12a50df009cfd9273d8a0f0fd778f81646
Reviewed-on: https://gerrit.instructure.com/40870
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-09-10 20:48:28 +00:00
Joel Hough c14f18cb85 account setting for author email in notifications
fixes CNVS-15348

test plan
- send a conversation message
- ensure that the notification does not include the author's email
 address
- in the account's settings page, check "Show the email address of
 sender for user interaction Notifications"
- send another conversation message
- ensure that the notification includes the author's email address

Change-Id: I2816d82fb2f6413d1c2c972296a758b571fb03de
Reviewed-on: https://gerrit.instructure.com/40766
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-09-10 19:57:52 +00:00
Jayce Higgins ab7bfdfb54 Adds accessibility warning to groups page
Fixes: CNVS-14749

This adds a warning message to the groups page
when first tabbing into the main content. It
informs the users if they are keyboard users, that
there is a MoveTo button in the menu for them to use
to move the students around.

Test-Plan:
1.) Navigate to the groups page
2.) Tab into the main content
3.) Verify that a message appears to inform of MoveTo option

Change-Id: I3e8d860fc3a3a22d9426ff9e856ea87a767a2e12
Reviewed-on: https://gerrit.instructure.com/40510
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Product-Review: Matthew Wheeler <mwheeler@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
2014-09-10 16:34:55 +00:00
Clay Diffrient 2591aba7ee Makes module titles more accessible
Modules collapsed/expanded state is now indicated by screenreaders
The module title can now be accessed and expanded/collapsed
by keyboard only users. It is essentially a temporary fix for
a couple of issues until the module page can be refactored.

closes CNVS-14721

test plan:
  - Using a screenreader (specifically JAWS is requested)
  - Go to the modules page (/courses/##/modules)
  - The module titles should not be recognized as headers
  - Navigate to a module title header.
  - The module should be able to be expanded/collapsed using the
    keyboard
  - The screenreader should announce if the module is expanded or
    collapsed.

Change-Id: I40277af739d8be1f1bb5b19aee205dfbee7c615f
Reviewed-on: https://gerrit.instructure.com/40826
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-10 14:35:13 +00:00
Brian Palmer 6863c8fea4 fix rendering of uncategorized account level groups
fixes CNVS-14243

test plan: create an Uncategorized account-level group, easiest way to
do this is a SIS import like so:

group_id,name,status
fromsis,from SIS,available

Then visit /accounts/self/groups. The group should appear in the
"Uncategorized" tab. Visit the group homepage /groups/:id by clicking
the gear -> "Visit Group Homepage". The group homepage should render
without error, and you should be able to interact with the group like
any other. Test this as a student enrolled in the group, as well.

Change-Id: Id4f08b704226653acc35df517fe58ce4f8f9e6eb
Reviewed-on: https://gerrit.instructure.com/40789
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
2014-09-09 21:54:23 +00:00
Simon Williams 7b00965fa2 fix saving turnitin settings
fixes CNVS-15258

test plan:
- create an assignment and enable turnitin and open the advanced options
- change different combinations of settings: check/uncheck boxes, radio
  buttons, dropdowns, and fill in fields
- no matter what settings combinations you pick, when you press "Update
  Settings", and then re-open the dialog, it should be consistent
- if you close the dialog with the x, it should not keep your changes
- when you save the assignment and go back to edit it, it should keep
  your last 'updated settings'

Change-Id: I150402907b7829474f2c2a7102d2a4039438f809
Reviewed-on: https://gerrit.instructure.com/40644
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-09-09 21:42:29 +00:00
Liz Abinante a868de1c36 accessibility for new conversation dialogs
fixes CNVS-14515

test plan
- as a teacher, visit /conversations
- make sure your inbox is set to display 'All Courses'
- using screenreader, compose a new message
- verify that no course is selected
- verify that the 'To' autocomplete fields are disabled
- select a course
- verify that the 'To' autocomplete fields are no longer
  disabled and are available to the screenreader
- celebrate! 🎉
- go back to your inbox
- filter messages by one course
- compose a new message
- verify that the course you filtered for is selected
- verify that the 'To' autocomplete fields are not disabled
- reply to an existing message, verify that the 'To' field is accessible

- as an admin, visit /conversations
- verify that 'To' is *not* disabled for screenreaders

Change-Id: I2fddc876c881dda87ddc06e8e39a31b37bedf1d9
Reviewed-on: https://gerrit.instructure.com/40781
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Product-Review: Matthew Wheeler <mwheeler@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
2014-09-09 19:10:00 +00:00
Alex Boyd 9d79217ace Show properly internationalized dates on locked discussions
Fixes CNVS-14087

Test plan:
  - Create a discussion topic
  - Set the discussion's "available from" date to a non-hour date in the
    future (e.g. 12:30pm)
  - Publish the discussion
  - View the discussion as a student and ensure that the full hour and
    minute are displayed as part of the "This topic is locked until..."
    message

Change-Id: Ic014fe90d59e111f484875291d0bb81e1d98b3c3
Reviewed-on: https://gerrit.instructure.com/40404
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-09-09 18:03:06 +00:00
Alex Boyd 2c2762748b Show full timestamps on conversation messages
Fixes CNVS-13871

Test plan:
  - Create and send a conversation message
  - Locate the message under "Sent" and click on it
  - Ensure that the the full date and time, including the year, are
    displayed in the upper-right corner of the message

Change-Id: I00c3c0df252dc8e32e4aeb2567460c7507750dda
Reviewed-on: https://gerrit.instructure.com/40675
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Mark Severson <markse@instructure.com>
2014-09-08 22:46:31 +00:00
Simon Williams 93f1103731 require course assignment groups in a saner way
fixes CNVS-15252

test plan:
- create a new course and DO NOT visit the assignment index page
- go create a new ungraded discussion
- refresh the discussion show page a few times
- go to the assignment index page
- there should only be 1 assignment group (the default)
- repeat the process with an ungraded quiz

Change-Id: If6714bef05379a0f1253a0843d473695a1372456
Reviewed-on: https://gerrit.instructure.com/40709
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-09-08 22:01:54 +00:00
Clay Diffrient c2443d53dc Converts wiki page title to use h1 rather than h2
fixes CNVS-14906

Test Plan:
  1. Navigate to a page under Pages in a course
  2. In VO, press ctrl+option+cmd+h to go to the first and
     only header
  3. Press a second time to confirm that there are no more
     headers
  4. Hold shift while pressing those same keys to confirm that
     there are no previous headers
  5. Header should be recognized as a H1

Change-Id: I29ee832829581f08e23f0d3b01a264e908c67deb
Reviewed-on: https://gerrit.instructure.com/40673
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-08 18:58:54 +00:00
Mark Severson ea232fd3f1 add ui notification of bouncing channels
test plan:
 * add various communication methods to your user
 * navigate to any page other than your user's settings
 * using the console, increase the bounce count of all channels:
     User.find(id).communication_channels.unretired.each do |cc|
       cc.bounce_count = 100
       cc.save
     end
 * refresh the page
	 - a notification should show at the top of the page, indicating a
	   potential problem on your settings page
	 - navigating anywhere other than the settings page will cause the
	   notification to persist

 * navigate to the settings page
   - the notification should disappear
   - your communication channels should all indicate a problem with
     delivering messages to you
 * removing and re-adding the channels should remove all indicators

 * navigate to any page other than your user's settings
 * using the console, increase the bounce count of one channel:
     cc = User.find(id).communication_channels.unretired.first
     cc.bounce_count = 100
     cc.save
 * refresh the page
   - once again, the notification should show at the top of the page

fixes CNVS-15255

Change-Id: If45664c1b33d75fbfe8aa3480dfebd8872c6b064
Reviewed-on: https://gerrit.instructure.com/40534
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>
2014-09-08 15:59:54 +00:00
Bracken Mosbacker a5941ff861 allow external tool to not show up in module/asmnt selection
Some tools aren't meant to be selected in the ET UI. This
adds an option to hide them.

Test Plan:
 * Install an external tool with the property "not_selectable" as true
 * when you look in the asmnt/module item external tool list the tool
   should not be listed

closes PLAT-619

Change-Id: I0a8b0771b2b2d84bc6fe0b66779728abec1ef212
Reviewed-on: https://gerrit.instructure.com/40505
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2014-09-08 14:52:41 +00:00
Ethan Vizitei 173ab80f3a needs_grading by section for mobile
fixes CNVS-14375

Previously grading counts were only available
aggregated as a count for the assignment. This
lets you consume them split out by section
rather than.

needs_grading_count_by_section is the flag
to send.  This also splits out the needs_grading
query off into it's own object to reduce the
cognitive load of working in the assignment model.

TEST PLAN:
 - setup a course with multiple sections and
    assignments that need grading for students in
    each
 - hit the assignments API index with the
    "needs_grading_count_by_section" parameter set
    to true
 - the JSON response should include a
     "needs_grading_count_by_section" key for
     each assignment and it should have a hash
     of section ids and counts

Change-Id: I290a080b5f657996423798cacfb37660f5ed427c
Reviewed-on: https://gerrit.instructure.com/39627
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
2014-09-08 13:21:31 +00:00
Brad Horrocks 6ec8d4d673 Hide < & > arrows in mini-cal from screenreaders
Modified core jqueryui datepicker :/
Updated mini calendar external

Fixes CNVS-14481

Test Plan:

I'd like to pair with who ever tests this. So I can get an idea how
these are tested.

	- Make sure the mini-cal is invisible to Screen Readers

Change-Id: Ib95c812746dabb5e5a2b25472923bb8e1e7c9ca6
Reviewed-on: https://gerrit.instructure.com/40298
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Alex Boyd <aboyd@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2014-09-05 21:45:48 +00:00
Jayce Higgins 5c85d1b375 Make text appear to inform of agenda being accessible
Fixes: CNVS-14739

On focus of month and week buttons in calendar
a message appears to inform keyboard only users
to use the agenda view.

Test-Plan:
1.) Navigate to calendar
2.) Use tab to navigate to the week and month buttons
3.) Verify that a warning message appears next to
	the button

Change-Id: Iefab5a5196b0efa9abbbcfdf95b849123f70b784
Reviewed-on: https://gerrit.instructure.com/40092
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Dana Danger <dana@instructure.com>
2014-09-05 18:58:03 +00:00
Jacob Fugal 93f9accc82 smarter linking of public portfolio owner's name
fixes CNVS-5352

only link to a user page if one is visible to the person viewing the
page. prefer the /about/:id page if the account has profiles enabled.
otherwise, prefer the /users/:id/profile page when viewing my own
portfolio and the /users/:id page otherwise (and only if permitted).

test-plan:
  - have a target user with a student enrollment
  - create a public portfolio for the target user

  - enable profiles on the account
    * log out and view the portfolio
      - the portfolio owner's name should not be linked

    * log in as portolio owner and view the portfolio
      - the portfolio owner's name should be linked to /about/...
      - following the link should be authorized

    * log in as an account admin and view the portfolio
      - the portfolio owner's name should be linked to /about/...
      - following the link should be authorized

    * log in as a teacher in the student's class and view the portfolio
      - the portfolio owner's name should be linked to /about/...
      - following the link should be authorized

    * log in as an unrelated non-admin user (i.e. student from some
      other class) and view the portfolio
      - the portfolio owner's name should not be linked

  - disable profiles on the account
    * log out and view the portfolio
      - the portfolio owner's name should not be linked

    * log in as portolio owner and view the portfolio
      - the portfolio owner's name should be linked to
        /profile
      - following the link should be authorized

    * log in as an account admin and view the portfolio
      - the portfolio owner's name should be linked to /users/...
      - following the link should be authorized

    * log in as a teacher in the student's class and view the portfolio
      - the portfolio owner's name should not be linked

    * log in as an unrelated non-admin user (i.e. student from some
      other class) and view the portfolio
      - the portfolio owner's name should not be linked

Change-Id: I812076d10bd3c56b87938627c9f095a1793128e6
Reviewed-on: https://gerrit.instructure.com/39863
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
2014-09-05 16:04:11 +00:00
Liz Abinante 233dbb5ce5 accessibility warning for assignment group drag & drop
fixes CNVS-14750

test plan!
- on the assignment index page
- as a teacher (or other person with admin powers)
- using keyboard navigation and all the screenreaders
- tab to the assignment group drag and drop handle
- a wild accessibility warning should appear
- it should be read by screenreaders
- tab away from the drag and drop handle
- the warning should ~disappear~

Change-Id: I56d239d9dcb930b25f6ea0704cfaa7d20708aba2
Reviewed-on: https://gerrit.instructure.com/40212
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Dana Danger <dana@instructure.com>
2014-09-05 15:19:08 +00:00
James Williams 8e2aefd201 add tool links to gear menus on discussion topics
test plan:
* as with g/39874, add an external tool to a course
with 'discussion_topic_menu' configured

* enable lor feature flag for account or user
* confirm that menu items for the tool are added to the
 gear menus on the index and individual show pages for
 discussion topics

closes #CNVS-15239

Change-Id: Ic309c14f75ae0b2e38f9d1324b7a8d370fa93fde
Reviewed-on: https://gerrit.instructure.com/40550
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2014-09-05 15:05:56 +00:00
Ahmad Amireh 1c03e40aae quiz index optimizations
Closes CNVS-15109, CNVS-15173

CHANGES
-------

  - "auto-grading" of due submissions that was previously done
    synchronously in the index action is now done in a DJ
  - when viewing the index page, you don't get to see due/available
    dates on load, instead the dates are fetched on the client-side and
    load progressively
  - new API endpoint for retrieving assignment overrides for a bunch of
    quizzes at [GET] /courses/:course_id/quizzes/assignment_overrides
  - we now cache the user's quiz permissions
  - Canvas AMS API serializer now accepts a new option, see docs
  - QuizSerializer behavior changed radically:
    - "takeable", "submitted_students", "unsubmitted_students"  disabled
    - all associations disabled including the submission, assignment
      group, and any student participants
    - it can now utilize preloaded permissions

Rationale behind disabling things in the serializer is that these were
exclusive for the "show" action, so the next step forwards is to
allow the serializer to recognize different "modes" for output (e.g, for
index and one for show) and tailor the associations/fields accordingly.
Using "#filter" right now isn't cutting it, because assocs get loaded
anyway.

REFACTORING
-----------

  - broke down index into three actions for visibility:
    1. default, Draft-State version
    2. legacy non-DS version that's not reachable in the UI, kept around
       until we upgrade the tests
    3. ember version
  - legacy non-DS ERB code goes into its own file
  - moved code that used to grade due submissions inside index to
    SubmissionGrader in preparation to remove it from there entirely
  - cleaned up internal docs for the Canvas AMS api serializer

TEST PLAN
---- ----

  - create ~30 quizzes
    + make one of them have many questions
    + make a good number of submissions (i tested with 420 and 20
students)
  - create multiple sections
    + specify date overrides for certain sections, and have at least one
      student enrolled in that section
  - as a teacher and/or an observer, go to quizzes index
    + verify the page renders fine
    + verify that you see "loading indicators" in the due/available
      field which get replaced with actual dates when they're loaded
    + verify it's faster than the version in master (should be at least
      60% faster)
  - as a student in the general section, go to quizzes index
    + verify the page renders
    + verify you see the same loading behavior for dates as in teacher
      view
  - as a student in one of the section with overrides, go to index:
    + verify you see the overridden date

Change-Id: I741d89625da1b858148baa95e881fcc75c1802e5
Reviewed-on: https://gerrit.instructure.com/40350
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-09-05 14:20:38 +00:00
Jon Willesen 4edaec6e0a profile picture should not be clickable if it can't be edited
fixes CNVS-15160

test plan:
 - Create a course with two users enrolled.
 - As one user, go to the other user's /courses/X/users/Y page
 - The profile picture should not be a link and should not be
   clickable.
 - As the same user, go to your own profile page; the profile
   picture should be clickable and let you change your avatar.

Change-Id: I6bac70eef1b23288c5a360058c48742d9a556255
Reviewed-on: https://gerrit.instructure.com/40431
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
2014-09-04 22:24:54 +00:00
Clay Diffrient e1365c7be6 Makes quota labels read by screenreaders
Uses labelled-by to force screenreaders to read the labels,
this shouldn't be needed, but for some odd reason here it
was.

fixes CNVS-13909

Test Plan:
  - Using a screenreader (NVDA) go to the accounts settings
    page on the quotas tab
  - Navigate to the quota inputs
  - The screenreader should read the various labels so that
    you can tell which quota you are editing.

Change-Id: I8d5683e67808115027b18732c77c770b40998cc7
Reviewed-on: https://gerrit.instructure.com/40377
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-04 20:10:23 +00:00
Liz Abinante 72d71cbda3 add accessible accessibility warning to gradebook2
fixes CNVS-14487
fixes CNVS-14488

test plan
- using all the screenreaders
- with learning mastery gradebook enabled
- go to gradebook 2
- tab into the "skip to content" link
- skip to the content
- verify that the warning about accessibility appears
- verify that the warning is accessible as the first item in the content pane
- verify that the warning link takes you to srgb
- verify that when you tab away from the warning it disappears and does not reappear
- celebrate

Change-Id: Ibefaa975381129f8b223c95070722b44a240364b
Reviewed-on: https://gerrit.instructure.com/39893
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Dana Danger <dana@instructure.com>
2014-09-04 19:45:36 +00:00
Alex Boyd 493d766ea5 Show creation date, not edited date, above discussion replies
fixes CNVS-8332

test plan:
  - create a discussion topic
  - reply to said discussion topic
  - a minute later, edit the reply
  - ensure that the time shown above the reply is the time you
    originally created the reply, not the time at which you
    edited it

Change-Id: Ie00e8920c3117fffe219ce941a3565a63a2234b7
Reviewed-on: https://gerrit.instructure.com/40302
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
2014-09-03 23:29:42 +00:00
Clay Diffrient d749695c6d Modifies the footer alt text to match the image
fixes CNVS-14590

Test Plan:
  - Using a screenreader, go to any page in Canvas,
    even the login page.
  - When you navigate to the footer "By Instructure" the
    screenreader should simply read "By Instructure"

Change-Id: Ie61711610ab93f17792c0d288c1069fc0283a4e6
Reviewed-on: https://gerrit.instructure.com/40456
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-03 19:01:50 +00:00
Clay Diffrient 0b7d92b0b4 Adds an aria-describedby for the forgot email input box
Associates the instructions with the input so that screenreaders
can read it to users.  NVDA will read the text immediately when
the input has focus.  VoiceOver will not, but it will read it
as help text if you leave focus on the box long enough.

fixes CNVS-14597

Test Plan:
  - Using a screenreader go to the login page.
  - Click the forgot password link
  - Navigate to the email input box.
  - The additional text should be read as indicated in the
    commit summary above.

Change-Id: I605ce8d1e922f6674ed6d2cd73dbe223e742c6bf
Reviewed-on: https://gerrit.instructure.com/40459
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-03 19:01:40 +00:00
Jacob Fugal c25fbb14ac fix 'Become' link for admins on profile page
test-plan:
 - have profiles enabled on the account
 - log in as an admin
 - flag some other target user was "public"
 - try and view that user's profile
 - should not get a 404

Change-Id: Ibcae7f577b5824d42996c830030d5dd87094685f
Reviewed-on: https://gerrit.instructure.com/40250
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2014-09-02 19:37:33 +00:00
Clay Diffrient 4619201b7d Adds a role to sidebar buttons on account settings
fixes CNVS-13905

Test Plan:
  - Using NVDA in Firefox go to the account settings page
    (/accounts/##/settings)
  - Using the "B" key the "Add a New Course" and "Add a New
    User" buttons should be recognized.
  - Using the "F" key the same should occur

Change-Id: Ief88cec1f0c12a48ba55ac50614ca83877358a20
Reviewed-on: https://gerrit.instructure.com/40369
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-09-02 18:55:20 +00:00
Brad Humphrey 6b93299aef allow lti content to enter full screen mode
Test Plan
- lti content should be able to enter full screen mode

fixes PLAT-614

Change-Id: Icffa991ca618cc6aeab2ac5ba0743746ab8bac41
Reviewed-on: https://gerrit.instructure.com/40320
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-09-02 16:37:43 +00:00
Clay Diffrient f42da26308 Adds "Move To" dialog to the course settings navigation tab
Modifies the screenreader instructions group to be much simpler
just warning users to use the new dialog.  Makes the warning
appear for keyboard-only users.

closes CNVS-12799, CNVS-14733

test plan:
    1. Load up the course settings page (/courses/##/settings)
    2. Click on the gear icon in the enabled list.
    3. Click 'disable'
    4. It should now appear in the disabled list, the gear icon link
       should have changed to 'enable'
    5. Use the gear and click on move.
    6. A dialog should appear allowing you to move things within
       a list.
    7. Clicking the save button should persist changes beyond the
       current session.
    8. Repeat the above steps using a screenreader.
      a. When you tab off of the navigation tab, a warning should
         appear (and be read by the screenreader)
      b. The message should disappear when tabbing off of it.

Change-Id: Ie3d2cae23a47535d5a3995174794e0f0d853e629
Reviewed-on: https://gerrit.instructure.com/40169
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-08-29 19:52:26 +00:00
Chris Hart 4792a97aff Move primary and user navigations into partial files
Addresses: DES-167

For the upcoming K-12 header, we will be using the K-12
feature flag to split up the markup for the header and
its navigations. This would make the application.html.erb
file a big mess of logic; so to make it more readable, we
will start by putting the primary and user navigations
into partial files.

Code review test plan:
- Make sure the partials are correctly called into the
  application.html.erb file.
- Do the QA test plan.

QA test plan:
- Click on the links in the primary and user
  navigations, and make sure they're all going to
  the right places.

Change-Id: I666d515793b4dcd18838219094f2457f326e6e75
Reviewed-on: https://gerrit.instructure.com/40167
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Chris Hart <chart@instructure.com>
2014-08-29 19:16:31 +00:00
Ryan Florence f98219f795 reorder content and sidebar
headers in the content should come before headers
in the sidebar

fixes CNVS-15105

Change-Id: I6ae02bd784ecf893acae6574f93685f9216f035a
Reviewed-on: https://gerrit.instructure.com/40101
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
2014-08-29 19:14:04 +00:00
James Williams 9e06181005 add tool links to gear menus on assignments, quizzes and pages
test plan:
* as with g/39874, add an external tool to a course
with 'assignment_menu', 'quiz_menu' and 'wiki_page_menu'
configured
* enabled lor feature flag for account or user

* confirm that menu items for the tool are added to the
 gear menus on the index and individual show pages for
 assignments, quizzes and page

closes #CNVS-14555 #CNVS-14556 #CNVS-14557 #CNVS-14558 #CNVS-14559 #CNVS-14560

Change-Id: Ib5fcda93b51567bc3e64229014822382918113ac
Reviewed-on: https://gerrit.instructure.com/40168
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
2014-08-29 18:30:09 +00:00
Ethan Vizitei 094ffc2504 Give good error message when user doesn't exist
fixes #CNVS-15119

This is for the workflow when you're adding
a user to a course as a teacher.  Currently
it makes it sound like the error is an email
formatting problem.

This also sets up a reusable way to push
account settings info over in the environment
and check it in a handlebars template.

TEST PLAN:
 - Login as an instructor
 - Make sure the root account has 
    "open_registration" turned off
 - Try to add a student to your course by email
     who isn't currently a canvas account holder
 - The error message should tell you that if the
     formatting is ok, you need to ask your admin
     if they have a canvas account


Change-Id: I0cfc07c4612ff4db7ef759cc146e612f94c1075b
Reviewed-on: https://gerrit.instructure.com/40230
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-08-29 16:35:26 +00:00
Clay Diffrient 2d2bbcf251 Adds scope to th tags on course roster
Adds screenreader-only text to the empty table headings

closes CNVS-15088, CNVS-15161

test plan:
  - Go to the people page (/courses/##/users)
  - Viewing the source should show scope attributes on the th's
  - Presumably a screenreader or other assistive technology will
    work better with this.

Change-Id: I802c7650a5bf409bd431b21da0d970252941cdae
Reviewed-on: https://gerrit.instructure.com/40192
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2014-08-28 21:19:33 +00:00
Brian Palmer d6c9d87f76 add the canvas version to delayed_jobs_pool proc name
test plan: with a VERSION file in your rails root, run delayed jobs, the
process name will include the contents of the VERSION file. with no
VERSION file, it won't.

Change-Id: I773ff4ace5facdb48d415ad7528daaf761aeab1d
Reviewed-on: https://gerrit.instructure.com/40162
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
2014-08-28 18:25:49 +00:00
Aaron Cannon f1bdc8f7e4 Accessibility: Enclose discussion titles in h3s
Fixes CNVS-14659

Test plan:
- Visit the list of discussion topics for a course.
- Verify that the discussion titles are recognized as level three headings by
  screen readers.
- Verify that the visual appearance of the page has not been effected.

Change-Id: Ideddc504730cd0e8cdc91a8f34174922acafed76
Reviewed-on: https://gerrit.instructure.com/38886
Reviewed-by: Jayce Higgins <jhiggins@instructure.com>
Product-Review: Matthew Wheeler <mwheeler@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matthew Wheeler <mwheeler@instructure.com>
2014-08-28 17:33:07 +00:00
Ethan Vizitei 45ab031524 change wording on question bank editing
fixes #CNVS-13065

Per Erin Hallmark, "Question Group" makes
more sense than "Quiz Group"

Test Plan:
 -Login as an instructor
 -try to add a question to a question group
 -see the better label that using the preferred
    wording

Change-Id: I372e4bce7e223557ae5ce3a08f2d91882bd45857
Reviewed-on: https://gerrit.instructure.com/39760
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2014-08-27 23:16:36 +00:00