diff --git a/frontend/.svelte-kit/ambient.d.ts b/frontend/.svelte-kit/ambient.d.ts index 38f289b..5e21f33 100644 --- a/frontend/.svelte-kit/ambient.d.ts +++ b/frontend/.svelte-kit/ambient.d.ts @@ -40,6 +40,7 @@ declare module '$env/static/private' { export const SHELL: string; export const npm_command: string; + export const COREPACK_ENABLE_AUTO_PIN: string; export const UV_CACHE_DIR: string; export const npm_config_userconfig: string; export const COLORTERM: string; @@ -81,6 +82,8 @@ declare module '$env/static/private' { export const SYSTEMD_EXEC_PID: string; export const _: string; export const KITTY_PUBLIC_KEY: string; + export const NoDefaultCurrentDirectoryInExePath: string; + export const CLAUDECODE: string; export const MOTD_SHOWN: string; export const HOME: string; export const LC_PAPER: string; @@ -111,7 +114,6 @@ declare module '$env/static/private' { export const npm_config_prefix: string; export const ZDOTDIR: string; export const USER: string; - export const GIT_PAGER: string; export const SDL_VIDEODRIVER: string; export const HYPRLAND_INSTANCE_SIGNATURE: string; export const MANPAGER: string; @@ -122,6 +124,7 @@ declare module '$env/static/private' { export const LESS_TERMCAP_ue: string; export const MOZ_ENABLE_WAYLAND: string; export const LESS_TERMCAP_us: string; + export const GIT_EDITOR: string; export const PAGER: string; export const LC_TELEPHONE: string; export const ANDROID_SDK_ROOT: string; @@ -132,24 +135,26 @@ declare module '$env/static/private' { export const MANAGERPIDFDID: string; export const npm_config_user_agent: string; export const ROCM_PATH: string; + export const OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: string; export const XDG_STATE_HOME: string; export const npm_execpath: string; export const LD_LIBRARY_PATH: string; + export const DISABLE_AUTOUPDATER: string; export const LC_CTYPE: string; export const XDG_RUNTIME_DIR: string; export const KITTY_LISTEN_ON: string; export const GRIMBLAST_EDITOR: string; - export const GEMINI_CLI: string; + export const CLAUDE_CODE_ENTRYPOINT: string; export const DEBUGINFOD_URLS: string; export const npm_package_json: string; export const LC_TIME: string; export const HYPRCURSOR_THEME: string; - export const GEMINI_CLI_NO_RELAUNCH: string; export const JOURNAL_STREAM: string; export const LC_COLLATE: string; export const XCURSOR_THEME: string; export const XDG_DATA_DIRS: string; export const GDK_BACKEND: string; + export const CLAUDE_CODE_EXECPATH: string; export const npm_config_noproxy: string; export const PATH: string; export const npm_config_node_gyp: string; @@ -254,6 +259,7 @@ declare module '$env/dynamic/private' { export const env: { SHELL: string; npm_command: string; + COREPACK_ENABLE_AUTO_PIN: string; UV_CACHE_DIR: string; npm_config_userconfig: string; COLORTERM: string; @@ -295,6 +301,8 @@ declare module '$env/dynamic/private' { SYSTEMD_EXEC_PID: string; _: string; KITTY_PUBLIC_KEY: string; + NoDefaultCurrentDirectoryInExePath: string; + CLAUDECODE: string; MOTD_SHOWN: string; HOME: string; LC_PAPER: string; @@ -325,7 +333,6 @@ declare module '$env/dynamic/private' { npm_config_prefix: string; ZDOTDIR: string; USER: string; - GIT_PAGER: string; SDL_VIDEODRIVER: string; HYPRLAND_INSTANCE_SIGNATURE: string; MANPAGER: string; @@ -336,6 +343,7 @@ declare module '$env/dynamic/private' { LESS_TERMCAP_ue: string; MOZ_ENABLE_WAYLAND: string; LESS_TERMCAP_us: string; + GIT_EDITOR: string; PAGER: string; LC_TELEPHONE: string; ANDROID_SDK_ROOT: string; @@ -346,24 +354,26 @@ declare module '$env/dynamic/private' { MANAGERPIDFDID: string; npm_config_user_agent: string; ROCM_PATH: string; + OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: string; XDG_STATE_HOME: string; npm_execpath: string; LD_LIBRARY_PATH: string; + DISABLE_AUTOUPDATER: string; LC_CTYPE: string; XDG_RUNTIME_DIR: string; KITTY_LISTEN_ON: string; GRIMBLAST_EDITOR: string; - GEMINI_CLI: string; + CLAUDE_CODE_ENTRYPOINT: string; DEBUGINFOD_URLS: string; npm_package_json: string; LC_TIME: string; HYPRCURSOR_THEME: string; - GEMINI_CLI_NO_RELAUNCH: string; JOURNAL_STREAM: string; LC_COLLATE: string; XCURSOR_THEME: string; XDG_DATA_DIRS: string; GDK_BACKEND: string; + CLAUDE_CODE_EXECPATH: string; npm_config_noproxy: string; PATH: string; npm_config_node_gyp: string; diff --git a/frontend/.svelte-kit/generated/client/app.js b/frontend/.svelte-kit/generated/client/app.js index 42e9286..d3bb8c7 100644 --- a/frontend/.svelte-kit/generated/client/app.js +++ b/frontend/.svelte-kit/generated/client/app.js @@ -13,7 +13,11 @@ export const nodes = [ () => import('./nodes/9'), () => import('./nodes/10'), () => import('./nodes/11'), - () => import('./nodes/12') + () => import('./nodes/12'), + () => import('./nodes/13'), + () => import('./nodes/14'), + () => import('./nodes/15'), + () => import('./nodes/16') ]; export const server_loads = []; @@ -24,11 +28,15 @@ export const dictionary = { "/admin/attendance": [5,[2]], "/admin/courses": [6,[2]], "/admin/export": [7,[2]], - "/admin/notes": [8,[2]], - "/admin/rooms": [9,[2]], - "/admin/sessions": [10,[2]], - "/login": [11], - "/s/[code]": [12] + "/admin/live/[slotId]": [8,[2]], + "/admin/login": [9,[2]], + "/admin/notes": [10,[2]], + "/admin/rooms": [11,[2]], + "/admin/rooms/[roomId]": [12,[2]], + "/admin/sessions": [13,[2]], + "/admin/students": [14,[2]], + "/login": [15], + "/s/[code]": [16] }; export const hooks = { diff --git a/frontend/.svelte-kit/generated/client/nodes/10.js b/frontend/.svelte-kit/generated/client/nodes/10.js index 82fa30b..6e870a3 100644 --- a/frontend/.svelte-kit/generated/client/nodes/10.js +++ b/frontend/.svelte-kit/generated/client/nodes/10.js @@ -1 +1 @@ -export { default as component } from "../../../../src/routes/admin/sessions/+page.svelte"; \ No newline at end of file +export { default as component } from "../../../../src/routes/admin/notes/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/11.js b/frontend/.svelte-kit/generated/client/nodes/11.js index f2b26cd..210de29 100644 --- a/frontend/.svelte-kit/generated/client/nodes/11.js +++ b/frontend/.svelte-kit/generated/client/nodes/11.js @@ -1 +1 @@ -export { default as component } from "../../../../src/routes/login/+page.svelte"; \ No newline at end of file +export { default as component } from "../../../../src/routes/admin/rooms/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/12.js b/frontend/.svelte-kit/generated/client/nodes/12.js index 37be5c2..f206cf4 100644 --- a/frontend/.svelte-kit/generated/client/nodes/12.js +++ b/frontend/.svelte-kit/generated/client/nodes/12.js @@ -1 +1 @@ -export { default as component } from "../../../../src/routes/s/[code]/+page.svelte"; \ No newline at end of file +export { default as component } from "../../../../src/routes/admin/rooms/[roomId]/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/13.js b/frontend/.svelte-kit/generated/client/nodes/13.js new file mode 100644 index 0000000..82fa30b --- /dev/null +++ b/frontend/.svelte-kit/generated/client/nodes/13.js @@ -0,0 +1 @@ +export { default as component } from "../../../../src/routes/admin/sessions/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/14.js b/frontend/.svelte-kit/generated/client/nodes/14.js new file mode 100644 index 0000000..30a9a59 --- /dev/null +++ b/frontend/.svelte-kit/generated/client/nodes/14.js @@ -0,0 +1 @@ +export { default as component } from "../../../../src/routes/admin/students/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/15.js b/frontend/.svelte-kit/generated/client/nodes/15.js new file mode 100644 index 0000000..f2b26cd --- /dev/null +++ b/frontend/.svelte-kit/generated/client/nodes/15.js @@ -0,0 +1 @@ +export { default as component } from "../../../../src/routes/login/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/16.js b/frontend/.svelte-kit/generated/client/nodes/16.js new file mode 100644 index 0000000..37be5c2 --- /dev/null +++ b/frontend/.svelte-kit/generated/client/nodes/16.js @@ -0,0 +1 @@ +export { default as component } from "../../../../src/routes/s/[code]/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/8.js b/frontend/.svelte-kit/generated/client/nodes/8.js index 6e870a3..42577b6 100644 --- a/frontend/.svelte-kit/generated/client/nodes/8.js +++ b/frontend/.svelte-kit/generated/client/nodes/8.js @@ -1 +1 @@ -export { default as component } from "../../../../src/routes/admin/notes/+page.svelte"; \ No newline at end of file +export { default as component } from "../../../../src/routes/admin/live/[slotId]/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/9.js b/frontend/.svelte-kit/generated/client/nodes/9.js index 210de29..973ae05 100644 --- a/frontend/.svelte-kit/generated/client/nodes/9.js +++ b/frontend/.svelte-kit/generated/client/nodes/9.js @@ -1 +1 @@ -export { default as component } from "../../../../src/routes/admin/rooms/+page.svelte"; \ No newline at end of file +export { default as component } from "../../../../src/routes/admin/login/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/server/internal.js b/frontend/.svelte-kit/generated/server/internal.js index 0ee50f9..89e97b5 100644 --- a/frontend/.svelte-kit/generated/server/internal.js +++ b/frontend/.svelte-kit/generated/server/internal.js @@ -22,10 +22,10 @@ export const options = { service_worker_options: undefined, server_error_boundaries: false, templates: { - app: ({ head, body, assets, nonce, env }) => "\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t" + head + "\n\t\n\t\n\t\t
" + body + "
\n\t\n\n", + app: ({ head, body, assets, nonce, env }) => "\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t" + head + "\n\t\n\t\n\t\t
" + body + "
\n\t\n\n", error: ({ status, message }) => "\n\n\t\n\t\t\n\t\t" + message + "\n\n\t\t\n\t\n\t\n\t\t
\n\t\t\t" + status + "\n\t\t\t
\n\t\t\t\t

" + message + "

\n\t\t\t
\n\t\t
\n\t\n\n" }, - version_hash: "eq7x7d" + version_hash: "2cu8qm" }; export async function get_hooks() { diff --git a/frontend/.svelte-kit/non-ambient.d.ts b/frontend/.svelte-kit/non-ambient.d.ts index 49acb9d..fee462b 100644 --- a/frontend/.svelte-kit/non-ambient.d.ts +++ b/frontend/.svelte-kit/non-ambient.d.ts @@ -29,24 +29,31 @@ declare module "$app/types" { type MatcherParam = M extends (param : string) => param is (infer U extends string) ? U : string; export interface AppTypes { - RouteId(): "/" | "/admin" | "/admin/attendance" | "/admin/courses" | "/admin/export" | "/admin/notes" | "/admin/rooms" | "/admin/sessions" | "/login" | "/s" | "/s/[code]"; + RouteId(): "/" | "/admin" | "/admin/attendance" | "/admin/courses" | "/admin/export" | "/admin/live" | "/admin/live/[slotId]" | "/admin/login" | "/admin/notes" | "/admin/rooms" | "/admin/rooms/[roomId]" | "/admin/sessions" | "/admin/students" | "/login" | "/s" | "/s/[code]"; RouteParams(): { + "/admin/live/[slotId]": { slotId: string }; + "/admin/rooms/[roomId]": { roomId: string }; "/s/[code]": { code: string } }; LayoutParams(): { - "/": { code?: string }; - "/admin": Record; + "/": { slotId?: string; roomId?: string; code?: string }; + "/admin": { slotId?: string; roomId?: string }; "/admin/attendance": Record; "/admin/courses": Record; "/admin/export": Record; + "/admin/live": { slotId?: string }; + "/admin/live/[slotId]": { slotId: string }; + "/admin/login": Record; "/admin/notes": Record; - "/admin/rooms": Record; + "/admin/rooms": { roomId?: string }; + "/admin/rooms/[roomId]": { roomId: string }; "/admin/sessions": Record; + "/admin/students": Record; "/login": Record; "/s": { code?: string }; "/s/[code]": { code: string } }; - Pathname(): "/" | "/admin" | "/admin/attendance" | "/admin/courses" | "/admin/export" | "/admin/notes" | "/admin/rooms" | "/admin/sessions" | "/login" | `/s/${string}` & {}; + Pathname(): "/" | "/admin" | "/admin/attendance" | "/admin/courses" | "/admin/export" | `/admin/live/${string}` & {} | "/admin/login" | "/admin/notes" | "/admin/rooms" | `/admin/rooms/${string}` & {} | "/admin/sessions" | "/admin/students" | "/login" | `/s/${string}` & {}; ResolvedPathname(): `${"" | `/${string}`}${ReturnType}`; Asset(): string & {}; } diff --git a/frontend/.svelte-kit/types/route_meta_data.json b/frontend/.svelte-kit/types/route_meta_data.json index 0358f33..9713c89 100644 --- a/frontend/.svelte-kit/types/route_meta_data.json +++ b/frontend/.svelte-kit/types/route_meta_data.json @@ -4,9 +4,13 @@ "/admin/attendance": [], "/admin/courses": [], "/admin/export": [], + "/admin/live/[slotId]": [], + "/admin/login": [], "/admin/notes": [], "/admin/rooms": [], + "/admin/rooms/[roomId]": [], "/admin/sessions": [], + "/admin/students": [], "/login": [], "/s/[code]": [] } \ No newline at end of file diff --git a/frontend/.svelte-kit/types/src/routes/$types.d.ts b/frontend/.svelte-kit/types/src/routes/$types.d.ts index 127b8cc..be4b408 100644 --- a/frontend/.svelte-kit/types/src/routes/$types.d.ts +++ b/frontend/.svelte-kit/types/src/routes/$types.d.ts @@ -11,8 +11,8 @@ type EnsureDefined = T extends null | undefined ? {} : T; type OptionalUnion, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude]?: never } & U : never; export type Snapshot = Kit.Snapshot; type PageParentData = EnsureDefined; -type LayoutRouteId = RouteId | "/" | "/admin" | "/admin/attendance" | "/admin/courses" | "/admin/export" | "/admin/notes" | "/admin/rooms" | "/admin/sessions" | "/login" | "/s/[code]" | null -type LayoutParams = RouteParams & { code?: string } +type LayoutRouteId = RouteId | "/" | "/admin" | "/admin/attendance" | "/admin/courses" | "/admin/export" | "/admin/live/[slotId]" | "/admin/login" | "/admin/notes" | "/admin/rooms" | "/admin/rooms/[roomId]" | "/admin/sessions" | "/admin/students" | "/login" | "/s/[code]" | null +type LayoutParams = RouteParams & { slotId?: string; roomId?: string; code?: string } type LayoutParentData = EnsureDefined<{}>; export type PageServerData = null; diff --git a/frontend/.svelte-kit/types/src/routes/admin/$types.d.ts b/frontend/.svelte-kit/types/src/routes/admin/$types.d.ts index a103dff..1ba9cf0 100644 --- a/frontend/.svelte-kit/types/src/routes/admin/$types.d.ts +++ b/frontend/.svelte-kit/types/src/routes/admin/$types.d.ts @@ -11,8 +11,8 @@ type EnsureDefined = T extends null | undefined ? {} : T; type OptionalUnion, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude]?: never } & U : never; export type Snapshot = Kit.Snapshot; type PageParentData = Omit, keyof LayoutData> & EnsureDefined; -type LayoutRouteId = RouteId | "/admin" | "/admin/attendance" | "/admin/courses" | "/admin/export" | "/admin/notes" | "/admin/rooms" | "/admin/sessions" -type LayoutParams = RouteParams & { } +type LayoutRouteId = RouteId | "/admin" | "/admin/attendance" | "/admin/courses" | "/admin/export" | "/admin/live/[slotId]" | "/admin/login" | "/admin/notes" | "/admin/rooms" | "/admin/rooms/[roomId]" | "/admin/sessions" | "/admin/students" +type LayoutParams = RouteParams & { slotId?: string; roomId?: string } type LayoutParentData = EnsureDefined; export type PageServerData = null; diff --git a/frontend/.svelte-kit/types/src/routes/admin/live/[slotId]/$types.d.ts b/frontend/.svelte-kit/types/src/routes/admin/live/[slotId]/$types.d.ts new file mode 100644 index 0000000..fefc3a5 --- /dev/null +++ b/frontend/.svelte-kit/types/src/routes/admin/live/[slotId]/$types.d.ts @@ -0,0 +1,18 @@ +import type * as Kit from '@sveltejs/kit'; + +type Expand = T extends infer O ? { [K in keyof O]: O[K] } : never; +type MatcherParam = M extends (param : string) => param is (infer U extends string) ? U : string; +type RouteParams = { slotId: string }; +type RouteId = '/admin/live/[slotId]'; +type MaybeWithVoid = {} extends T ? T | void : T; +export type RequiredKeys = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T]; +type OutputDataShape = MaybeWithVoid> & Partial> & Record> +type EnsureDefined = T extends null | undefined ? {} : T; +type OptionalUnion, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude]?: never } & U : never; +export type Snapshot = Kit.Snapshot; +type PageParentData = Omit, keyof import('../../$types.js').LayoutData> & EnsureDefined; + +export type EntryGenerator = () => Promise> | Array; +export type PageServerData = null; +export type PageData = Expand; +export type PageProps = { params: RouteParams; data: PageData } \ No newline at end of file diff --git a/frontend/.svelte-kit/types/src/routes/admin/login/$types.d.ts b/frontend/.svelte-kit/types/src/routes/admin/login/$types.d.ts new file mode 100644 index 0000000..7769d46 --- /dev/null +++ b/frontend/.svelte-kit/types/src/routes/admin/login/$types.d.ts @@ -0,0 +1,17 @@ +import type * as Kit from '@sveltejs/kit'; + +type Expand = T extends infer O ? { [K in keyof O]: O[K] } : never; +type MatcherParam = M extends (param : string) => param is (infer U extends string) ? U : string; +type RouteParams = { }; +type RouteId = '/admin/login'; +type MaybeWithVoid = {} extends T ? T | void : T; +export type RequiredKeys = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T]; +type OutputDataShape = MaybeWithVoid> & Partial> & Record> +type EnsureDefined = T extends null | undefined ? {} : T; +type OptionalUnion, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude]?: never } & U : never; +export type Snapshot = Kit.Snapshot; +type PageParentData = Omit, keyof import('../$types.js').LayoutData> & EnsureDefined; + +export type PageServerData = null; +export type PageData = Expand; +export type PageProps = { params: RouteParams; data: PageData } \ No newline at end of file diff --git a/frontend/.svelte-kit/types/src/routes/admin/rooms/[roomId]/$types.d.ts b/frontend/.svelte-kit/types/src/routes/admin/rooms/[roomId]/$types.d.ts new file mode 100644 index 0000000..229e71f --- /dev/null +++ b/frontend/.svelte-kit/types/src/routes/admin/rooms/[roomId]/$types.d.ts @@ -0,0 +1,18 @@ +import type * as Kit from '@sveltejs/kit'; + +type Expand = T extends infer O ? { [K in keyof O]: O[K] } : never; +type MatcherParam = M extends (param : string) => param is (infer U extends string) ? U : string; +type RouteParams = { roomId: string }; +type RouteId = '/admin/rooms/[roomId]'; +type MaybeWithVoid = {} extends T ? T | void : T; +export type RequiredKeys = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T]; +type OutputDataShape = MaybeWithVoid> & Partial> & Record> +type EnsureDefined = T extends null | undefined ? {} : T; +type OptionalUnion, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude]?: never } & U : never; +export type Snapshot = Kit.Snapshot; +type PageParentData = Omit, keyof import('../../$types.js').LayoutData> & EnsureDefined; + +export type EntryGenerator = () => Promise> | Array; +export type PageServerData = null; +export type PageData = Expand; +export type PageProps = { params: RouteParams; data: PageData } \ No newline at end of file diff --git a/frontend/.svelte-kit/types/src/routes/admin/students/$types.d.ts b/frontend/.svelte-kit/types/src/routes/admin/students/$types.d.ts new file mode 100644 index 0000000..32a7c13 --- /dev/null +++ b/frontend/.svelte-kit/types/src/routes/admin/students/$types.d.ts @@ -0,0 +1,17 @@ +import type * as Kit from '@sveltejs/kit'; + +type Expand = T extends infer O ? { [K in keyof O]: O[K] } : never; +type MatcherParam = M extends (param : string) => param is (infer U extends string) ? U : string; +type RouteParams = { }; +type RouteId = '/admin/students'; +type MaybeWithVoid = {} extends T ? T | void : T; +export type RequiredKeys = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T]; +type OutputDataShape = MaybeWithVoid> & Partial> & Record> +type EnsureDefined = T extends null | undefined ? {} : T; +type OptionalUnion, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude]?: never } & U : never; +export type Snapshot = Kit.Snapshot; +type PageParentData = Omit, keyof import('../$types.js').LayoutData> & EnsureDefined; + +export type PageServerData = null; +export type PageData = Expand; +export type PageProps = { params: RouteParams; data: PageData } \ No newline at end of file diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index a9a128f..1d25b60 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -1,47 +1,9 @@ - -
-

FPTutor Attendance

-

Efficiently tracking attendance and student observations.

- - - - -
- - diff --git a/frontend/src/routes/admin/+layout.svelte b/frontend/src/routes/admin/+layout.svelte index 9f5d1c8..7bf33ac 100644 --- a/frontend/src/routes/admin/+layout.svelte +++ b/frontend/src/routes/admin/+layout.svelte @@ -5,13 +5,13 @@ onMount(() => { if (!$token) { - goto('/login'); + goto('/admin/login'); } }); function handleLogout() { logout(); - goto('/login'); + goto('/admin/login'); } diff --git a/frontend/src/routes/admin/live/[slotId]/+page.svelte b/frontend/src/routes/admin/live/[slotId]/+page.svelte new file mode 100644 index 0000000..e2bc8c9 --- /dev/null +++ b/frontend/src/routes/admin/live/[slotId]/+page.svelte @@ -0,0 +1,10 @@ + + +
+ Tutor:innen-Ansicht · Live +

Slot {slotId}

+
diff --git a/frontend/src/routes/admin/login/+page.svelte b/frontend/src/routes/admin/login/+page.svelte new file mode 100644 index 0000000..9fcc2fa --- /dev/null +++ b/frontend/src/routes/admin/login/+page.svelte @@ -0,0 +1,82 @@ + + + + + diff --git a/frontend/src/routes/admin/rooms/+page.svelte b/frontend/src/routes/admin/rooms/+page.svelte index b1481d9..0f70aad 100644 --- a/frontend/src/routes/admin/rooms/+page.svelte +++ b/frontend/src/routes/admin/rooms/+page.svelte @@ -1,205 +1,63 @@ -

Room Layouts

+
+
+ Räume +

Raumlayout-Editor

+
-
-
-

Rooms

-
- - -
- -
- {#each rooms as room} -
selectedRoomId = room.id} - > - {room.name} -
- {/each} -
+
+
+
Räume
+
{ e.preventDefault(); createRoom(); }} style="display:flex;gap:8px"> + + +
-
- {#if selectedRoom} -
-

Editing: {selectedRoom.name}

-
- - - - -
-
- -
- selectedElementId = el.id} - /> - -
-

Properties

- {#if selectedElement} -
- - -
-
- - -
-
- - -
- - {:else} -

Select an element to edit properties.

- {/if} -
-
- {:else} -

Select a room to edit its layout.

- {/if} -
+ {#if rooms.length === 0} +
+ Noch keine Räume angelegt. +
+ {:else} + + + + + + + + + {#each rooms as room, i} + + + + + {/each} + +
NameAktionen
{room.name} + Bearbeiten +
+ {/if} +
- - diff --git a/frontend/src/routes/admin/rooms/[roomId]/+page.svelte b/frontend/src/routes/admin/rooms/[roomId]/+page.svelte new file mode 100644 index 0000000..61ee361 --- /dev/null +++ b/frontend/src/routes/admin/rooms/[roomId]/+page.svelte @@ -0,0 +1,111 @@ + + +{#if room} +
+
+
+ Räume +

{room.name}

+
+
+ + + + +
+
+ +
+
+ { selectedElementId = el.id; }} + /> +
+ +
+
Auswahl
+ {#if selectedElement} +
+
+
Bezeichnung
+ +
+
+
+
Breite
+ +
+
+
Höhe
+ +
+
+ +
+ {:else} + Element auswählen + {/if} +
+
+
+{:else} +
+ Raum wird geladen… +
+{/if} diff --git a/frontend/src/routes/admin/students/+page.svelte b/frontend/src/routes/admin/students/+page.svelte new file mode 100644 index 0000000..b49f46f --- /dev/null +++ b/frontend/src/routes/admin/students/+page.svelte @@ -0,0 +1,8 @@ + + +
+ Studierende +

Studierende

+