Repository navigation
·
315 commits
to master
since this release
Major update to RosterFlow (ThinkWave Organizer)
Features
- Ad-hoc List mode: paste arbitrary student names (one per line) to form a temporary roster for the current session. Works with score paste, CSV preview/download, and autofill code. Does not modify existing subjects.
- IELTS → GPA conversion (1–9 incl. .5): segment-wise linear mapping with anchors 6.5→90, 8.0→97, 8.5→99, 9.0→100; applied non-destructively during organize/export/autofill.
- Recalibrated TOEFL (Speaking 0–30) → GPA conversion: anchors ≤7→55, 16→80, 21→90, 25→95, ≥29→100; non-destructive.
- Clipboard fallback: if navigator.clipboard.writeText fails, we toast a message and print the autofill code to the Console for manual copy.
Stability & matching
- Name matching remains key-set based (case/spacing/punctuation/quotes/diacritics insensitive). Skips empty keys to avoid “catch-all” matches.
UX changes
- “Use Cached” removed; JSON import still persists to localStorage with “Clear Cache” available.
- Ad-hoc “Clear” now restores the last selected subject when available; otherwise returns to a clean empty state to avoid the previous “visible names but organize() blocked” limbo.
- Optional “Paste Roster Order” UI left hidden by CSS but code path remains for easy re-enable.
Code notes
- organize(copyToClipboard, scoreConverter?) now accepts a converter function (e.g., toGpa, ieltsToGpa) and does not mutate the textarea content.
- Safer clipboard flow with console fallback; minor guards and tidy() usage retained.
Files touched
- /thinkwave/index.html (HTML, CSS, JS in one file)