Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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 | |
| | ||||||
* | *.go: Simplify error messages and reformat | Runxi Yu | 2024-09-08 | 2 | -31/+30 | |
| | ||||||
* | *: Basic WebSocket connection may be established now | Runxi Yu | 2024-09-08 | 9 | -3/+143 | |
| | ||||||
* | sizechk.js: Delete as it's useless for CCAs | Runxi Yu | 2024-09-08 | 1 | -27/+0 | |
| | ||||||
* | index.tmpl: JavaScript warning | Runxi Yu | 2024-09-08 | 1 | -1/+23 | |
| | ||||||
* | auth.go: Expand staff departments | Runxi Yu | 2024-09-07 | 1 | -2/+2 | |
| | ||||||
* | *: Call Graph API for department information | Runxi Yu | 2024-09-07 | 9 | -72/+141 | |
| | | | | | | | | | | | | I am using a hybrid flow with "id_token" for OpenID Connect and "code" for an Authorization Code. I would use "token" too but that doesn't seem to be supported for standard web-apps and could result in strange session-hijacking issues. We still need PKCE sometime in the future; however it's not a priority: the worst attack someone could pull off is to use a different user's Authorization Code and steal a Department, which probably isn't too big of a deal as the Authorization Code should be secret anyways. |