Commit graph

244 commits

Author SHA1 Message Date
Rob
c08d426c6b Use cloudflare for analytics so we get the correct SSL cert. 2016-05-31 19:56:37 -07:00
Scott Erickson
d36908f8c1 Grant admins access to teacher and student only pages 2016-05-31 15:09:26 -07:00
Nick Winter
5ff1c4b700 Fix #3427: allow language-specific images in Markdown articles 2016-05-31 10:48:23 -07:00
Matt Lott
9ce4ac51f0 Role-based hard feature blocks 2016-05-27 10:40:54 -07:00
Matt Lott
e218af8418 Terminology change: enrollments/credits => licenses
Closes #3676
2016-05-25 09:27:47 -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
Nick Winter
8fce97aad3 Fully remove Clojure and Io. Use new Aether 0.5.0. 2016-05-24 12:00:04 -07:00
Josh Callebaut
a5cad6f986 Utilize debounce, clean up event logic, remove unused CourseGearView 2016-05-18 12:50:51 -07:00
Josh Callebaut
30c879ddc0 Fix bug with Solution Problem View's problem count; add start of Course Gear View 2016-05-18 12:50:50 -07:00
Josh Callebaut
443bbae5db Improves level/campaign fetching for the solution problems view, and switches the names of the files 2016-05-18 12:50:49 -07:00
Josh Callebaut
0436f18279 Migrates Artisan helpers to their own directory and begins implementation of level tasks view 2016-05-18 12:50: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
Nick Winter
1c8ba6cf40 Add /SEEN URLs used in magazine ad 2016-05-17 10:50:25 -07:00
duybkict
322fd2d853 fix isProduction logic 2016-05-17 09:33:00 +07:00
Matt Lott
9ee8e04514 Redirect /hoc to match /?hour_of_code=true behavior
Both go directly to /play now
2016-05-16 14:50:34 -07:00
Matt Lott
8bc9cd5ee6 Admin teacher demo requests page
Incoming rates table
Student counts table
2016-05-11 11:52:32 -07:00
Nick Winter
747c5f29f7 Finally figured out how to use i18next interpolation correctly; using it on level counts in SubscribeModal 2016-04-28 10:07:47 -07:00
Scott Erickson
675e3290ac Lock course content to classrooms 2016-04-27 09:58:04 -07:00
Josh Callebaut
c4652d82e2 Implements the SPADE logger into the SpellView
* Updates spade.js vendor file, adds a sublime-project for developers to use
* Moves server logic away from handlers
* Moves session update logic to middleware, sets up server schema to autorender IDs as ObjectIDs
* Modernizes the supermodel loading scheme and switches from constructor to initalize
2016-04-26 09:56:30 -07:00
Scott Erickson
a452f1ce47 Update teacher trial request views, some related bug fixes
* Tweak wording, options
* Instead of storing changes in local storage, warn when users may lose changes by navigating away
* Fix CreateTeacherAccountView so that if you connect to an existing account, the redirect is triggered
* Fix users.coffee weird race condition
2016-04-20 16:30:11 -07:00
Rob
e64d585841 Add extra information when a school is autocompleted. 2016-04-18 22:54:43 -07:00
Nick Winter
a7114a2719 Implement headless verifier; fix headless client 2016-04-12 19:34:05 -07:00
Scott Erickson
eba4afec17 Merge remote-tracking branch 'origin/master' 2016-04-05 09:43:46 -07:00
Scott Erickson
932238bb82 Fix /teachers redirect 2016-04-05 09:34:45 -07:00
Matt Lott
4b1486159c Change teacher account convert terminology to update 2016-04-05 09:16:22 -07:00
phoenixeliot
beb53d9f2f Various fixes and changes to teacher-accounts and teacher-dashboard 2016-04-04 15:42:29 -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
Rob Blanckaert
9da65cdcff New homepage variations. 2016-03-25 17:09:58 -07:00
Scott Erickson
e6593dea8d Refactor FacebookHandler and GPlusHandler
* Move api loading to FacebookHandler
* Use success callbacks
* Use same, properly named events
* Use same functions and property names
* Refactor related social button, out of use rendering system
* Remove the now unnecessary form split from CreateAccountModal
2016-03-18 11:03:55 -07:00
Scott Erickson
1c629a3181 Fix options in forms.objectToForm 2016-03-18 11:03:55 -07:00
Scott Erickson
46afe40637 Fix forms.scrollToFirstError when there is no error to scroll to 2016-03-18 11:03:54 -07:00
Scott Erickson
2e96a387e9 Add User.logout to client 2016-03-18 11:03:54 -07:00
Scott Erickson
ebc98f988f Refactor CreateAccountModal out of AuthModal, add class code to signup 2016-03-10 10:52:11 -08:00
Matt Lott
bce9862be2 Update request demo Ux
Renaming request quote to request demo
Changing create class wording to set up class
Showing different UI if teacher or not
Adding gameplay screenshots to homepage
Update request demo email

Closes #3449
2016-03-08 09:30:50 -08:00
Nick Winter
6d246129de Make languages fall sideways if needed (ex: nl-BE using nl-NL instead of en) 2016-03-07 08:13:49 -08:00
Scott Erickson
a2249f8df1 Add return-to-admin (turn off espionage mode) 2016-03-04 10:43:17 -08:00
Scott Erickson
47f3223be1 Fix and improve new errors system
* Fix error property name -> errorName
* showNotyError can handle Backbone error callbacks where jqxhr is second param
* showNotyError correctly shows JSON error message or name
* Add timeout to showNotyError
2016-03-03 13:59:17 -08:00
Matt Lott
9e8e865049 Remove old homepage
Turning off homepage a/b testing for now, but leaving the plumbing in
because we’ll be iterating on that shortly.
2016-03-01 09:48:53 -08:00
Scott Erickson
3f8652d9a9 Add showNotyNetworkError to app/core/errors 2016-02-25 15:50:53 -08:00
Scott Erickson
bd20536046 Add validateEmail to forms 2016-02-25 15:28:04 -08:00
Scott Erickson
946436083c Add updateSelects to forms
So that in forms you don't have to find the equality for each option. Instead,
just set the select value and, afterRender, call updateSelects, the options that
matches the value will become selected.
2016-02-25 15:14:48 -08:00
phoenixeliot
f1b046b50e Refactor Request Quote page to flat-style 2016-02-24 16:23:21 -08:00
Matt Lott
cac9a7463f Dashboard monthly revenue counts, and tabs 2016-02-20 17:27:45 -08:00
Scott Erickson
3390663486 Fix GuideView to use session.codeLanguage by default 2016-02-19 10:55:42 -08:00
adeeb1
e71a4b71dc Fixed GitHub authentication - #1764 2016-02-19 10:07:05 -08:00
Scott Erickson
cf030146e8 Restrict request quote emails
* If logged in => repopulate and lock email (and name if available)
* If logged out => disallow using an email for an existing account and display a validation message + login link
2016-02-17 11:51:26 -08:00
Scott Erickson
0905a378a0 Fix recent scrolling changes for Firefox 2016-02-17 11:21:43 -08:00
Scott Erickson
53eea0c236 Fix navigation from one page to the next
* Reset flying focus so it doesn't lengthen the page
* Scroll to the top of the page when switching views
2016-02-17 11:05:52 -08:00