Commit graph

258 commits

Author SHA1 Message Date
Scott Erickson
6e48d700bc Merge branch 'update-invite-to-classroom'
Work was duplicated. Merging in changes from branch, but leaving
the master version as is in this commit.
2016-06-02 10:20:19 -07:00
phoenixeliot
f067337635 Fix classroom student count 2016-05-31 11:22:42 -07:00
Matt Lott
d0d3d838ed Better page titles
Also ditching non-production constructor page titles
2016-05-27 09:40:46 -07:00
Scott Erickson
6b3e94d60a Remove log 2016-05-26 15:12:10 -07:00
Scott Erickson
7d1d1500d9 Fix course progress tab select 2016-05-26 15:01:23 -07:00
Matt Lott
e218af8418 Terminology change: enrollments/credits => licenses
Closes #3676
2016-05-25 09:27:47 -07:00
phoenixeliot
a1a55a9b6d Remove revoke functionality 2016-05-24 16:05:40 -07:00
Scott Erickson
8dbc86ca04 Fix bugquest bugs
Hide TeachersContactModal after sending message

Fix GET /db/level/:handle/session, more extensively test

Fix EnrollmentView number of students input to stop losing focus on input

Fix EnrollmentsView syntax

Fix ActivateLicensesModal "Get Enrollments" button when already in the enrollments page

Update EnrollmentsView with new credit numbers when ActivateLicensesModal closes

Hide search box in TeacherClassView "Enrollment Status" tab

Tweak EnrollmentsView styling

Fix EnrollmentsView tests

Fix AnalyticsView

Make EnrollmentsView more explicitly handle undefined and empty array prepaid groups

Remove log

CoursesView handles JoinClassModal cancel

Re-enable EditStudentModal set password button when the form changes

Fix course instance tests, next level endpoint bug

