This heavily refactors SpellView and adds infrastructure for receiving and reporting Errors raised by the web-dev iFrame. The web-dev error system, the Aether error system, and the Ace html-worker avoid disturbing each others' errors/annotations (though currently Aether+web-dev errors won't coexist), and they clear/update their own asynchronously.
Show web-dev iFrame errors as Ace annotations
Add functional error banners (with poor messages)
Improve error banners, don't allow duplicate Problems
Refactor setAnnotations override
Convert all constructor calls for Problems
Add comments, clean up
Clean up
Don't clear things unnecessarily
Clean up error message sending from iFrame
Add web-dev:error schema
Clarify error message attributes
Refactor displaying AetherProblems
Refactor displaying user problem banners
Refactor onWebDevError
Set ace styles on updating @problems
Clean up, fix off-by-1 error
Add comment
Show stale web-dev errors differently
Some web-dev errors are generated by "stale" code — code that's still running in the iFrame but doesn't have the player's recent changes.
This shows those errors differently than if they weren't "stale", and suggests they re-run their code.
Hook up web-dev event schema
Destroy ignored duplicate problems
Functionalize a bit of stuff
Fix ProblemAlertView never loading
In TeacherClassView, when a teacher assigns a paid course to any unenrolled
student, the view automatically enrolls those students, rather than requiring
the teacher to enroll those students manually first. Update copy throughout.
Also add back (smaller) padding to progress dots in TeacherClassView.
Improve image gallery
Add How to Copy/Paste section
Fix modal close button
Add specs for image gallery
Fix up i18n
Fix render resetting scroll
Address code review feedback
Ensure afterRender is called
Add 1st game-dev and web-dev campaigns to world selector
Take player back out to world selector after completing campaigns up through forest
Closes#3828
School now optional
N/A placeholder on district field and don't save it if it's n/a
Updating required field error UI a bit, and there is some larger
refactoring needed here later.
NCES phone number for district only entries will currently be a child
school, will fix later.
Closes#3818