aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* ws.go: splitMsg should return strings instead of bytesRunxi Yu2024-09-091-7/+9
|
* ws.go: Split IRC-style messagesRunxi Yu2024-09-092-3/+30
|
* ws.go: gofmtRunxi Yu2024-09-091-1/+1
|
* index.tmpl: Add git.rx and GitHub URLRunxi Yu2024-09-081-1/+1
|
* style.css, index.tmpl: Style changesRunxi Yu2024-09-082-2/+8
|
* main.js, index.tmpl: Confirmation buttonRunxi Yu2024-09-082-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 tableRunxi Yu2024-09-081-3/+5
|
* *: Password login stubRunxi Yu2024-09-084-4/+76
|
* index.tmpl: Rename the "Course" field into "Name", in the HTMLRunxi Yu2024-09-081-1/+1
|
* ws.go: Check session cookieRunxi Yu2024-09-081-2/+24
| | | | I'm not sure if all browsers send them along in WebSocket requests.
* main.js: More robust check handlingRunxi Yu2024-09-081-1/+15
|
* main.js: Send message whenever the checkbox changesRunxi Yu2024-09-081-0/+6
|
* main.js: Send HELLO, not BLOOPRunxi Yu2024-09-081-1/+1
|
* main.js: Slight reformat and code commentsRunxi Yu2024-09-081-0/+7
|
* index.tmpl: Add .coursecheckbox to checkboxesRunxi Yu2024-09-081-1/+1
|
* ws.go: Don't close the connection that fastRunxi Yu2024-09-081-7/+8
|
* ws.go: Don't echo messages backRunxi Yu2024-09-081-4/+9
|
* tcourse.sql: Test SQL file to add random coursesRunxi Yu2024-09-081-0/+6
|
* schema.sql: course.id PRIMARY KEY; rearrange sessionsRunxi Yu2024-09-081-2/+2
|
* ws.go: More helpful error message for non-WS connectionsRunxi Yu2024-09-081-1/+1
|
* main.js: Break after caseRunxi Yu2024-09-081-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 barRunxi Yu2024-09-081-3/+18
|
* main.js: Fix WS url and consistently use automatic semicolon insertionRunxi Yu2024-09-081-8/+11
|
* courses.go: Remove unused importsRunxi Yu2024-09-081-1/+0
|
* index.tmpl: Checkbox should not have {{.Id}} as textRunxi Yu2024-09-081-1/+1
|
* *: Display coursesRunxi Yu2024-09-086-35/+123
|
* *.go: Simplify error messages and reformatRunxi Yu2024-09-082-31/+30
|
* *: Basic WebSocket connection may be established nowRunxi Yu2024-09-089-3/+143
|
* sizechk.js: Delete as it's useless for CCAsRunxi Yu2024-09-081-27/+0
|
* index.tmpl: JavaScript warningRunxi Yu2024-09-081-1/+23
|
* auth.go: Expand staff departmentsRunxi Yu2024-09-071-2/+2
|
* *: Call Graph API for department informationRunxi Yu2024-09-079-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 templatesRunxi Yu2024-09-0715-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 moduleRunxi Yu2024-09-071-0/+3
|
* Add a READMERunxi Yu2024-09-071-0/+34
|
* LICENSE: BSD-2-ClauseRunxi Yu2024-09-071-0/+24