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
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.
Fix typo
Fix race condition with loading next level
Return an empty object for next level instead of an error;
Supermodel has a race condition when some of the models fail to load,
when we override an error response as "success".
Fix next level spec
Remove comment per Scott's request
* 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
* 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
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
As JavaScript is the only language supported by the beautifier, and [CodeCombat is in the process of converting things to while (true)](https://github.com/codecombat/codecombat/issues/3510#issuecomment-201965310), I guess adding this quick hack to the view's code should suffice for now. Hopefully, the non-standard `loop` construct will be removed from other languages before they receive beautifier support.
If this doesn't seem good, I can move this hack to `aether.beautify`, where it is possible to perform this substitution in a language-aware way (i.e. inside Aether's JavaScript implementation's [`beautify` method](418ccf2414/src/languages/javascript.coffee (L137))). Seeing as the `loop` construct is specific to CodeCombat, I'm not sure if that would be a good idea. Passing an options object with a flag to support the `loop` construct seems a bit overkill.
Let me know what works best for you.
This is due to "flying-focus" taking up space at the bottom of the page. This solution is a bandaid. Ideally we have view-swapping logic that contains this type of thing and we just swap out views using one function.
* 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
Display leaderboard ads on campaign and play views.
Do no show ads in classroom, picoCTF, or to teachers.
Add no ads blurb to subscription features matrix.
Scale game UI for ads on short screens.
Closes#3491
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
* 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
* 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
* Make work there are multiple network requests and only one fails
* Test for i18n attributes instead of English translations so Travis works
* Various PR changes
The Level Editor level list now highlights the row in which you are the
person who last saved the level. The level list now also displays
glyphicons to indicate watched/unwatched levels.