Fix EditStudentModal tests
2016-05-24 14:10:56 -07:00
phoenixeliot
3d705e5d70 Fix bugquest bugs
Fix link to /teachers/classes (fixes bugquest#20)

Fix edit button color/icon (bugquest#23)

Fix bugquest#34

Fix password input width (bugquest#33)

Center new pasword text

Fix teacher password reset endpoint (bugquest#4)

Refactor+use NewHomeView logic for user page button (Fixes bugquest#2)

Refactor teacher-password-reset endpoint

This makes it much easier to prevent collisions with other logic when PUTing new User attributes.

Add regression test for converting to teacher account

Fix email verified links, require login (fix bugquest#16)

Fix me having stale emailVerified value (Fixes bugquest#40)

Don't show JoinClassModal to students

Add paragraph to JoinClassModal (fixes bugquest#14)

Update change-password label text (fixes bugquest#30)

Fix prompting for login on Account Settings page (bugquest #10)

Show validation errors for teacher password reset (bugquest#36)

Show yellow progress dot in My Classes if anyone has started (bugquest#55)

Remove confusing text (bugquest#100)
2016-05-24 14:10:17 -07:00
Scott Erickson
f0fa88206d Add Enrollment start/end dates, remove self-serve
* Refactor several related endpoints and views
* Redesign EnrollmentView, add TeacherContactModal
* Add "Enrollment Status" tab to TeacherClassView
* Delete PurchaseCoursesView and related files
* Style-flatten RemoveStudentModal
* Fix error handling in ActivateLicensesModal
* TeacherCoursesView loads faster by only loading course campaigns, and not load prepaids
2016-05-24 14:07:28 -07:00
phoenixeliot
8496343a02 Improve student account recovery
This adds the ability to verify email addresses of a user, so we know they have access to the email address on their account.

Until a user has verified their email address, any teacher of a class they're in can reset their password for them via the Teacher Dashboard. When a user's email address is verified, a teacher may trigger a password recovery email to be sent to the student.

Verification links are valid forever, until the user changes the email address they have on file. They are created using a timestamp, with a sha256 of timestamp+salt+userID+email. Currently the hash value is rather long, could be shorter.

Squashed commit messages:

Add server endpoints for verifying email address

Add server endpoints for verifying email address (pt 2)

Add Server+Client endpoint for sending verification email

Add client view for verification links

Add Edit Student Modal for resetting passwords

Add specs for EditStudentModal

Tweak method name in EditStudentModal

Add edit student button to TeacherClassView

Fix up frontend for teacher password resetting

Add middleware for teacher password resetting

Improve button UX in EditStudentModal

Add JoinClassModal

Add welcome emails, use broad name

Use email without domain as fallback instead of full email

Fetch user on edit student modal open

Don't allow password reset if student email is verified

Set role to student on user signup with classCode

Tweak interface for joinClassModal

Add button to request verification email for yourself

Fix verify email template ID

Move text to en.coffee

Minor tweaks

Fix code review comments

Fix some tests, disable a broken one

Fix misc tests

Fix more tests

Refactor recovery email sending to auth

Fix overbroad sass

Add options to refactored recovery email function

Rename getByCode to fetchByCode

Fix error message

Fix up error handling in users middleware

Use .get instead of .toObject

Use findById

Fix more code review comments

Disable still-broken test
2016-05-24 14:07:28 -07:00
Scott Erickson
184be0bf65 CourseDetailsView does not link to next course if the student is not assigned to that course 2016-05-18 17:03:49 -07:00
Matt Lott
6f6d65a005 /courses/update-account page
Allows a user to update their account based on their current role of:
individual, student, or teacher

Closes #3647
2016-05-18 06:06:28 -07:00
Scott Erickson
f6b3016d85 POST /db/classroom/-/members joins any free course instances, rather then CoursesView doing so 2016-05-16 16:47:08 -07:00
phoenixeliot
35d0352a92 Autofill class code from URL in signup modal 2016-05-11 14:53:05 -07:00
Scott Erickson
f7a6d354af Add school and teacher names to invite email context 2016-05-06 13:28:19 -07:00
phoenixeliot
8223122a6b Refactor and update teacher-dashboard
This updates TeacherClassView and ActivateLicensesModal to use the
new state-based rendering system, making it much snappier and less clunky
feeling, and improving data consistency.

Features also included in this:
- Hover details for progress dots in TeacherClassView
- ActivateLicensesModal has an "All Students" option and better handling
  when you switch classrooms in the dropdown
- Unenrolled/Unassigned students are shown separately in Course Progress and
  can be enrolled/assigned from there.

Add Back to Classes button on demo-request submitted view

Delete temporary patch file

Show unenrolled students separately in Course Progress (incomplete)

Migrate TeacherClassView to use orchestrator-style events, add unassigned students section, replace bootstrap tabs with state-based tabs

Convert missed instance variables to be in @state

Fix merge errors

(in progress) Convert a bunch of stuff to use state and events (removing student needs fixing)

Fix up modal interactions, some bugs

Switch state to be a Model, sync up course dropdowns

Convert student sorting to use state model

Add hover tooltips to TeacherClassView Students tab

Don't keep tooltip open when you mouse into it

Add dateFirstCompleted and Course Progress tooltips

Course Overview progress tooltips

Refactor ActivateLicensesModal

Refactors:
Uses state object for view state
Passes back the updated users in 'redeem-users' event instead of modifying given collection

Features:
Add 'All Students' dropdown option
Don't forget checked students if you change classroom from dropdown,
  but only enroll the ones visible when you click "Enroll (n) Students"

Separate enrolled students; improve style

Rearrange error text

Disable enroll-students button when none are selected

Remove console.logs

Move style-flat variables to another file

This prevents .style-flat from being copied in multiple times to the resulting CSS.

Show Unarchive button when on the page for an archived class

Move text to en.coffee

Only sort students on first classroom sync

Fix merge error

Handle sessions missing completion date in view logic instead of migration script

Listen to classroom sync more than once in case it gets unarchived
2016-05-06 13:13:11 -07:00
Matt Lott
b70e9bbcfe Add export student progress csv to class view
Works on Chrome and Firefox, not so great on Safari, untested on IE and
Edge.
2016-05-05 09:54:24 -07:00
Scott Erickson
aed5e6b8ac Fix removing students from a classroom
TeacherClassView loaded course instances by owner rather than by classroom,
so the student would be removed from course instances in unrelated
but commonly owned classrooms.
2016-05-03 13:08:42 -07:00
phoenixeliot
c666a39d3b Fix StudentLoginModal crash on invalid login
Add test for student bad login
2016-04-29 15:34:11 -07:00
Scott Erickson
997fe1aafb CoursesView uses regular login and create account modals 2016-04-27 16:26:05 -07:00
phoenixeliot
1999b41ff3 Don't convert to teacher automatically in EnrollmentsView 2016-04-27 13:20:19 -07:00
Scott Erickson
675e3290ac Lock course content to classrooms 2016-04-27 09:58:04 -07:00
phoenixeliot
e2d08fa7cf Stuff
Partially fix ActivateLicensesModal.spec

[IN PROGRESS] Don't display deleted users

Move userID to classroom.deletedMembers on user delete (not retroactive)

Fix PDF links for course guides, remove old PDFs from repo

Remove deprecated SalesView

Remove underline for not-yet-linked student names

Only show class select when there's more than one

Ignore case when sorting student names

Use student.broadName instead of name for display and sorting

Fix initial load not showing progress after joining a course (hacky)

Fix text entry for enrollment number input

Fix enrollment statistics

Fix enrollment stats completely (and add back in per-class unenrolled count)

Add deletedMembers to classroom schema

More fixes to enrollment stats (don't count nonmember prepaids)

Don't use 0 as implicit false for openSpots

Update suggested number of credit to buy automatically

Fix classroom edit form ignoring cleared values

Add alert text when more users selected than enrollments available

Alert user when trying to assign course to unenrolled students

Alert user when assigning course to nobody

Add some tests for TeacherClassView bulk assign alerts

Fix TeacherClassView tests failing without demos

Use model/collection.fakeRequests :D

Remove unused comment

Fix handling of improperly sorted deleted users on clientside

Add test for moving deleted users to deletedMembers

Add script for moving all deleted classroom members to classroom.deletedMembers

Completely rewrite tallying up enrollment statistics

Fix some tests to not be dependent on logged-in user

Address PR comments

Fix default number of enrollments to buy

Fix i18n for not enough enrollments

Use custom error message for classroom name length
2016-04-19 12:32:20 -07:00
phoenixeliot
a524256b5b Add sessionless play for Teachers 2016-04-12 19:34:05 -07:00
phoenixeliot
beb53d9f2f Various fixes and changes to teacher-accounts and teacher-dashboard 2016-04-04 15:42:29 -07:00
Scott Erickson
58a5df7a4f Restrict teacher and student accounts to their respective areas and actions 2016-04-04 15:20:34 -07:00
phoenixeliot
4a72ffc185 Implement all of teacher-dashboard 2016-04-04 15:19:27 -07:00
Scott Erickson
bd3a77da9f Implement teacher accounts 2016-04-04 15:18:06 -07:00
Scott Erickson
ebc98f988f Refactor CreateAccountModal out of AuthModal, add class code to signup 2016-03-10 10:52:11 -08:00
Imperadeiro98
92dc72cce1 Remove name from loadModel 2016-02-18 16:44:40 +00:00
Nick Winter
0ef29ddb95 Restrict who counts as a teacher in analytics 2016-02-08 14:44:38 -08:00
Scott Erickson
bb38c58903 Properly fix duplicate course instances
* Add script to merge existing course instances
* Have client only send one course instance creation
* Have server return existing course instance if one for the given classroom/course exists
* Remove bandaid code from ClassroomView
2016-02-08 12:48:29 -08:00
Scott Erickson
abb4e2fa47 Filter out duplicate course instances client-side 2016-02-05 14:03:43 -08:00
Nick Winter
260fd21f4e Add Segment for teachers, misc analytics cleanup tweaks 2016-02-02 15:13:55 -08:00
Scott Erickson
29350bf1de Make network error handling more generic 2016-01-27 10:41:56 -08:00
Cat Sync
96003dd240 filter deleted users out of ClassroomView 2016-01-22 14:32:39 -05:00
Imperadeiro98
f47640e59a Cleaned couple files
Removed some unused styles, a template, a view and changed the class
name of some views
2016-01-16 12:07:15 +00:00
Scott Erickson
a10aec256f Set upper limit to max seats you can purchase at once 2016-01-07 09:54:02 -08:00
Matt Lott
b971ce3492 Enroll single student without modal in classroom view 2015-12-21 15:45:14 -08:00
Matt Lott
bde8e6721c Add enroll students button to /courses/teachers 2015-12-21 15:04:21 -08:00
Scott Erickson
7c516c4d9f Move product information to the db 2015-12-14 11:10:50 -08:00
Scott Erickson
71bca28148 Have level list in CourseDetailsView include play buttons up through the last level completed and any levels started 2015-12-11 12:59:53 -08:00
Matt Lott
0c34d06e70 🐛Remove join class refresh 2015-12-10 12:22:48 -08:00
Nick Winter
591749de15 Fix some button child click and duplicate tag issues with e284ec79 2015-12-09 06:57:33 -08:00
Imperadeiro98
e284ec7959 Courses i18n
Also, removed duplicated 'Continue' string
2015-12-08 20:05:08 +00:00
Matt Lott
78548b550f Disable class language change after members > 0 2015-12-07 14:36:59 -08:00
Matt Lott
d6694adb57 🐛Fix disappearing classroom student progress
JIT course instances were not getting the sessionsByUser mapping in
some cases.
2015-12-07 14:15:56 -08:00
Matt Lott
0d752d8242 🐛Fix class student remove 2015-12-06 20:01:52 -08:00
Matt Lott
01f6e098a1 🐛Fix /courses/purchase purchase amount 2015-12-06 16:21:08 -08:00
Matt Lott
66f434adba Update class progress colors 2015-12-06 15:00:00 -08:00
Matt Lott
cb4d8fee8c Update /courses/purchase visuals 2015-12-06 14:26:35 -08:00
Matt Lott
77a8347b5e Prevent double _cc classroom join 2015-12-04 16:47:52 -08:00
Matt Lott
b9af07c785 Classroom view logged out Ux 2015-12-04 16:37:13 -08:00
Scott Erickson
31b65ef247 IE9 hacks
* GET params in a url sent through router.navigate are lost on IE9, use document.location.href = url instead
* Temporarily put raster images in the DOM to give them dimensions so they are rendered in the spritesheet correctly
* Add {cache: false} to fetches for /hoc course instances and sessions
2015-12-04 15:50:07 -08:00
Scott Erickson
ed478e7c5e Update enrollment terminology in ActivateLicensesModal, change enroll button color on disabled 2015-12-04 14:53:43 -08:00
Scott Erickson
afb26d535b Update ClassroomView with new enrollment terminology 2015-12-04 14:53:43 -08:00
Matt Lott
eed5ee552c 🐛Fix course details arena button jquery
Clicking on text within button was a problem.
2015-12-04 14:28:05 -08:00
Matt Lott
ee9e16a484 /courses/teachers analytics 2015-12-04 14:19:59 -08:00
Scott Erickson
6ac659b571 Add explanatory copy to TeacherCoursesView 2015-12-04 14:17:24 -08:00
Matt Lott
3fb85463fa Classroom details analytics 2015-12-04 14:11:47 -08:00
Matt Lott
44cd64e00e /courses analytics 2015-12-04 12:08:14 -08:00
Nick Winter
6d6f6138b1 Allow up to 63-character-long TLDs in email addresses 2015-12-04 12:06:42 -08:00
Nick Winter
c36bed8103 Fix classroom handling of sessions with no state yet 2015-12-04 11:59:51 -08:00
Matt Lott
4778cf5535 /hoc analytics 2015-12-04 11:31:49 -08:00
Nick Winter
16b1928fdb Default Play to /hoc route during Hour of Code week 2015-12-04 11:04:45 -08:00
Scott Erickson
8d70b5d53f Remove course mocks 2015-12-04 09:29:14 -08:00
Matt Lott
924bef3baa Remove autoplay from course details view 2015-12-03 16:25:33 -08:00
Matt Lott
c610ce6ffd Remove progress tab from course details view 2015-12-03 16:25:33 -08:00
Scott Erickson
52cb638a6c Have Student login/signup modals automatically focus first inputs 2015-12-03 16:16:28 -08:00
Scott Erickson
d874569b27 Add stats to ClassroomView 2015-12-03 14:51:38 -08:00
Scott Erickson
3ac8f16d28 Fix ClassroomView sparse progress handling 2015-12-03 13:32:22 -08:00
Scott Erickson
afbfc69fd5 Hide teacher controls in ClassroomView when a student is viewing 2015-12-03 13:16:57 -08:00
Scott Erickson
1b30b0e72a Project sessions loaded in ClassroomView 2015-12-03 12:36:37 -08:00
Scott Erickson
3fefdfa0a7 Add student total playtime to ClassroomView 2015-12-03 12:29:30 -08:00
Scott Erickson
1df87fa685 Add detailed progress and links to ClassroomView 2015-12-03 12:10:08 -08:00
Scott Erickson
3057df0230 Have clicking the link in InviteToClassroomModal copy it 2015-12-02 16:33:24 -08:00
Scott Erickson
629aff2807 Ignore negative numbers in purchase courses view 2015-12-02 16:10:57 -08:00
Scott Erickson
90ac6baa67 Fix course instance generation for classrooms 2015-12-02 16:07:54 -08:00
Scott Erickson
ac36c0146f Quick fix for StudentLoginModal error when username or password is not included 2015-12-02 14:19:46 -08:00
Scott Erickson
c0b979a572 Migrate join classroom url to /courses from /courses/students 2015-12-02 12:05:54 -08:00
Scott Erickson
7f2ddba089 Add remove student modal to ClassroomView 2015-12-02 11:56:38 -08:00
Nick Winter
a0e5126ab7 Prompt for school name on course completion 2015-12-02 10:59:55 -08:00
Nick Winter
0d65d73024 Finish merging master into courses-vhoc 2015-12-02 10:10:50 -08:00
Nick Winter
c77e1c0fa2 Add course complete visual state for student CourseDetailsView
Also including a few misc tweaks to CourseDetailsView and the end-of-course HeroVictoryModal state.
2015-12-02 09:52:52 -08:00
Nick Winter
cccf61e2e8 Remove a log 2015-12-01 17:38:52 -08:00
Nick Winter
3728b2dc4e Added completion notice to course details 2015-12-01 17:32:32 -08:00
Matt Lott
56dadbf35a Hide course details progress from anonymous 2015-12-01 17:32:32 -08:00
Nick Winter
26e321d9e7 Add schoolName field to StudentSignupModal 2015-12-01 17:32:24 -08:00
Matt Lott
ea1996809c /courses/teachers add students modal 2015-12-01 13:41:45 -08:00
Scott Erickson
af136764de Add enabling users to ClassroomView 2015-12-01 15:27:12 -06:00
Scott Erickson
cbdef392c5 Add invite modal to ClassroomView 2015-12-01 15:17:21 -06:00
Nick Winter
6b1c859e91 Preserve SuperModel when navigating between course levels 2015-12-01 12:23:01 -08:00
Matt Lott
171e4f888e Update /courses/teachers
Adding edit class settings modal
Adding create new class modal
Repurposing ClassroomSettingsModal for create new class too.
2015-11-30 16:20:24 -08:00
Scott Erickson
5e733d1517 Add ActivateLicensesModal to ClassroomView 2015-11-30 16:59:22 -05:00
Scott Erickson
0c45e3f96c Add ClassroomView, incomplete 2015-11-30 14:14:27 -05:00
Matt Lott
a851b7129a 🐛Fix teacher course management null check 2015-11-30 10:41:57 -08:00
Scott Erickson
d255802e38 Set up /courses for individuals without any course instances 2015-11-29 18:41:57 -05:00
Scott Erickson
11e9a40645 Finish hooking up ChangeCourseLanguageModal into /courses 2015-11-29 18:25:57 -05:00
Scott Erickson
8662fb057f Fix /courses when not joining 2015-11-29 18:20:38 -05:00