Commit graph

3650 commits

Author SHA1 Message Date
phoenixeliot
c3ed217964 Fix i18n render bug on SimulateTabView 2016-07-14 16:20:15 -07:00
Scott Erickson
61caf3dcd3 Merge branch 'master' into game-dev-levels 2016-07-14 15:50:04 -07:00
Scott Erickson
dd88f39761 Add shareable property to levels 2016-07-14 15:48:42 -07:00
Scott Erickson
0cb92582f4 Add destroy method 2016-07-14 15:13:02 -07:00
Nick Winter
16b10612b6 Stub WebSurface showing for web-dev levels 2016-07-14 12:34:22 -07:00
phoenixeliot
5e10e34825 Add spy buttons to admin page search results 2016-07-14 11:27:18 -07:00
Nick Winter
c5c831c211 Remove real-time multiplayer prototype code 2016-07-14 10:26:09 -07:00
Scott Erickson
2284a9f495 Remove semi-colons from AnalyticsView to satisfy linter 2016-07-14 10:10:22 -07:00
Nick Winter
349ab24da7 First pass at adding 'web-dev' level type 2016-07-14 09:38:45 -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
Scott Erickson
b982f3fd52 Fix Camera bounds by adding ScriptManager 2016-07-13 16:05:41 -07:00
Scott Erickson
4a51045a41 Fix PlayGameDevLevelView when playing the first time, get frames streaming
For whatever reason, the Angel does not normally allow streaming on the first world.
I hacked around it, but would be good to figure out why that restriction is there
in the first place.
2016-07-13 16:05:41 -07:00
Scott Erickson
c9986ee05a Tweak Promises in PlayGameDevLevelView 2016-07-13 16:05:41 -07:00
Scott Erickson
d7a2219b16 Refactor PlayGameDevLevelView to use promises 2016-07-13 13:28:54 -07:00
Scott Erickson
1b7ac76b9f Add loading and playing to PlayGameDevLevelView 2016-07-13 11:43:25 -07:00
Nick Winter
872e83e9b7 Don't use course hero in verifier / level editor for type: 'course' level 2016-07-13 10:04:43 -07:00
Scott Erickson
3a0695f59c Add some basic info to PlayGameDevLevelView 2016-07-12 15:12:11 -07:00
Scott Erickson
25e348c5ad Initial, basically working PlayGameDevLevelView 2016-07-12 14:07:10 -07:00
Scott Erickson
0b1e1ddcb4 Merge branch 'game-dev-levels' 2016-07-12 11:00:29 -07:00
Nick Winter
cd47a9d4ea Fix inconsistent verifier results when run with multiple levels batched 2016-07-11 16:59:00 -07:00
Matt Lott
f8a67ace0e Remove items from course victory dialog 2016-07-11 16:01:34 -07:00
Matt Lott
16c9f10043 🐛Fix course victory dialog level progress counts
Use classroom versioned levels instead of latest course levels.
Use current level session instead of stale one.
2016-07-11 13:28:52 -07:00
Nick Winter
a5a955ca6b Always show indent guides 2016-07-11 08:35:44 -07:00
David Liu
2ebef96d28 Fix birthday form validation in signup (#3787) 2016-07-11 08:34:29 -07:00
Matt Lott
9b68e91409 🐛Fix analytics dashboard coursePrepaid use 2016-07-10 17:55:07 -07:00
Matt Lott
f598e43957 Admin classroom export respects classroom versioning 2016-07-08 18:47:06 -07:00
Matt Lott
1bf3eb54dd 🐛Fix admin classroom progress export paging 2016-07-08 18:24:47 -07:00
Nick Winter
8c48e4fc14 Remove transpiledCode and screenshot from LevelSession 2016-07-08 17:04:24 -07:00
phoenixeliot
6fb4cbd9ac Remember checkbox state in TeacherClassView 2016-07-08 16:24:33 -07:00
phoenixeliot
b25782f2b6 Pass username/password from CreateAccountModal to AuthModal 2016-07-08 16:24:33 -07:00
Scott Erickson
f5c9be4831 Merge branch 'master' into game-dev-levels 2016-07-08 14:26:48 -07:00
Scott Erickson
b2bb129cbf Add realTimeInputEvents to world and gameUIState, with just mousedown events 2016-07-08 14:17:07 -07:00
Scott Erickson
10d344504a Add check to TomeView
Found a bug while playing Ogre Encampment: click the Chest before clicking past the
intro screen and the game throws an error, when `updateSpellPalette` tries to access
call `spell.getSource()` but `spell` is undefined. This check keeps the same behavior
but handles the error.
2016-07-08 13:27:42 -07:00
Scott Erickson
976015734d Update CreateAccountModal comments 2016-07-07 16:58:50 -07:00
Scott Erickson
151bf93177 Fix checkEmail to prevent duplicate checks 2016-07-07 16:55:57 -07:00
Scott Erickson
54c1361b1c Fix admin view when not an admin 2016-07-07 16:48:26 -07:00
Scott Erickson
1da82fa851 Fix #1199 2016-07-07 16:34:24 -07:00
Scott Erickson
ecde42f356 Fix catch callback 2016-07-07 16:22:08 -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
e9b7543242 Start 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
cad067fa8c 🐛Fix admin classroom progress CSV
Respect fetch paging.
2016-07-07 15:18:04 -07:00
Matt Lott
a884fbf38b Admin class progress CSV export 2016-07-07 11:07:38 -07:00
Rob
228019ac89 - Limit when this autocompletion can pop up.
- Remove some left over cruft from the text completer.
2016-07-06 13:31:46 -07:00
Rob
c7901c3237 Unbreak things when you don't have glasses. 2016-07-05 12:34:54 -07:00
Rob
9c7320e26a - Move Zatanna out of own repo and into CodeCombat
- Move snippet creation out of SpellView
- Disable text based completions.
2016-07-01 16:39:21 -07:00
Matt Lott
ba54754373 Admin classroom levels page 2016-06-30 08:29:27 -07:00
Rob
ac47928131 - Reduce size of answer code in verifier
- Assume we want to run a single level on only one core for accurate speed testing.
2016-06-29 16:18:36 -07:00
Matt Lott
63e38c82b2 Update school counts page with geoip and 10+ buckets
Placing teachers and students in unknown districts and schools if we
have geoip countries and states/regions.
Placing teachers/students in unknown schools if there are 10+ students.
2016-06-29 15:01:04 -07:00
Nick Winter
ede12ed50f Add effective simulation frames per second to verifier 2016-06-29 12:40:30 -07:00
Matt Lott
50a017b1e9 🐛Fix UK matching on school counts page
Not a huge difference in raw numbers
2016-06-28 17:18:04 -07:00
Matt Lott
d6951559fd Update school counts page
Exclude HoC users via course instances
Include teacher/students via trial requests without NCES data
2016-06-28 16:41:36 -07:00
Scott Erickson
fe1598cab2 Implement multi-select, remove click-to-navigate from level editor 2016-06-28 09:20:05 -07:00
Scott Erickson
4dda1b67dd Refactor ThangsTabView to use GameUIState for managing all Surface mouse events
Attempting to use a react-component-like system, where the Surface simply emits everything that
happens through the shared GameUIState, and the parent (in this case the ThangsTabView, but theoretically
anything that uses the surface) handles the events manually, to enforce desired behavior for that particular
context.

It's nice that all the event handling is centralized, but it's still a bit of a mess, and not thoroughly
stateful. But it's a start. This is in preparation for allowing multi-thang selection and manipulation
in the level editor.
2016-06-28 09:19:38 -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
08886460c2 Remove default licenses needed from request form 2016-06-26 14:49:09 -07:00
Matt Lott
425115ad37 Remove level type 'hero-practice', use level.practice 2016-06-25 08:38:59 -07:00
Nick Winter
69eb1dc07a Preparing for master-wizard 2016-06-24 15:01:49 -07:00
Nick Winter
a4654f613d Add two starting new heroes. Fix #2753 again for now. 2016-06-24 14:57:21 -07:00
Nick Winter
7c876401bc Do show bonus goals in course mode if you actually achieve them 2016-06-24 08:50:38 -07:00
Catsync
f1d17ebcba Don't show optional goals if playing level as type 'course' (#3758) 2016-06-24 08:32:50 -07:00
shuwn
c6fcf588f7 Update DiplomatView.coffee (#3750) 2016-06-24 15:40:50 +01:00
Matt Lott
18de9ab298 Create call tasks and opps for license requests 2016-06-23 06:12:51 -07:00
Josh Callebaut
b8bdc0c726 Merge pull request #3754 from Zerrien/campaign-treema-display
Clicking on level in treema makes the level flash
2016-06-22 15:56:54 -07:00
Josh Callebaut
e953f7fc60 Cleaner jQuery selection 2016-06-22 15:36:42 -07:00
Josh Callebaut
0ad8fddff6 Clicking on level in treema makes the level flash 2016-06-22 15:11:27 -07:00
Rob
f100e7ab52 Non-integer indentation levels are impossible. 2016-06-22 15:08:20 -07:00
Matt Lott
73698129a0 Make level practice threshold available in editor 2016-06-21 16:41:47 -07:00
Rob
bdfa6d435a Add extra options to verifier. 2016-06-21 11:48:42 -07:00
Matt Lott
df90935aba Admin school counts page 2016-06-21 09:33:06 -07:00
Matt Lott
e0170d0339 Add hero-practice level type and threshold to schema
Filtering out hero-practice levels from classrooms until the Ux
supports them.
2016-06-19 20:23:32 -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
Catsync
6901b758e6 Update estimated course times (#3738)
* Update time estimates for courses.

* Update coming soon text.
2016-06-16 12:56:43 -07:00
Scott Erickson
57def1fbeb Merge pull request #3727 from duybkict/refactor-MyMatchesTabView
#3138 #3488 refactor MyMatchesTabView
2016-06-16 10:41:17 -07:00
Scott Erickson
a4b5e92b06 Merge pull request #3726 from duybkict/refactor-SimulateTabView
#3138 #3488 refactor SimulateTabView
2016-06-16 10:34:53 -07:00
Matt Lott
6739353d8e 🐛Fix hint intro overview duplicates 2016-06-16 10:21:37 -07:00
Scott Erickson
86fc4a3846 Hints v1
Add per-level tips and tricks, available during gameplay to help unstick players.

Closes #3736
2016-06-15 16:12:41 -07:00
Scott Erickson
c8e7b79e5d Make demoEl run _.once 2016-06-15 16:09:24 -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
Matt Lott
ecb5169ca7 Add hintsB to level schema 2016-06-14 10:29:30 -07:00
Nick Winter
a96d5df78e Don't protect APIs in game-dev levels 2016-06-13 16:21:22 -07:00
phoenixeliot
ccf5b449e3 Use classroom.courses.levels instead of campaign.levels 2016-06-13 14:47:10 -07:00
Nick Winter
d2634e63ed Fix #3642: AIs using aiSource now don't need API protection (with new Aether) 2016-06-09 17:59:19 -07:00
Matt Lott
55bd49fde0 Add course playtimes to student progress CSV 2016-06-09 14:44:47 -07:00
Rob
aa7f2af700 No ads, act two. 2016-06-09 12:13:17 -07:00
Matt Lott
9dbcf27e11 Add classroom Mixpanel logging
Closes #3720
2016-06-09 10:46:26 -07:00
duybkict
0c0f075424 #3138 #3488 refactor MyMatchesTabView 2016-06-09 10:31:53 +07:00
duybkict
a4e8cafdb3 #3138 #3488 refactor SimulateTabView 2016-06-09 10:00:47 +07:00
Nick Winter
b0fcddac68 Add game-dev level type (#3725)
* Initial pass adding new game-dev level type.

* Fix a failing test with updated LevelSystem required properties

* Bring back normal Angel worker timeout times

* Fix another failing LevelSystem test since removing propertyDocumentation
2016-06-08 16:57:00 -07:00
Scott Erickson
0d5bf6b4de Merge branch 'username-login' 2016-06-08 15:48:46 -07:00
Scott Erickson
c57fd6f460 Do not set campaignIndex for levels except for course campaigns 2016-06-08 15:48: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
86699a8510 Merge pull request #3719 from duybkict/refactor-LadderTabView
#3138 #3488 refactor LadderTabView
2016-06-08 10:01:37 -07:00
Scott Erickson
2f9f062165 Merge pull request #3718 from duybkict/refactor-LadderPlayModal
#3138 #3488 refactor LadderPlayModal
2016-06-08 09:53:59 -07:00
Scott Erickson
6beae97911 Merge pull request #3717 from duybkict/refactor-ContributorClassView
#3138 refactor contributor views
2016-06-08 09:43:14 -07:00
Scott Erickson
9a36cf514e Merge pull request #3716 from duybkict/fix-3678-rebase
Fix #3678 display error on loading resources failed - rebased
2016-06-08 09:35:31 -07:00
duybkict
23d45ab947 #3138 #3488 refactor LadderTabView 2016-06-08 16:36:01 +07:00
Matt Lott
c3f1e6e04c Turn off homepage logged out a/b tests 2016-06-07 05:36:48 -07:00
duybkict
c1f1b4a048 #3138 #3488 refactor LadderPlayModal 2016-06-07 18:05:06 +07:00
duybkict
7e4573f37c #3138 refactor contributor views 2016-06-07 17:09:00 +07:00
duybkict
f439ffddc7 fix issue #3678 2016-06-07 09:42:57 +07:00
Scott Erickson
be78f4049c Fix adding inventory items to hero in level editor
Was only happening when HeroPlaceholder had HasPet component.
Presumably because the collection was loaded by HasPet, but the thang node
for the inventory node needed to populate its autocomplete array.
2016-06-06 15:35:10 -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
Scott Erickson
7a0fb967f0 Add clearer reports to client TestView 2016-06-03 16:26:03 -07:00
Rob
2ef10f58b3 Fix bug where visual indents couldn't nest. 2016-06-03 14:01: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
5e1942c0d3 Fix adding levels to campaigns 2016-06-03 13:30:56 -07:00
Scott Erickson
f6f941b13d Merge pull request #3705 from duybkict/refactor-LadderView
refactor LadderView
2016-06-03 10:21:28 -07:00
Rob
8d2df0baff Kill some console logs @poojawins 2016-06-02 20:17:52 -07:00
duybkict
e7f221813e remove constructor, handle load async process 2016-06-03 09:23:35 +07:00
duybkict
b88ca10f21 Merge branch 'master' into refactor-LadderView 2016-06-03 09:06:58 +07:00
Rob
3485abd413 Don't show indent guides for incorrect python indention. 2016-06-02 18:46:47 -07:00
phoenixeliot
ae3b8057f7 Detect URL classCode in createAccountModal 2016-06-02 12:51:05 -07:00
Matt Lott
50ee20d3ae Send teacher contact us form emails through Close.io 2016-06-02 11:13:52 -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
duybkict
a9d9a67383 refactor LadderView 2016-06-02 15:44:19 +07:00
duybkict
215ff1faaf refactor MainLadderView 2016-06-02 14:54:00 +07:00
Rob
c20ee729ca Merge branch 'bug-smash' 2016-06-01 16:45:01 -07:00
Josh Callebaut
13b69d15f2 Display auto-complete box even after adding a new line 2016-05-31 16:50:22 -07:00
Scott Erickson
dfd4602553 AuthModal handles empty fields, fix #3587 2016-05-31 15:54:28 -07:00
Scott Erickson
634cc1fb15 Fix anchor links on /about 2016-05-31 15:37:30 -07:00
Nick Winter
e7f79ab721 Several fixes for level editor update speed--should be faster for making changes on complex levels 2016-05-31 15:32:32 -07:00
Scott Erickson
d4c5d418ff Improve CampaignEditor saving, particularly level order
* Do not cache campaign
* Instead have an on leave message if there are unsaved changes
* Propagate campaignIndex values to campaign and levels so that they signal a change in order

 The save modal seems to have a lot of issues with identifying what models have
 changed. I tried using different methods, but none were consistent. Moving on
 to other bugs.
2016-05-31 15:09:26 -07:00
Scott Erickson
249255e4dc AuthModal and CreateAccountModal load gplus and facebook on init
On Windows/Chrome, the first click of the g+ button shows a popup
blocked warning, because the action is deferred while loading the
gplus library. Have the modals load the library first, and enable the
buttons when they're ready.
2016-05-31 12:39:30 -07:00
phoenixeliot
f067337635 Fix classroom student count 2016-05-31 11:22:42 -07:00
Nick Winter
da90ab980e Fix some failing tests 2016-05-31 10:59:06 -07:00
Matt Lott
fd8f65cadc Help button should open "Overview" (Guide) by default 2016-05-31 10:37:30 -07:00
Matt Lott
ffcd89d327 Turn off video tutorials for course levels 2016-05-31 10:12:22 -07:00
duybkict
4f369a1e2f #3138 #3488 refactor UserView, MainUserView 2016-05-31 09:56:55 -07:00
Nick Winter
4160058505 Make skipping real-time playback jump to final frame. Fix #2827. 2016-05-31 08:50:17 -07:00
Nick Winter
96e6e0de9e Fix #2889: show incremental gem and xp award for replayable levels, not total 2016-05-30 17:33:15 -07:00
Nick Winter
88a07b5c09 Destroy vim mode option 2016-05-30 17:08:11 -07:00
Nick Winter
065069cfdd Make CourseVictoryModal respect Markdown in next level description 2016-05-30 16:26:55 -07:00
Nick Winter
1deddc6fd2 Verifier now runs all solutions and lets you choose which campaigns and languages to skip. 2016-05-30 13:51:09 -07:00
Matt Lott
d0d3d838ed Better page titles
Also ditching non-production constructor page titles
2016-05-27 09:40:46 -07:00
Matt Lott
4bb3ac1f0a Replace Anoner with Anonymous
Closes #3686
2016-05-26 16:54:24 -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
Scott Erickson
8f7e4e2278 Add hints to level schema, I18N editor 2016-05-26 14:51:28 -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