Commit graph

241 commits

Author SHA1 Message Date
phoenixeliot
83557910b2 Fix CSV export and projects tab 2016-07-29 14:37:45 -07:00
Nick Winter
82c4367308 Avoid \n escape character in i18n strings for tooling 2016-07-28 13:47:23 -07:00
Nick Winter
d77625bc77 Game dev levels (#3810)
* Tweak API doc behavior and styling

* Instead of moving to the left during active dialogues, just move to the top
* Allow pointer events
* Adjust close button
* Re-enable pinning API docs for game-dev and web-dev levels

* Make sidebar in PlayGameDevLevelView stretch, better layout columns

* Set up content of PlayGameDevLevelView sidebar to scroll

* Add rest of PlayGameDevLevelView sidebar content, rework what loading looks like

* Finish PlayGameDevLevelView

* Add share area below
* Cover the brown background, paint it gray

* Tweak PlayGameDevLevelView

* Have progress bar show everything
* Fix Surface resize handling

* Fix PlayGameDevLevelView resizing incorrectly when playing

* Add GameDevVictoryModal to PlayGameDevLevelView

* Don't show missing-doctype annotation in Ace

* Hook up GameDevVictoryModal copy button

* Fix onChangeAnnotation runtime error

* Fix onLevelLoaded runtime error

* Have CourseVictoryModal link to /courses when course is done

* Trim, update CourseDetailsView

* Remove last vestiges of teacherMode
* Remove giant navigation buttons at top
* Quick switch to flat style

* Add analytics for game-dev

* Update Analytics events for gamedev

* Prefix event names with context
* Send to Mixpanel
* Include more properties

* Mostly set up indefinite play and autocast for game-dev levels

* Set up cast buttons and shortcut for game-dev

* Add rudimentary instructions when students play game-dev levels

* Couple tweaks

* fix a bit of code that expects frames to always stick around
* have PlayGameDevLevelView render a couple frames on load

* API Docs use 'game' instead of 'hero'

* Move tags to head without combining

* Add HTML comment-start string

Fixes missing entry point arrows

* Fix some whitespace
2016-07-28 13:39:58 -07:00
phoenixeliot
f1f020a50d Use course.releasePhase instead of .adminOnly
Remove old comment
2016-07-25 11:29:30 -07:00
Scott Erickson
b1c69b686c Add admin button to update course content for classrooms 2016-07-21 15:16:17 -07:00
phoenixeliot
b1277dc95f Merge branch 'game-dev-levels' 2016-07-21 10:14:22 -07:00
Matt Lott
01a8312617 🐛Classroom last played string null level check 2016-07-19 10:10:48 -07:00
phoenixeliot
bb6262483f Allow username-only signup for classroom users
Address some code review feedback

Correct error code in test

Don't try to send emails to empty addresses

Add tests for subscriptions

Add tests for Next Steps email

Fix specs

Add reason for disabled test
2016-07-18 10:41:17 -07:00
Nick Winter
f94cc2ec1f Fix CS1, CS2, GD1, WD2, CS3, etc. labeling in TeacherClassesView, too 2016-07-17 01:12:58 -07:00
Nick Winter
6e65171a83 i18n, comments, misc cleanup 2016-07-17 00:53:17 -07:00
Nick Winter
dc6a1de9fa Ordering/labeling courses: CS1, CS2, GD1, WD1, CS3, etc 2016-07-16 00:33:10 -07:00
Nick Winter
b64bcd9f02 Use shareable false/true/'project' for different levels of shareability 2016-07-15 23:26:43 -07:00
Nick Winter
5d26b03918 Add buttons to view game/web-dev levels to courses views 2016-07-15 21:57:04 -07:00
Nick Winter
5f95a4d158 Play game-dev levels without API restrictions. Show game button in CourseDetailsView only when appropriate. 2016-07-15 20:47:09 -07:00
Scott Erickson
0570644943 Set up a bunch of game dev, web dev playing logic 2016-07-15 16:57:39 -07:00
Nick Winter
c0a70cb2ab Refactor level type checks for easy greppability (level.isType) 2016-07-14 08:58:43 -07:00
Nick Winter
87ed53b24b Merge branch 'master' into web-dev-levels 2016-07-14 08:26:27 -07:00
Scott Erickson
fb9998b15e Add temp buttons to CourseDetailsView for testing PlayGameDevLevelView 2016-07-13 16:05:41 -07:00
phoenixeliot
6fb4cbd9ac Remember checkbox state in TeacherClassView 2016-07-08 16:24:33 -07:00
phoenixeliot
21cd890bfa Use translated ClassCode error message 2016-07-07 16:03:07 -07:00
Scott Erickson
af9f7201d0 Finish new CreateAccountModal 2016-07-07 15:56:41 -07:00
phoenixeliot
5e6c9709f9 Display better error when invalid class code is entered 2016-07-07 15:32:11 -07:00
Matt Lott
d72e4eb750 Practice levels Ux and next level algorithm
Update classroom and gameplay Ux to surface practice levels as 3a, 3b,
etc.
Update next level logic to leverage practice levels based on per level
completion playtime thresholds.
Patrol buster and patrol buster A are live for testing.
Fix a few classroom Ux progress hover bubble info bugs.

Closes #3767
2016-06-27 14:05:42 -07:00
Matt Lott
4622337d82 Update licenses needed form
Ensure the needed licenses are in the subject resulting email.
2016-06-17 15:40:07 -07:00
phoenixeliot
e841334c86 Fix join class modal (temporary hack) 2016-06-15 13:28:03 -07:00
phoenixeliot
749601c9d8 Don't cache classrooms (fetched by memberID) 2016-06-14 14:27:57 -07:00
phoenixeliot
ccf5b449e3 Use classroom.courses.levels instead of campaign.levels 2016-06-13 14:47:10 -07:00
Matt Lott
55bd49fde0 Add course playtimes to student progress CSV 2016-06-09 14:44:47 -07:00
Matt Lott
9dbcf27e11 Add classroom Mixpanel logging
Closes #3720
2016-06-09 10:46:26 -07:00
Scott Erickson
69f3ee3a5b Allow username login, tear out a bunch of related stuff in change
* Switch from auth.loginUser to User.loginPasswordUser with Promise
* Remove a cascade of unused views that were using auth.loginUser: StudentLogInModal, StudentSignupModal, HourOfCodeView
* Also remove auth.createUser
2016-06-08 13:55:19 -07:00
Scott Erickson
53a7510c46 Remove logs 2016-06-06 14:30:58 -07:00
Scott Erickson
891d0fe12f Fix TeacherClassView sometimes not loading
This was a race condition where the view would trigger a render
before courses loaded, and the template required them when it had
some of its other resources.
2016-06-06 13:55:37 -07:00
phoenixeliot
870ae9a8a1 Add hero selector for courses mode
Use selected hero in Course mode play

Show selected hero on Courses (in progress)

Add hero select modal

Use short names, only show warriors

Use box-shadow instead of borders

Add tests for HeroSelectModal

Refactor modal opening test

Address code review feedback
2016-06-03 13:40:41 -07:00
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