Move course notification preference code into shared package so that
it can be used by both the account_notification_settings and
course_notification_settings features.
refs LS-2763
flag = none
Test plan:
- Open /profile/communication and expect to be able to change
preferences for account and courses
- Open /courses/<id>?view=notifications and expect to be able to
change course notification preferences
Change-Id: I092e1dabac092b3768a97cf7bf527ebe0a79e670
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/276254
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Nate Armstrong <narmstrong@instructure.com>
QA-Review: Nate Armstrong <narmstrong@instructure.com>
Product-Review: Nate Armstrong <narmstrong@instructure.com>
This change adds grouping (by term) and sorting (by term name, then by
course name) to the course selector on the notification preferences page.
closes LS-2693
flag=notification_settings_course_selector
test plan:
- enable the `notification_settings_course_selector` feature
- clear your redis cache if necessary
- enroll the current user in several courses, across multiple terms
- visit the account-level notification settings page
- verify that the course selection dropdown groups courses by term
- verify that terms are ordered alphabetically
- verify that courses are ordered alphabetically within their term
- un-publish one of the courses, causing its state to change to something
other than `available`
- verify it no longer appears in the course selection list
Change-Id: Idfba560934d360649a67caf96e33e1b0ee300a36
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274998
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeff Largent <jeff.largent@instructure.com>
QA-Review: Jeff Largent <jeff.largent@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
This change allows notification preferences to be customized for both the
account level and individual courses from the account 'Notifications'
page. It adds a dropdown menu where the user can switch between different
contexts.
This feature is behind the `notification_settings_course_selector` feature
flag, HOWEVER, it is immediately enabled for anyone who is actively
enrolled in a Canvas for Elementary K5 subject.
closes LS-2572
flag=notification_settings_course_selector
test plan:
- ensure the feature flag referenced above is *disabled*
- ensure multiple active (and inactive) enrollments exist for a user, and
that Canvas for Elementary is *disabled* for the respective accounts
- navigate to account-level notification settings
- confirm that the course selector *is not* displayed
- enable Canvas for Elementary on one of the accounts of your enrollments
- reload the account-level notification settings page
- confirm that the select allows switching between the account level and
the course level (but only for active course enrollments)
- confirm that settings can successfully be adjusted at both the account
and course level
- verify, by navigating to the traditional course notification settings
page, that modifications to course notification settings were persisted
correctly
- disable Canvas for Elementary, and enable the SiteAdmin feature flag
mentioned above
- reload the account-level notification settings page and confirm the
course selector is still shown
Change-Id: I8b28f50581b5fdd18d31e190082339f02c9433dd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/272419
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
closes INTEROP-6689
flag=none
also dev config for api-gateway development
TEST PLAN:
1) provide api gateway url through dynamic settings
2) notification preferences uses api gateway for graphql
queries
Change-Id: I78c59998d6de522df4f16a98d8f468424add674c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/271525
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Ziwisky <mziwisky@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>