summaryrefslogtreecommitdiff
path: root/wsm.go (follow)
Commit message (Expand)AuthorAgeFilesLines
* *.go: Use sync.Map instead of map[int]*courseT for coursesRunxi Yu8 days1-17/+36
* {courses,wsc,wsm}.go: map[courseGroupT](bool->struct{})Runxi Yu8 days1-4/+4
* *.go: Further wrap errorsRunxi Yu9 days1-11/+24
* {courses,wsm,wsp}.go: Make course.Selected atomicRunxi Yu10 days1-1/+7
* {config,wsm}.go, cca.scfg.example: Configurable immediate propagationRunxi Yu11 days1-6/+9
* *.go: Limit to approximately 80 characters per lineRunxi Yu10 days1-19/+84
* wsm.go: "R" on multiple choices in group rather than closing connectionRunxi Yu11 days1-4/+5
* wsm.go: Check course group constraint first when choosingRunxi Yu11 days1-13/+15
* {courses,wsc,wsm,wsp}.go: Send course number immediately on user interactionRunxi Yu11 days1-3/+16
* *: Overhaul structure again and embed everythingRunxi Yu11 days1-0/+224
* *.go: Move to backendRunxi Yu12 days1-224/+0
* {courses,wsm}.go: Use in-memory structure to fetch cgroup, not SQLRunxi Yu12 days1-9/+12
* wsm.go: Omit comparison to bool constantRunxi Yu12 days1-1/+1
* wsm.go: Report error when course doesn't existRunxi Yu12 days1-0/+8
* {courses,sem,ws,wsm}.go: Second step towards an efficient state propagatorRunxi Yu12 days1-1/+1
* {courses,wsm}.go: Add getCourseByIDRunxi Yu12 days1-10/+2
* {courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagateRunxi Yu12 days1-24/+4
* {courses,ws,wsm}.go: Update userCourseGroups during choose/unchooseRunxi Yu12 days1-2/+30
* {ws,wsm}.go: Handle context cancellationsRunxi Yu14 days1-0/+20
* {main,ws,wsm}.go: Attempt to cancel old sessionsRunxi Yu14 days1-15/+15
* wsm.go, main.js: Use M for number, N for deselectRunxi Yu2024-10-021-3/+3
* {auth,db,wsm}.go: Make 23505 (uniqueness violation) a constantRunxi Yu2024-10-011-1/+1
* wsm.go, main.js: Display the user's selected courses on first runv0.1.0Runxi Yu2024-10-011-2/+18
* {ws,wsm}.go: Split message handlers into their own functionsRunxi Yu2024-10-011-0/+177