Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | ws.go: Initial attempt to manage chanPool | Runxi Yu | 2024-09-23 | 1 | -13/+22 | |
| | ||||||
* | auth.go, ws.go: Update comments | Runxi Yu | 2024-09-23 | 2 | -7/+10 | |
| | ||||||
* | Bump dependencies | Runxi Yu | 2024-09-23 | 2 | -3/+3 | |
| | ||||||
* | Bump dependencies | Runxi Yu | 2024-09-22 | 2 | -6/+6 | |
| | ||||||
* | index.html: Add box styling to the WebSocket warning | Runxi Yu | 2024-09-17 | 1 | -1/+1 | |
| | ||||||
* | ws.go, main.js, index.html: Better WS documentation and structure | Runxi Yu | 2024-09-16 | 4 | -85/+156 | |
| | ||||||
* | ws.go: Fix previous commit's type inconsistencies | Runxi Yu | 2024-09-13 | 1 | -4/+5 | |
| | ||||||
* | ws.go: Very basic channels | Runxi Yu | 2024-09-13 | 2 | -5/+23 | |
| | ||||||
* | go.mod: Bump dependencies | Runxi Yu | 2024-09-12 | 2 | -21/+21 | |
| | ||||||
* | tcourse.sql: Use real-ish example data | Runxi Yu | 2024-09-12 | 1 | -6/+5 | |
| | ||||||
* | ws.go: Clarrify handleWs's purpose | Runxi Yu | 2024-09-12 | 1 | -1/+2 | |
| | ||||||
* | ws.go: Move the login logic to handleWs from handleConn | Runxi Yu | 2024-09-12 | 1 | -19/+38 | |
| | ||||||
* | ws.go: gofmt | Runxi Yu | 2024-09-12 | 1 | -3/+2 | |
| | ||||||
* | ws.go: Use channels to handle incoming messages | Runxi Yu | 2024-09-12 | 1 | -11/+30 | |
| | ||||||
* | ws.go: Document the message format | Runxi Yu | 2024-09-12 | 1 | -0/+25 | |
| | ||||||
* | fields.txt: Document the export fields we need | Runxi Yu | 2024-09-11 | 1 | -0/+26 | |
| | ||||||
* | ws.go: TODO: Select c.Read and a broadcast channel | Runxi Yu | 2024-09-11 | 1 | -0/+1 | |
| | | | | | | | I'm not sure whether we need to spawn an entirely different goroutine, make a shared channel, and select between the channels. It certainlly doesn't seem like there's a trivial way to block from a synchronous function and a channel, but I might be wrong, being unfamiliar with Go's concurrency. | |||||
* | auth.go: Use && instead of nested if statement | Runxi Yu | 2024-09-11 | 1 | -14/+12 | |
| | ||||||
* | tcourse.sql: Make the names slightly less random | Runxi Yu | 2024-09-09 | 1 | -6/+6 | |
| | ||||||
* | *.go: Add more licenses | Runxi Yu | 2024-09-09 | 4 | -0/+120 | |
| | ||||||
* | .editorconfig: Initialize | Runxi Yu | 2024-09-09 | 1 | -0/+16 | |
| | ||||||
* | index{,_login}.tmpl: Rename .tmpl to .html | Runxi Yu | 2024-09-09 | 2 | -0/+0 | |
| | ||||||
* | *.go: Shorter line lengths | Runxi Yu | 2024-09-09 | 3 | -8/+34 | |
| | ||||||
* | *.go: Add comments | Runxi Yu | 2024-09-09 | 8 | -11/+134 | |
| | ||||||
* | ws.go: splitMsg should return strings instead of bytes | Runxi Yu | 2024-09-09 | 1 | -7/+9 | |
| | ||||||
* | ws.go: Split IRC-style messages | Runxi Yu | 2024-09-09 | 2 | -3/+30 | |
| | ||||||
* | ws.go: gofmt | Runxi Yu | 2024-09-09 | 1 | -1/+1 | |
| | ||||||
* | index.tmpl: Add git.rx and GitHub URL | Runxi Yu | 2024-09-08 | 1 | -1/+1 | |
| | ||||||
* | style.css, index.tmpl: Style changes | Runxi Yu | 2024-09-08 | 2 | -2/+8 | |
| | ||||||
* | main.js, index.tmpl: Confirmation button | Runxi Yu | 2024-09-08 | 2 | -0/+17 | |
| | | | | | In the future we shall the confirmation button to only work when all fields are correctly completed. | |||||
* | index.tmpl: Place the search bar inside the table | Runxi Yu | 2024-09-08 | 1 | -3/+5 | |
| | ||||||
* | *: Password login stub | Runxi Yu | 2024-09-08 | 4 | -4/+76 | |
| | ||||||
* | index.tmpl: Rename the "Course" field into "Name", in the HTML | Runxi Yu | 2024-09-08 | 1 | -1/+1 | |
| | ||||||
* | ws.go: Check session cookie | Runxi Yu | 2024-09-08 | 1 | -2/+24 | |
| | | | | I'm not sure if all browsers send them along in WebSocket requests. | |||||
* | main.js: More robust check handling | Runxi Yu | 2024-09-08 | 1 | -1/+15 | |
| | ||||||
* | main.js: Send message whenever the checkbox changes | Runxi Yu | 2024-09-08 | 1 | -0/+6 | |
| | ||||||
* | main.js: Send HELLO, not BLOOP | Runxi Yu | 2024-09-08 | 1 | -1/+1 | |
| | ||||||
* | main.js: Slight reformat and code comments | Runxi Yu | 2024-09-08 | 1 | -0/+7 | |
| | ||||||
* | index.tmpl: Add .coursecheckbox to checkboxes | Runxi Yu | 2024-09-08 | 1 | -1/+1 | |
| | ||||||
* | ws.go: Don't close the connection that fast | Runxi Yu | 2024-09-08 | 1 | -7/+8 | |
| | ||||||
* | ws.go: Don't echo messages back | Runxi Yu | 2024-09-08 | 1 | -4/+9 | |
| | ||||||
* | tcourse.sql: Test SQL file to add random courses | Runxi Yu | 2024-09-08 | 1 | -0/+6 | |
| | ||||||
* | schema.sql: course.id PRIMARY KEY; rearrange sessions | Runxi Yu | 2024-09-08 | 1 | -2/+2 | |
| | ||||||
* | ws.go: More helpful error message for non-WS connections | Runxi Yu | 2024-09-08 | 1 | -1/+1 | |
| | ||||||
* | main.js: Break after case | Runxi Yu | 2024-09-08 | 1 | -3/+2 | |
| | | | | | Go's switch statements break implicitly so I assumed it was the same in JavaScript, but JavaScript's case is actually just like C's. | |||||
* | index.tmpl: Search bar | Runxi Yu | 2024-09-08 | 1 | -3/+18 | |
| | ||||||
* | main.js: Fix WS url and consistently use automatic semicolon insertion | Runxi Yu | 2024-09-08 | 1 | -8/+11 | |
| | ||||||
* | courses.go: Remove unused imports | Runxi Yu | 2024-09-08 | 1 | -1/+0 | |
| | ||||||
* | index.tmpl: Checkbox should not have {{.Id}} as text | Runxi Yu | 2024-09-08 | 1 | -1/+1 | |
| | ||||||
* | *: Display courses | Runxi Yu | 2024-09-08 | 6 | -35/+123 | |
| |