aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* wsh.go: Remove old TODO about limiting connections per userRunxi Yu10 days1-7/+0
| | | | This has been implemented quite a while ago.
* wsh.go: Remove TODO about checking pgErrRunxi Yu10 days1-1/+0
| | | | | | | If the UUIDs actually collide, we're doomed anyway. Okay... this isn't the best way to write software that must be ultra-reliable, but this doesn't need to be ultra-reliable.
* export.go: Remove unnecessary TODORunxi Yu10 days1-1/+1
|
* auth.go: Remove access token expiration fields and related TODORunxi Yu10 days1-14/+5
| | | | | We're only using the token immediately after it is issued, so it's a bit unnecessary.
* auth.go: Remove TODO about implementing nonce checksRunxi Yu10 days1-7/+0
| | | | It's the OAuth provider that's responsible for checking this nonce.
* auth.go: Remove TODO about using ON CONFLICTRunxi Yu10 days1-7/+0
| | | | | | I think using the pgErr method actually makes the logic easier to follow especially since I'm not updating the "confirmed" field when UPDATEing but it's being initialized to false during INSERT.
* Replace tcourse.sql with an example importable CSVRunxi Yu10 days3-14/+15
|
* Validate course group and course type when importing from CSVRunxi Yu10 days1-0/+24
|
* Allow staff to upload a CSV containing coursesRunxi Yu10 days6-39/+432
| | | | Implements: https://todo.sr.ht/~runxiyu/cca/2
* export.go: Remove unnecessary fields from user queryRunxi Yu11 days1-3/+3
|
* style.css: Fix file selector buttonsRunxi Yu11 days1-1/+7
|
* {wsp,wsx}.go: Move comment about RFC1459-like message formatRunxi Yu11 days2-23/+23
|
* auth.go, schema.sql: Add "confirmed" field to usersRunxi Yu11 days2-2/+3
|
* index.go, student_disabled.html: Repsect state = 0Runxi Yu11 days3-17/+98
| | | | References: https://todo.sr.ht/~runxiyu/cca/13
* *.go, schema.sql, staff.html: Implement state settingRunxi Yu11 days7-3/+187
| | | | References: https://todo.sr.ht/~runxiyu/cca/13
* *.go, tmpl/staff.html: Allow staff to export choicesRunxi Yu11 days6-2/+250
| | | | Implements: https://todo.sr.ht/~runxiyu/cca/3
* staff.html: Update from students.html and only display link to /exportRunxi Yu11 days1-112/+5
|
* docs/fields.txt: RemoveRunxi Yu11 days1-27/+0
|
* {courses,wsc}.go: Atomic 64-bit alignmentRunxi Yu11 days2-4/+7
|
* wsc.go: Use sync.Map for cancelPool to reduce lock contentionRunxi Yu11 days1-21/+10
|
* student.html: Use separate columns for Selected and MaxRunxi Yu11 days1-2/+9
|
* eslint.sh: Call eslint directly rather than through npxRunxi Yu12 days1-1/+1
|
* *.go: Update commentsRunxi Yu12 days8-30/+17
|
* bench.go: Update number of coursesRunxi Yu12 days1-1/+1
|
* student.js: Don't N then Y the same course on selectv0.1.8Runxi Yu12 days1-1/+1
|
* student.{html,js}: Deselect courses in the same group when selectingRunxi Yu12 days2-5/+7
|
* student.html: Slightly better looks around tickboxRunxi Yu12 days1-8/+10
|
* tcourse.sql: Add more example CCAsRunxi Yu12 days1-5/+13
|
* {courses,index}.go, student.html, style.css: Group by course groupRunxi Yu12 days4-20/+34
|
* student.html: Simplify JSRunxi Yu12 days1-2/+1
|
* index.go, {login,student}.html: Use structs rather than maps for tmplRunxi Yu12 days3-22/+28
|
* *.go: Use sync.Map instead of map[int]*courseT for coursesRunxi Yu12 days6-73/+115
| | | | I'm not sure whether this is actually better than locking.
* {courses,wsc,wsp}.go: Usems should be sync.MapRunxi Yu12 days3-19/+12
| | | | | This is a classic few-reads, many-writes situation where a sync.Map would lead to substantially less lock contention.
* {courses,wsc,wsm}.go: map[courseGroupT](bool->struct{})Runxi Yu12 days3-8/+8
| | | | | This makes it use slightly less memory. Approximately courseGroupT bits per connection!
* style.css: Work around Firefox bug 217769Runxi Yu12 days1-0/+8
| | | | | | | Firefox eats the left, bottom, and right borders when tbody is empty. This is a bug known for 21 years (that was Firefox 37 or something). References: https://bugzilla.mozilla.org/show_bug.cgi?id=217769
* *.go: Further wrap errorsRunxi Yu13 days6-24/+52
|
* err.go: Create, and unify some error definitionsRunxi Yu13 days5-38/+55
|
* Revert "latexify-source.sh: \subsection{\texttt{%s}}"Runxi Yu13 days1-11/+11
| | | | This reverts commit a9916b3a7df327836f18011edcbf8cc218260f89.
* student.js: Use "let" rather than "var"v0.1.7Runxi Yu13 days1-2/+2
|
* latexify-source.sh: Don't set -xRunxi Yu13 days1-1/+1
|
* cca.scfg.example: usem_delay_shift_bits should default to 5Runxi Yu13 days1-1/+1
|
* Reapply "{config,wsc}.go, cca.scfg.example: Dynamic course update delay"Runxi Yu13 days3-17/+34
| | | | This reverts commit 831040c3d7dbc116a25848786bc5ab83fef6149b.
* Revert "{config,wsc}.go, cca.scfg.example: Dynamic course update delay"Runxi Yu13 days3-34/+17
| | | | This reverts commit de3f0b9e7003e4521f5ea866134e77ff859ab99b.
* {courses,wsm,wsp}.go: Make course.Selected atomicRunxi Yu13 days3-12/+15
|
* wsc.go: Fix race condition with usemCount atomicsRunxi Yu13 days1-1/+6
| | | | Atomics must be read atomically via atomic.LoadT
* postgres_run.sh: Remove as unnecessaryRunxi Yu13 days1-3/+0
|
* Makefile, main.go: Use cover page as iadocs/index.htmlRunxi Yu2024-10-062-3/+9
|
* {config,wsm}.go, cca.scfg.example: Configurable immediate propagationRunxi Yu2024-10-063-10/+28
|
* iadocs: ROT table should be HTMLRunxi Yu14 days4-23/+250
|
* main.go: -config -> -cRunxi Yu2024-10-061-1/+1
|