Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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. | |||||
* | *: Basic authentication and templates | Runxi Yu | 2024-09-07 | 15 | -0/+1247 | |
| | | | | | | | | These are imported from FBFP and slightly modified to be specific to YKPS (while not being hard to port to other environments that use APIs that use OAUTH 2.0). Some code is also simplified. Database code still needs an audit, and things are not tested yet. | |||||
* | go.mod: Initialize go module | Runxi Yu | 2024-09-07 | 1 | -0/+3 | |
| | ||||||
* | Add a README | Runxi Yu | 2024-09-07 | 1 | -0/+34 | |
| | ||||||
* | LICENSE: BSD-2-Clause | Runxi Yu | 2024-09-07 | 1 | -0/+24 | |